+
<%= current_user.profile.nickname.strip %>
<%= current_user.email %>
-
- <%= link_to "Dashboard", dashboard_path, class: "block py-2 px-4 text-sm text-gray-700 hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-200 dark:hover:text-white" %>
-
<%= link_to "Profile", edit_account_path(current_user), class: "block py-2 px-4 text-sm text-gray-700 hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-200 dark:hover:text-white" %>
diff --git a/app/views/ssos/edit.html.erb b/app/views/ssos/edit.html.erb
new file mode 100644
index 00000000..1135e308
--- /dev/null
+++ b/app/views/ssos/edit.html.erb
@@ -0,0 +1,44 @@
+
+<%= turbo_frame_tag "settings_main" do %>
+ <% if !@organization.domain_verified %>
+ <%= form_with model: @organization do |form| %>
+ <%= render partial: "shared/form_errors", locals: { object: form.object } %>
+
+ <%= form.label :domain, "Domain of your organization", class: "block mb-2 text-sm font-medium text-gray-900 dark:text-gray-300" %>
+ <%= form.text_field :domain, class:"bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500", placeholder: "example: your_domain.com" %>
+
+ <%= form.submit class: "text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm w-full px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800" %>
+ <% end %>
+ <% end %>
+
+
+ Domain Ownership Status
+
+ <% if @organization.domain_verified %>
+
+
+ Verified
+
+ <% else %>
+
+
+ Not yet verified
+
+ <% end %>
+
+ <% if !@organization.domain_verified && @organization.domain.present? %>
+
+
+ Why verifying domain ownership is important?
+
+
+ By verifying ownership, we can ensure that the domain is being used by its rightful owner and not by someone with malicious intent. This helps prevent unauthorized access, phishing scams, and other security threats. Additionally, verifying ownership also helps prevent any potential issues with branding or trademark infringement. By requiring proof of ownership, we can protect both our customers and our service, ensuring a positive and secure experience for all users.
+
+
+ How to verify ownership your domain?
+
+
+
+
+ <% end %>
+<% end %>
diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb
new file mode 100644
index 00000000..cf7a67d2
--- /dev/null
+++ b/app/views/users/index.html.erb
@@ -0,0 +1,204 @@
+
+<%= turbo_frame_tag "settings_main" do %>
+
+
+
+
+
+
+ Action button
+ Action
+
+
+
+
+
+
Search
+
+
+
+
+
+
+
+
+ checkbox
+
+
+
+ Name
+
+
+ Position
+
+
+ Status
+
+
+ Action
+
+
+
+
+
+
+
+
+ checkbox
+
+
+
+
+
+
Neil Sims
+
neil.sims@flowbite.com
+
+
+
+ React Developer
+
+
+
+
+
+ Edit user
+
+
+
+
+
+
+ checkbox
+
+
+
+
+
+
Bonnie Green
+
bonnie@flowbite.com
+
+
+
+ Designer
+
+
+
+
+
+ Edit user
+
+
+
+
+
+
+ checkbox
+
+
+
+
+
+
Jese Leos
+
jese@flowbite.com
+
+
+
+ Vue JS Developer
+
+
+
+
+
+ Edit user
+
+
+
+
+
+
+ checkbox
+
+
+
+
+
+
Thomas Lean
+
thomes@flowbite.com
+
+
+
+ UI/UX Engineer
+
+
+
+
+
+ Edit user
+
+
+
+
+
+
+ checkbox
+
+
+
+
+
+
Leslie Livingston
+
leslie@flowbite.com
+
+
+
+ SEO Specialist
+
+
+
+
+
+ Edit user
+
+
+
+
+
+
+<% end %>
diff --git a/app/views/your_questions/_your_question.html.erb b/app/views/your_questions/_your_question.html.erb
deleted file mode 100644
index 02a7e89a..00000000
--- a/app/views/your_questions/_your_question.html.erb
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-
-
-
-
- <%= question.title.strip %>
-
-
-
-
-
-
- <%= link_to room_questions_path(question.room) do %>
-
- <%= question.room.event.name.strip %>
-
- <% end %>
-
-
-
-
-
-
- Asked on: <%= question.created_at.strftime("%B %d, %Y") %>
-
-
- <%= question_status(question) %>
-
-
-
-
-
-
-
-
-
-
- <%= question.up_votes %>
-
-
-
-
- <%= link_to 'delete', question_path(question.id), data: { turbo_method: :delete, turbo_confirm: 'Are you sure?' }, class: "py-2 px-3 text-xs font-medium text-center rounded-lg text-gray-900 hover:text-white border border-gray-800 hover:bg-gray-900 focus:ring-4 focus:outline-none focus:ring-gray-300 dark:border-gray-600 dark:text-gray-400 dark:hover:text-white dark:hover:bg-gray-600 dark:focus:ring-gray-800" %>
-
-
-
-
diff --git a/app/views/your_questions/index.html.erb b/app/views/your_questions/index.html.erb
index a7b73a5f..96c35173 100644
--- a/app/views/your_questions/index.html.erb
+++ b/app/views/your_questions/index.html.erb
@@ -6,7 +6,84 @@
You have <%= pluralize(@count, 'question') %>
- <% @questions.each do |question| %>
- <%= render partial: "your_question", locals: { question: question } %>
- <% end %>
+ <%# Display the user's questions %>
+
+ <%= render DashboardQuestionTableComponent.new do |component| %>
+ <% component.with_header do %>
+
+
+
+
+
+ Your Questions
+
+
+ <%= link_to your_questions_path do %>
+
+
+
+ <% end %>
+
+
+
+
+ Status
+
+
+ Upvotes
+
+
+ Event
+
+
+ Date
+
+
+ Tone
+
+
+
+
+
+ <% end %>
+ <%# Looping on the questions %>
+ <% @questions.each do |question| %>
+ <% component.with_question do %>
+
+
+ <%= link_to your_question_path(question.id) do %>
+ <%= question.title.truncate(52) %>
+ <% end %>
+
+
+ <%= display_question_status(question.status) %>
+
+
+ <%= question.up_votes %>
+
+
+ <%= link_to room_questions_path(question.room) do %>
+ <%= question.room.event.name.truncate(42) %>
+ <% end %>
+
+
+ <%= question.created_at.strftime('%b %d, %y') %>
+
+
+ <%= question.tone %>
+
+
+
+ <%= link_to question_path(question.id), data: { turbo_method: :delete, turbo_confirm: 'Are you sure?' }, class: "text-center text-red-400 hover:text-red-600 dark:text-red-600 dark:hover:text-red-400" do %>
+
+
+
+ <% end %>
+
+
+
+ <% end %>
+ <% end %>
+ <% end %>
+
diff --git a/app/views/your_questions/show.html.erb b/app/views/your_questions/show.html.erb
index 38efea37..1b3fc80d 100644
--- a/app/views/your_questions/show.html.erb
+++ b/app/views/your_questions/show.html.erb
@@ -1,2 +1,49 @@
-
YourQuestions#show
-
Find me in app/views/your_questions/show.html.erb
+
+
+ <%= link_to :back, class: "text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center inline-flex items-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800" do %>
+
+
+
+ Back
+ <% end %>
+
+
+
+
+
+
Status:
+
+ <%= display_question_status(@question.status) %>
+ <% if @question.status == 'rejected' %>
+ as
+
+ <%= @question.rejection_cause %>
+
+ <% end %>
+
+
+
+
Stats:
+
+
+ Upvotes: <%= @question.up_votes %>
+
+
+ Created At: <%= @question.created_at.strftime('%Y-%m-%d %H:%M:%S') %>
+
+
+ Tone: <%= @question.tone %>
+
+
+
+
+
Event:
+ <%= link_to room_questions_path(@question.room), class: "text-gray-500 dark:text-gray-400" do %>
+ <%= @question.room.event.name %>
+ <% end %>
+
+
+
+
diff --git a/config/environments/development.rb b/config/environments/development.rb
index c2194d10..ed242f39 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -1,6 +1,15 @@
require 'active_support/core_ext/integer/time'
Rails.application.configure do
+ config.after_initialize do
+ Bullet.enable = true
+ Bullet.alert = true
+ Bullet.bullet_logger = true
+ Bullet.console = true
+ Bullet.rails_logger = true
+ Bullet.add_footer = true
+ end
+
# Settings specified here will take precedence over those in config/application.rb.
# In the development environment your application's code is reloaded any time
diff --git a/config/routes.rb b/config/routes.rb
index f08139d7..8bedc855 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -72,7 +72,7 @@
put 'notifications', to: 'notifications#mark_all_as_read', as: :mark_as_read_all
# Display the user's questions
- resources :your_questions, only: [:index]
+ resources :your_questions, only: [:index, :show]
# Validate event PIN
post '/', to: 'events#validate_pin', as: :pin
@@ -89,10 +89,11 @@
get 'legal/cp', to: 'legal#cp'
# Organization (aka Account model) routes
- get 'organization/:id', to: 'account#show'
- get 'organization/:id/edit', to: 'account#edit'
- put 'organization/:id', to: 'account#update'
-
+ # and sub-routes
+ resources :organization, only: [:show, :update, :edit] do
+ resources :users, only: [:index]
+ resource :ssos, only: [:show, :update, :edit], shallow: true
+ end
# Defines the main root path route ("/")
# Must be the last route in the file
diff --git a/db/migrate/20230105225145_add_account_id_to_tables.rb b/db/migrate/20230105225145_add_account_id_to_tables.rb
index 4e326640..32655dc5 100644
--- a/db/migrate/20230105225145_add_account_id_to_tables.rb
+++ b/db/migrate/20230105225145_add_account_id_to_tables.rb
@@ -1,48 +1,48 @@
class AddAccountIdToTables < ActiveRecord::Migration[7.0]
def up
- # Adding the account_id column to Events, Rooms and Questions
+ # Adding the organization_id column to Events, Rooms and Questions
# Events
- add_column :events, :account_id, :uuid
- add_index :events, :account_id
+ add_column :events, :organization_id, :uuid
+ add_index :events, :organization_id
# Rooms
- add_column :rooms, :account_id, :uuid
- add_index :rooms, :account_id
+ add_column :rooms, :organization_id, :uuid
+ add_index :rooms, :organization_id
# Questions
- add_column :questions, :account_id, :uuid
- add_index :questions, :account_id
+ add_column :questions, :organization_id, :uuid
+ add_index :questions, :organization_id
# Filling with proper data
# Events
- Event.where(account_id: nil).each do |event|
- event.update(account_id: Member.where(user_id: event.user_id).first.account_id)
+ Event.where(organization_id: nil).each do |event|
+ event.update(organization_id: Member.where(user_id: event.user_id).first.organization_id)
end
# Rooms
- Room.where(account_id: nil).each do |room|
- room.update(account_id: Member.where(user_id: room.event.user_id).first.account_id)
+ Room.where(organization_id: nil).each do |room|
+ room.update(organization_id: Member.where(user_id: room.event.user_id).first.organization_id)
end
# Questions
- Question.where(account_id: nil).each do |question|
- question.update(account_id: Member.where(user_id: question.room.event.user_id).first.account_id)
+ Question.where(organization_id: nil).each do |question|
+ question.update(organization_id: Member.where(user_id: question.room.event.user_id).first.organization_id)
end
# Making not null the new default
# Events
- change_column_null :events, :account_id, false
+ change_column_null :events, :organization_id, false
# Rooms
- change_column_null :rooms, :account_id, false
+ change_column_null :rooms, :organization_id, false
# Questions
- change_column_null :questions, :account_id, false
+ change_column_null :questions, :organization_id, false
end
def down
- remove_column :events, :account_id, :uuid
- remove_column :rooms, :account_id, :uuid
- remove_column :questions, :account_id, :uuid
+ remove_column :events, :organization_id, :uuid
+ remove_column :rooms, :organization_id, :uuid
+ remove_column :questions, :organization_id, :uuid
end
end
\ No newline at end of file
diff --git a/db/migrate/20230124185308_rename_account_model_to_organization.rb b/db/migrate/20230124185308_rename_account_model_to_organization.rb
new file mode 100644
index 00000000..3e4beaab
--- /dev/null
+++ b/db/migrate/20230124185308_rename_account_model_to_organization.rb
@@ -0,0 +1,30 @@
+class RenameAccountModelToOrganization < ActiveRecord::Migration[7.0]
+ def up
+
+ # Rename the accounts table to organizations ONLY if the old accounts table exists
+ if table_exists?(:accounts)
+ rename_table :accounts, :organizations
+ end
+
+ # Rename the column account_id ONLY if it exists in the relative table.
+ if Event.attribute_names.include? "account_id"
+ rename_column :events, :account_id, :organization_id
+ end
+ if Member.attribute_names.include? "account_id"
+ rename_column :members, :account_id, :organization_id
+ end
+ if Question.attribute_names.include? "account_id"
+ rename_column :questions, :account_id, :organization_id
+ end
+ if Room.attribute_names.include? "account_id"
+ rename_column :rooms, :account_id, :organization_id
+ end
+
+ # renaming the indexes (done when migrating the column names)
+ # ketp as a reference to the table structure before the change
+ # rename_index :events, :index_events_on_account_id, :index_events_on_organization_id
+ # rename_index :members, :index_members_on_account_id, :index_members_on_organization_id
+ # rename_index :questions, :index_questions_on_account_id, :index_questions_on_organization_id
+ # rename_index :rooms, :index_rooms_on_account_id, :index_rooms_on_organization_id
+ end
+end
diff --git a/db/migrate/20230316015629_create_topics.rb b/db/migrate/20230316015629_create_topics.rb
new file mode 100644
index 00000000..f296ee5a
--- /dev/null
+++ b/db/migrate/20230316015629_create_topics.rb
@@ -0,0 +1,20 @@
+class CreateTopics < ActiveRecord::Migration[7.0]
+ def change
+ create_table :topics, id: :uuid do |t|
+ t.uuid :event_id # optional
+ t.uuid :user_id # optional
+ t.uuid :room_id # optional
+ t.uuid :question_id # optional (debatable, but as polls and surveys will be added...)
+ t.string :name, null: false # required (that's actually what stores the topic)
+ t.text :description
+
+ t.timestamps
+ end
+
+ add_index :topics, :name
+ add_index :topics, :event_id
+ add_index :topics, :user_id
+ add_index :topics, :room_id
+ add_index :topics, :question_id
+ end
+end
diff --git a/db/migrate/20230317012332_add_tone_to_question.rb b/db/migrate/20230317012332_add_tone_to_question.rb
new file mode 100644
index 00000000..bc6d88b3
--- /dev/null
+++ b/db/migrate/20230317012332_add_tone_to_question.rb
@@ -0,0 +1,6 @@
+class AddToneToQuestion < ActiveRecord::Migration[7.0]
+ def change
+ add_column :questions, :tone, :integer, null: false, default: 0
+ add_index :questions, :tone
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index e8920237..e7a31e3b 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,11 +10,17 @@
#
# It's strongly recommended that you check this file into your version control system.
+<<<<<<< HEAD
+ActiveRecord::Schema[7.0].define(version: 2023_03_17_012332) do
+=======
ActiveRecord::Schema[7.0].define(version: 2023_01_17_215006) do
+>>>>>>> main
# These are extensions that must be enabled in order to support this database
enable_extension "pgcrypto"
enable_extension "plpgsql"
+<<<<<<< HEAD
+=======
create_table "accounts", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
t.string "name"
t.string "website"
@@ -33,6 +39,7 @@
t.index ["sso"], name: "index_accounts_on_sso"
end
+>>>>>>> main
create_table "action_text_rich_texts", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
t.string "name", null: false
t.text "body"
@@ -153,11 +160,11 @@
t.string "short_code"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
- t.uuid "account_id", null: false
- t.index ["account_id"], name: "index_events_on_account_id"
+ t.uuid "organization_id", null: false
t.index ["allow_anonymous"], name: "index_events_on_allow_anonymous"
t.index ["always_on"], name: "index_events_on_always_on"
t.index ["event_type"], name: "index_events_on_event_type"
+ t.index ["organization_id"], name: "index_events_on_organization_id"
t.index ["short_code"], name: "index_events_on_short_code"
t.index ["status"], name: "index_events_on_status"
t.index ["user_id"], name: "index_events_on_user_id"
@@ -165,11 +172,11 @@
create_table "members", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
t.uuid "user_id", null: false
- t.uuid "account_id", null: false
+ t.uuid "organization_id", null: false
t.boolean "owner", default: false, null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
- t.index ["account_id"], name: "index_members_on_account_id"
+ t.index ["organization_id"], name: "index_members_on_organization_id"
t.index ["owner"], name: "index_members_on_owner"
t.index ["user_id"], name: "index_members_on_user_id"
end
@@ -197,6 +204,24 @@
t.index ["recipient_type", "recipient_id"], name: "index_notifications_on_recipient"
end
+ create_table "organizations", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
+ t.string "name"
+ t.string "website"
+ t.string "country"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.string "domain"
+ t.boolean "sso", default: false, null: false
+ t.string "dns_txt"
+ t.boolean "domain_verified", default: false, null: false
+ t.datetime "domain_verified_at", precision: nil
+ t.index ["country"], name: "index_organizations_on_country"
+ t.index ["dns_txt"], name: "index_organizations_on_dns_txt", unique: true
+ t.index ["domain"], name: "index_organizations_on_domain", unique: true
+ t.index ["domain_verified"], name: "index_organizations_on_domain_verified"
+ t.index ["sso"], name: "index_organizations_on_sso"
+ end
+
create_table "profiles", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
t.uuid "user_id", null: false
t.string "nickname"
@@ -217,13 +242,15 @@
t.boolean "anonymous", default: false, null: false
t.integer "rejection_cause"
t.uuid "parent_id"
- t.uuid "account_id", null: false
- t.index ["account_id"], name: "index_questions_on_account_id"
+ t.uuid "organization_id", null: false
+ t.integer "tone", default: 0, null: false
t.index ["anonymous"], name: "index_questions_on_anonymous"
+ t.index ["organization_id"], name: "index_questions_on_organization_id"
t.index ["parent_id"], name: "index_questions_on_parent_id"
t.index ["rejection_cause"], name: "index_questions_on_rejection_cause"
t.index ["room_id"], name: "index_questions_on_room_id"
t.index ["status"], name: "index_questions_on_status"
+ t.index ["tone"], name: "index_questions_on_tone"
t.index ["user_id", "room_id"], name: "index_questions_on_user_id_and_room_id"
t.index ["user_id", "status"], name: "index_questions_on_user_id_and_status"
t.index ["user_id"], name: "index_questions_on_user_id"
@@ -247,14 +274,30 @@
t.datetime "start_date", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
- t.uuid "account_id", null: false
- t.index ["account_id"], name: "index_rooms_on_account_id"
+ t.uuid "organization_id", null: false
t.index ["allow_anonymous"], name: "index_rooms_on_allow_anonymous"
t.index ["always_on"], name: "index_rooms_on_always_on"
t.index ["event_id"], name: "index_rooms_on_event_id"
+ t.index ["organization_id"], name: "index_rooms_on_organization_id"
t.index ["start_date"], name: "index_rooms_on_start_date"
end
+ create_table "topics", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
+ t.uuid "event_id"
+ t.uuid "user_id"
+ t.uuid "room_id"
+ t.uuid "question_id"
+ t.string "name", null: false
+ t.text "description"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.index ["event_id"], name: "index_topics_on_event_id"
+ t.index ["name"], name: "index_topics_on_name"
+ t.index ["question_id"], name: "index_topics_on_question_id"
+ t.index ["room_id"], name: "index_topics_on_room_id"
+ t.index ["user_id"], name: "index_topics_on_user_id"
+ end
+
create_table "users", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
t.string "email", null: false
t.string "password_digest"
diff --git a/db/seeds.rb b/db/seeds.rb
index c8946194..3e438591 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -36,7 +36,7 @@
name: Faker::App.name + " by " + Faker::App.author,
user: user,
status: Event.statuses.to_a.sample[1],
- account_id: Member.where(user_id: user.id).first.account_id,
+ organization_id: Member.where(user_id: user.id).first.organization_id,
always_on: [true, false].sample,
allow_anonymous: [true, false].sample,
start_date: Faker::Date.forward(days: 30)
@@ -45,7 +45,7 @@
room = Room.create!(
name: '__default__',
event: event,
- account_id: Member.where(user_id: user.id).first.account_id,
+ organization_id: Member.where(user_id: user.id).first.organization_id,
always_on: event.always_on,
allow_anonymous: event.allow_anonymous,
start_date: event.start_date
@@ -60,7 +60,7 @@
question = Question.new(
room: room,
user: users.sample,
- account_id: room.account_id,
+ organization_id: room.organization_id,
title: Faker::ChuckNorris.fact,
status: Question.statuses.to_a.sample[1]
)
diff --git a/esbuild.config.js b/esbuild.config.js
index 3980a114..86f6b151 100644
--- a/esbuild.config.js
+++ b/esbuild.config.js
@@ -1,28 +1,52 @@
const path = require("path");
-const { replace } = require("esbuild-plugin-replace");
-
-const watch = process.argv.includes("--watch") && {
- onRebuild(error) {
- if (error) console.error("[watch] build failed", error);
- else console.log("[watch] build finished");
- },
-};
+// const { replace } = require("esbuild-plugin-replace");
require("esbuild")
- .build({
+ .context({
entryPoints: ["application.js"],
bundle: true,
+ sourcemap: true,
+ publicPath: "assets",
outdir: path.join(process.cwd(), "app/assets/builds"),
absWorkingDir: path.join(process.cwd(), "app/javascript"),
- watch: watch,
- // custom plugins will be inserted is this array
- plugins: [
- replace({
- DOMContentLoaded: "turbo:load",
- }),
- ],
+ plugins: [],
+ minify: process.argv.includes("--minify"),
+ })
+ .then((context) => {
+ if (process.argv.includes("--watch")) {
+ // Enable watch mode
+ context.watch();
+ } else {
+ // Build once and exit if not in watch mode
+ context.rebuild().then((result) => {
+ context.dispose();
+ });
+ }
})
- .catch((error) => {
- console.error("[esbuild] build failed", error);
- process.exit(1);
- });
+ .catch(() => process.exit(1));
+
+// const watch = process.argv.includes("--watch") && {
+// onRebuild(error) {
+// if (error) console.error("[watch] build failed", error);
+// else console.log("[watch] build finished");
+// },
+// };
+
+// require("esbuild")
+// .build({
+// entryPoints: ["application.js"],
+// bundle: true,
+// outdir: path.join(process.cwd(), "app/assets/builds"),
+// absWorkingDir: path.join(process.cwd(), "app/javascript"),
+// watch: watch,
+// // custom plugins will be inserted is this array
+// plugins: [
+// replace({
+// DOMContentLoaded: "turbo:load",
+// }),
+// ],
+// })
+// .catch((error) => {
+// console.error("[esbuild] build failed", error);
+// process.exit(1);
+// });
diff --git a/lib/tasks/auto_annotate_models.rake b/lib/tasks/auto_annotate_models.rake
new file mode 100644
index 00000000..e96283ea
--- /dev/null
+++ b/lib/tasks/auto_annotate_models.rake
@@ -0,0 +1,59 @@
+# NOTE: only doing this in development as some production environments (Heroku)
+# NOTE: are sensitive to local FS writes, and besides -- it's just not proper
+# NOTE: to have a dev-mode tool do its thing in production.
+if Rails.env.development?
+ require 'annotate'
+ task :set_annotation_options do
+ # You can override any of these by setting an environment variable of the
+ # same name.
+ Annotate.set_defaults(
+ 'active_admin' => 'false',
+ 'additional_file_patterns' => [],
+ 'routes' => 'false',
+ 'models' => 'true',
+ 'position_in_routes' => 'before',
+ 'position_in_class' => 'before',
+ 'position_in_test' => 'before',
+ 'position_in_fixture' => 'before',
+ 'position_in_factory' => 'before',
+ 'position_in_serializer' => 'before',
+ 'show_foreign_keys' => 'true',
+ 'show_complete_foreign_keys' => 'false',
+ 'show_indexes' => 'true',
+ 'simple_indexes' => 'false',
+ 'model_dir' => 'app/models',
+ 'root_dir' => '',
+ 'include_version' => 'false',
+ 'require' => '',
+ 'exclude_tests' => 'false',
+ 'exclude_fixtures' => 'false',
+ 'exclude_factories' => 'false',
+ 'exclude_serializers' => 'false',
+ 'exclude_scaffolds' => 'true',
+ 'exclude_controllers' => 'true',
+ 'exclude_helpers' => 'true',
+ 'exclude_sti_subclasses' => 'false',
+ 'ignore_model_sub_dir' => 'false',
+ 'ignore_columns' => nil,
+ 'ignore_routes' => nil,
+ 'ignore_unknown_models' => 'false',
+ 'hide_limit_column_types' => 'integer,bigint,boolean',
+ 'hide_default_column_types' => 'json,jsonb,hstore',
+ 'skip_on_db_migrate' => 'false',
+ 'format_bare' => 'true',
+ 'format_rdoc' => 'false',
+ 'format_yard' => 'false',
+ 'format_markdown' => 'false',
+ 'sort' => 'false',
+ 'force' => 'false',
+ 'frozen' => 'false',
+ 'classified_sort' => 'true',
+ 'trace' => 'false',
+ 'wrapper_open' => nil,
+ 'wrapper_close' => nil,
+ 'with_comment' => 'true'
+ )
+ end
+
+ Annotate.load_tasks
+end
diff --git a/package.json b/package.json
index ed0f2311..299eb25d 100644
--- a/package.json
+++ b/package.json
@@ -3,25 +3,25 @@
"private": "true",
"dependencies": {
"@hotwired/stimulus": "3.2.1",
- "@hotwired/turbo-rails": "7.2.4",
- "@rails/actiontext": "7.0.4",
- "autoprefixer": "10.4.13",
- "chart.js": "4.2.0",
- "chartkick": "5.0.0",
- "esbuild": "0.16.17",
- "flowbite": "1.6.2",
+ "@hotwired/turbo-rails": "7.3.0",
+ "@rails/actiontext": "7.0.4-3",
+ "@tailwindcss/typography": "0.5.9",
+ "autoprefixer": "10.4.14",
+ "chart.js": "4.2.1",
+ "chartkick": "5.0.1",
+ "esbuild": "0.17.11",
+ "flowbite": "1.6.4",
"postcss": "8.4.21",
- "stimulus-autocomplete": "3.0.2",
+ "stimulus-autocomplete": "3.1.0",
"taggle": "1.15.0",
- "tailwindcss": "3.2.4",
+ "tailwindcss": "3.2.7",
"trix": "2.0.4"
},
"scripts": {
"build": "node esbuild.config.js",
- "build:css": "tailwindcss -i ./app/assets/stylesheets/application.tailwind.css -o ./app/assets/builds/application.css --minify"
+ "build:css": "tailwindcss -i ./app/assets/stylesheets/application.tailwind.css -o ./app/assets/builds/application.css"
},
"devDependencies": {
- "@tailwindcss/line-clamp": "0.4.2",
- "esbuild-plugin-replace": "1.3.0"
+ "@tailwindcss/line-clamp": "0.4.2"
}
}
diff --git a/tailwind.config.js b/tailwind.config.js
index 3bc74ab6..41616c9d 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -14,5 +14,9 @@ module.exports = {
theme: {
extend: {},
},
- plugins: [require("@tailwindcss/line-clamp"), require("flowbite/plugin")],
+ plugins: [
+ require("@tailwindcss/line-clamp"),
+ require("@tailwindcss/typography"),
+ require("flowbite/plugin"),
+ ],
};
diff --git a/test/components/dashboard_counter_component_test.rb b/test/components/dashboard_counter_component_test.rb
new file mode 100644
index 00000000..91b70d31
--- /dev/null
+++ b/test/components/dashboard_counter_component_test.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+require "test_helper"
+
+class DashboardCounterComponentTest < ViewComponent::TestCase
+ def test_component_renders_something_useful
+ # assert_equal(
+ # %(
Hello, components! ),
+ # render_inline(DashboardCounterComponent.new(message: "Hello, components!")).css("span").to_html
+ # )
+ end
+end
diff --git a/test/components/dashboard_question_table_component_test.rb b/test/components/dashboard_question_table_component_test.rb
new file mode 100644
index 00000000..e59505e5
--- /dev/null
+++ b/test/components/dashboard_question_table_component_test.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+require "test_helper"
+
+class DashboardQuestionTableComponentTest < ViewComponent::TestCase
+ def test_component_renders_something_useful
+ # assert_equal(
+ # %(
Hello, components! ),
+ # render_inline(DashboardQuestionTableComponent.new(message: "Hello, components!")).css("span").to_html
+ # )
+ end
+end
diff --git a/test/controllers/ssos_controller_test.rb b/test/controllers/ssos_controller_test.rb
new file mode 100644
index 00000000..4148e37d
--- /dev/null
+++ b/test/controllers/ssos_controller_test.rb
@@ -0,0 +1,18 @@
+require "test_helper"
+
+class SsosControllerTest < ActionDispatch::IntegrationTest
+ test "should get edit" do
+ get sso_edit_url
+ assert_response :success
+ end
+
+ test "should get show" do
+ get sso_show_url
+ assert_response :success
+ end
+
+ test "should get update" do
+ get sso_update_url
+ assert_response :success
+ end
+end
diff --git a/test/fixtures/accounts.yml b/test/fixtures/accounts.yml
deleted file mode 100644
index c3695a3a..00000000
--- a/test/fixtures/accounts.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
-
-one:
- name: ACME Inc
- website: https://www.acme.com
- country:
-
-two:
- name: Supa Corp
- website: https://supa.corp.com
- country:
diff --git a/test/fixtures/active_sessions.yml b/test/fixtures/active_sessions.yml
index 4b920dcf..e86b9f1c 100644
--- a/test/fixtures/active_sessions.yml
+++ b/test/fixtures/active_sessions.yml
@@ -1,4 +1,26 @@
-# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+# == Schema Information
+#
+# Table name: active_sessions
+#
+# id :uuid not null, primary key
+# ip_address :string
+# remember_token :string not null
+# user_agent :string
+# created_at :datetime not null
+# updated_at :datetime not null
+# user_id :uuid not null
+#
+# Indexes
+#
+# index_active_sessions_on_ip_address (ip_address)
+# index_active_sessions_on_remember_token (remember_token) UNIQUE
+# index_active_sessions_on_user_agent (user_agent)
+# index_active_sessions_on_user_id (user_id)
+#
+# Foreign Keys
+#
+# fk_rails_... (user_id => users.id) ON DELETE => cascade
+#
one:
user: one
diff --git a/test/fixtures/attendances.yml b/test/fixtures/attendances.yml
index 6b8e2e36..5f6bc366 100644
--- a/test/fixtures/attendances.yml
+++ b/test/fixtures/attendances.yml
@@ -1,4 +1,28 @@
-# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+# == Schema Information
+#
+# Table name: attendances
+#
+# id :uuid not null, primary key
+# end_time :datetime
+# start_time :datetime not null
+# status :integer default("offline"), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# event_id :uuid not null
+# room_id :bigint
+# user_id :uuid not null
+#
+# Indexes
+#
+# index_attendances_on_event_id (event_id)
+# index_attendances_on_room_id (room_id)
+# index_attendances_on_user_id (user_id)
+#
+# Foreign Keys
+#
+# fk_rails_... (event_id => events.id)
+# fk_rails_... (user_id => users.id)
+#
one:
user: one
diff --git a/test/fixtures/events.yml b/test/fixtures/events.yml
index eb1e2bf3..8a506a4f 100644
--- a/test/fixtures/events.yml
+++ b/test/fixtures/events.yml
@@ -1,4 +1,36 @@
-# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+# == Schema Information
+#
+# Table name: events
+#
+# id :uuid not null, primary key
+# allow_anonymous :boolean default(FALSE), not null
+# always_on :boolean default(FALSE), not null
+# duration :integer
+# end_date :datetime not null
+# event_type :integer not null
+# name :string not null
+# short_code :string
+# start_date :datetime not null
+# status :integer default("draft"), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# organization_id :uuid not null
+# user_id :uuid not null
+#
+# Indexes
+#
+# index_events_on_allow_anonymous (allow_anonymous)
+# index_events_on_always_on (always_on)
+# index_events_on_event_type (event_type)
+# index_events_on_organization_id (organization_id)
+# index_events_on_short_code (short_code)
+# index_events_on_status (status)
+# index_events_on_user_id (user_id)
+#
+# Foreign Keys
+#
+# fk_rails_... (user_id => users.id)
+#
one:
name: Event number One
@@ -9,13 +41,15 @@ one:
user: one
event_type: universal
status: opened
+ organization_id: organizations(one).id
two:
- name: Super Event number two
+ name: Event with an invalid stop date
start_date: <%= Time.current.utc + 1.day %>
- end_date: <%= Time.current.utc + 2.day %>
+ end_date: <%= Time.current.utc - 2.day %>
duration: 1
- short_code: 098765
+ short_code: nil
user: one
event_type: universal
- status: opened
+ status: archived
+ organization_id: organizations(one).id
diff --git a/test/fixtures/members.yml b/test/fixtures/members.yml
index da3c6f10..745eb422 100644
--- a/test/fixtures/members.yml
+++ b/test/fixtures/members.yml
@@ -1,9 +1,27 @@
-# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+# == Schema Information
+#
+# Table name: members
+#
+# id :uuid not null, primary key
+# owner :boolean default(FALSE), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# organization_id :uuid not null
+# user_id :uuid not null
+#
+# Indexes
+#
+# index_members_on_organization_id (organization_id)
+# index_members_on_owner (owner)
+# index_members_on_user_id (user_id)
+#
one:
user: one
- account: one
+ organization: one
+ owner: true
two:
user: two
- account: two
+ organization: two
+ owner: false
diff --git a/test/fixtures/messages.yml b/test/fixtures/messages.yml
index 33f7a30c..763776b4 100644
--- a/test/fixtures/messages.yml
+++ b/test/fixtures/messages.yml
@@ -1,4 +1,24 @@
-# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+# == Schema Information
+#
+# Table name: messages
+#
+# id :uuid not null, primary key
+# content :text
+# level :integer default("info"), not null
+# title :string
+# created_at :datetime not null
+# updated_at :datetime not null
+# user_id :uuid not null
+#
+# Indexes
+#
+# index_messages_on_level (level)
+# index_messages_on_user_id (user_id)
+#
+# Foreign Keys
+#
+# fk_rails_... (user_id => users.id)
+#
one:
content: MyText
diff --git a/test/fixtures/notifications.yml b/test/fixtures/notifications.yml
index 6ce6de9f..6a49ea2a 100644
--- a/test/fixtures/notifications.yml
+++ b/test/fixtures/notifications.yml
@@ -1,4 +1,21 @@
-# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+# == Schema Information
+#
+# Table name: notifications
+#
+# id :uuid not null, primary key
+# params :jsonb
+# read_at :datetime
+# recipient_type :string not null
+# type :string not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# recipient_id :bigint not null
+#
+# Indexes
+#
+# index_notifications_on_read_at (read_at)
+# index_notifications_on_recipient (recipient_type,recipient_id)
+#
one:
recipient: one
diff --git a/test/fixtures/organizations.yml b/test/fixtures/organizations.yml
new file mode 100644
index 00000000..9c5160db
--- /dev/null
+++ b/test/fixtures/organizations.yml
@@ -0,0 +1,38 @@
+# == Schema Information
+#
+# Table name: organizations
+#
+# id :uuid not null, primary key
+# country :string
+# dns_txt :string
+# domain :string
+# domain_verified :boolean default(FALSE), not null
+# domain_verified_at :datetime
+# name :string
+# sso :boolean default(FALSE), not null
+# website :string
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+# Indexes
+#
+# index_organizations_on_country (country)
+# index_organizations_on_dns_txt (dns_txt) UNIQUE
+# index_organizations_on_domain (domain) UNIQUE
+# index_organizations_on_domain_verified (domain_verified)
+# index_organizations_on_sso (sso)
+#
+
+one:
+ name: ACME Inc
+ website: https://www.acme.com
+ country:
+ domain: acme.com
+ domain_verified: true
+ domain_verified_at: <%= Time.current.utc %>
+ dns_txt: sOmeRandomeString
+
+two:
+ name: Supa Corp
+ website: https://supa.corp.com
+ country:
diff --git a/test/fixtures/profiles.yml b/test/fixtures/profiles.yml
index ed080eed..55d21df2 100644
--- a/test/fixtures/profiles.yml
+++ b/test/fixtures/profiles.yml
@@ -1,4 +1,23 @@
-# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+# == Schema Information
+#
+# Table name: profiles
+#
+# id :uuid not null, primary key
+# mode :integer default("light"), not null
+# nickname :string
+# created_at :datetime not null
+# updated_at :datetime not null
+# user_id :uuid not null
+#
+# Indexes
+#
+# index_profiles_on_mode (mode)
+# index_profiles_on_user_id (user_id)
+#
+# Foreign Keys
+#
+# fk_rails_... (user_id => users.id)
+#
one:
user: one
diff --git a/test/fixtures/questions.yml b/test/fixtures/questions.yml
index cc79be2e..ef11aafb 100644
--- a/test/fixtures/questions.yml
+++ b/test/fixtures/questions.yml
@@ -1,12 +1,48 @@
-# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+# == Schema Information
+#
+# Table name: questions
+#
+# id :uuid not null, primary key
+# anonymous :boolean default(FALSE), not null
+# rejection_cause :integer
+# status :integer default("asked"), not null
+# title :string not null
+# tone :integer default("undefined"), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# organization_id :uuid not null
+# parent_id :uuid
+# room_id :uuid not null
+# user_id :uuid not null
+#
+# Indexes
+#
+# index_questions_on_anonymous (anonymous)
+# index_questions_on_organization_id (organization_id)
+# index_questions_on_parent_id (parent_id)
+# index_questions_on_rejection_cause (rejection_cause)
+# index_questions_on_room_id (room_id)
+# index_questions_on_status (status)
+# index_questions_on_tone (tone)
+# index_questions_on_user_id (user_id)
+# index_questions_on_user_id_and_room_id (user_id,room_id)
+# index_questions_on_user_id_and_status (user_id,status)
+#
+# Foreign Keys
+#
+# fk_rails_... (room_id => rooms.id)
+# fk_rails_... (user_id => users.id)
+#
one:
title: This is question number 1
user: one
room: one
+ organization_id: organization(:one).id
two:
title: This is question number 2
user: one
room: two
anonymous: true
+ organization_id: organization(:two).id
diff --git a/test/fixtures/roles.yml b/test/fixtures/roles.yml
index d7a33292..61434391 100644
--- a/test/fixtures/roles.yml
+++ b/test/fixtures/roles.yml
@@ -1,4 +1,19 @@
-# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+# == Schema Information
+#
+# Table name: roles
+#
+# id :bigint not null, primary key
+# name :string
+# resource_type :string
+# created_at :datetime not null
+# updated_at :datetime not null
+# resource_id :uuid
+#
+# Indexes
+#
+# index_roles_on_name_and_resource_type_and_resource_id (name,resource_type,resource_id)
+# index_roles_on_resource (resource_type,resource_id)
+#
# This model initially had no columns defined. If you add columns to the
# model remove the "{}" from the fixture names and add the columns immediately
diff --git a/test/fixtures/rooms.yml b/test/fixtures/rooms.yml
index 0342c5ba..cfbec25d 100644
--- a/test/fixtures/rooms.yml
+++ b/test/fixtures/rooms.yml
@@ -1,10 +1,36 @@
-# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+# == Schema Information
+#
+# Table name: rooms
+#
+# id :uuid not null, primary key
+# allow_anonymous :boolean default(FALSE), not null
+# always_on :boolean default(FALSE), not null
+# name :string not null
+# start_date :datetime not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# event_id :uuid not null
+# organization_id :uuid not null
+#
+# Indexes
+#
+# index_rooms_on_allow_anonymous (allow_anonymous)
+# index_rooms_on_always_on (always_on)
+# index_rooms_on_event_id (event_id)
+# index_rooms_on_organization_id (organization_id)
+# index_rooms_on_start_date (start_date)
+#
+# Foreign Keys
+#
+# fk_rails_... (event_id => events.id)
+#
one:
name: __default__
event: one
always_on: false
allow_anonymous: false
+ organization_id: organization(:one).id
start_date: <%= DateTime.now.utc %>
created_at: <%= Time.current.utc %>
updated_at: <%= Time.current.utc %>
@@ -14,6 +40,7 @@ two:
event: two
always_on: true
allow_anonymous: true
+ organization_id: organization(:two).id
start_date: <%= DateTime.now.utc %>
created_at: <%= Time.current.utc %>
updated_at: <%= Time.current.utc %>
diff --git a/test/fixtures/topics.yml b/test/fixtures/topics.yml
new file mode 100644
index 00000000..a0928c32
--- /dev/null
+++ b/test/fixtures/topics.yml
@@ -0,0 +1,36 @@
+# == Schema Information
+#
+# Table name: topics
+#
+# id :uuid not null, primary key
+# description :text
+# name :string not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# event_id :uuid
+# question_id :uuid
+# room_id :uuid
+# user_id :uuid
+#
+# Indexes
+#
+# index_topics_on_event_id (event_id)
+# index_topics_on_name (name)
+# index_topics_on_question_id (question_id)
+# index_topics_on_room_id (room_id)
+# index_topics_on_user_id (user_id)
+#
+
+one:
+ name: MyString
+ description: MyText
+ event_id:
+ user_id:
+ room_id:
+
+two:
+ name: MyString
+ description: MyText
+ event_id:
+ user_id:
+ room_id:
diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml
index 99f66a42..f161029c 100644
--- a/test/fixtures/users.yml
+++ b/test/fixtures/users.yml
@@ -1,4 +1,29 @@
-# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+# == Schema Information
+#
+# Table name: users
+#
+# id :uuid not null, primary key
+# blocked :boolean default(FALSE), not null
+# confirmed :boolean default(FALSE), not null
+# confirmed_at :datetime
+# email :string not null
+# failed_attempts :integer default(0), not null
+# locked :boolean default(FALSE), not null
+# locked_at :datetime
+# password_digest :string
+# provider :string
+# uid :string
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+# Indexes
+#
+# index_users_on_blocked (blocked)
+# index_users_on_email (email) UNIQUE
+# index_users_on_locked (locked)
+# index_users_on_provider (provider)
+# index_users_on_uid (uid) UNIQUE
+#
# User one is confirmed and unblocked/unlocked
one:
@@ -25,4 +50,4 @@ three:
four:
email: test_user4@test.com
password_digest: <%= Argon2::Password.create("passpass") %>
- blocked: false
\ No newline at end of file
+ blocked: false
diff --git a/test/fixtures/votes.yml b/test/fixtures/votes.yml
index 25183791..4a4a4ec3 100644
--- a/test/fixtures/votes.yml
+++ b/test/fixtures/votes.yml
@@ -1,4 +1,24 @@
-# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+# == Schema Information
+#
+# Table name: votes
+#
+# id :bigint not null, primary key
+# choice :integer default("cancel")
+# votable_type :string not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# user_id :uuid not null
+# votable_id :uuid not null
+#
+# Indexes
+#
+# index_votes_on_user_id (user_id)
+# index_votes_on_votable (votable_type,votable_id)
+#
+# Foreign Keys
+#
+# fk_rails_... (user_id => users.id)
+#
one:
user: one
diff --git a/test/models/account_test.rb b/test/models/account_test.rb
deleted file mode 100644
index b6de6a15..00000000
--- a/test/models/account_test.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-require "test_helper"
-
-class AccountTest < ActiveSupport::TestCase
- # test "the truth" do
- # assert true
- # end
-end
diff --git a/test/models/active_session_test.rb b/test/models/active_session_test.rb
index 386c525e..ff37936d 100644
--- a/test/models/active_session_test.rb
+++ b/test/models/active_session_test.rb
@@ -1,3 +1,26 @@
+# == Schema Information
+#
+# Table name: active_sessions
+#
+# id :uuid not null, primary key
+# ip_address :string
+# remember_token :string not null
+# user_agent :string
+# created_at :datetime not null
+# updated_at :datetime not null
+# user_id :uuid not null
+#
+# Indexes
+#
+# index_active_sessions_on_ip_address (ip_address)
+# index_active_sessions_on_remember_token (remember_token) UNIQUE
+# index_active_sessions_on_user_agent (user_agent)
+# index_active_sessions_on_user_id (user_id)
+#
+# Foreign Keys
+#
+# fk_rails_... (user_id => users.id) ON DELETE => cascade
+#
require 'test_helper'
class ActiveSessionTest < ActiveSupport::TestCase
diff --git a/test/models/attendance_test.rb b/test/models/attendance_test.rb
index ecb02630..f377d561 100644
--- a/test/models/attendance_test.rb
+++ b/test/models/attendance_test.rb
@@ -1,3 +1,28 @@
+# == Schema Information
+#
+# Table name: attendances
+#
+# id :uuid not null, primary key
+# end_time :datetime
+# start_time :datetime not null
+# status :integer default("offline"), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# event_id :uuid not null
+# room_id :bigint
+# user_id :uuid not null
+#
+# Indexes
+#
+# index_attendances_on_event_id (event_id)
+# index_attendances_on_room_id (room_id)
+# index_attendances_on_user_id (user_id)
+#
+# Foreign Keys
+#
+# fk_rails_... (event_id => events.id)
+# fk_rails_... (user_id => users.id)
+#
require 'test_helper'
class AttendanceTest < ActiveSupport::TestCase
diff --git a/test/models/event_test.rb b/test/models/event_test.rb
index c6f15668..6ba17b42 100644
--- a/test/models/event_test.rb
+++ b/test/models/event_test.rb
@@ -1,7 +1,46 @@
+# == Schema Information
+#
+# Table name: events
+#
+# id :uuid not null, primary key
+# allow_anonymous :boolean default(FALSE), not null
+# always_on :boolean default(FALSE), not null
+# duration :integer
+# end_date :datetime not null
+# event_type :integer not null
+# name :string not null
+# short_code :string
+# start_date :datetime not null
+# status :integer default("draft"), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# organization_id :uuid not null
+# user_id :uuid not null
+#
+# Indexes
+#
+# index_events_on_allow_anonymous (allow_anonymous)
+# index_events_on_always_on (always_on)
+# index_events_on_event_type (event_type)
+# index_events_on_organization_id (organization_id)
+# index_events_on_short_code (short_code)
+# index_events_on_status (status)
+# index_events_on_user_id (user_id)
+#
+# Foreign Keys
+#
+# fk_rails_... (user_id => users.id)
+#
require 'test_helper'
class EventTest < ActiveSupport::TestCase
- # test "the truth" do
- # assert true
- # end
+ def setup
+ logger.debug "Calling setup"
+ @event = events(:one)
+ logger.debug "End setup"
+ end
+
+ test "event belongs to a user" do
+ assert_equal users(:one), @event.user
+ end
end
diff --git a/test/models/member_test.rb b/test/models/member_test.rb
index 4fec2302..30babaa6 100644
--- a/test/models/member_test.rb
+++ b/test/models/member_test.rb
@@ -1,3 +1,20 @@
+# == Schema Information
+#
+# Table name: members
+#
+# id :uuid not null, primary key
+# owner :boolean default(FALSE), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# organization_id :uuid not null
+# user_id :uuid not null
+#
+# Indexes
+#
+# index_members_on_organization_id (organization_id)
+# index_members_on_owner (owner)
+# index_members_on_user_id (user_id)
+#
require "test_helper"
class MemberTest < ActiveSupport::TestCase
diff --git a/test/models/message_test.rb b/test/models/message_test.rb
index 0e0d35bb..33b41dc0 100644
--- a/test/models/message_test.rb
+++ b/test/models/message_test.rb
@@ -1,3 +1,24 @@
+# == Schema Information
+#
+# Table name: messages
+#
+# id :uuid not null, primary key
+# content :text
+# level :integer default("info"), not null
+# title :string
+# created_at :datetime not null
+# updated_at :datetime not null
+# user_id :uuid not null
+#
+# Indexes
+#
+# index_messages_on_level (level)
+# index_messages_on_user_id (user_id)
+#
+# Foreign Keys
+#
+# fk_rails_... (user_id => users.id)
+#
require "test_helper"
class MessageTest < ActiveSupport::TestCase
diff --git a/test/models/notification_test.rb b/test/models/notification_test.rb
index a76e08d6..97a6a2e3 100644
--- a/test/models/notification_test.rb
+++ b/test/models/notification_test.rb
@@ -1,3 +1,21 @@
+# == Schema Information
+#
+# Table name: notifications
+#
+# id :uuid not null, primary key
+# params :jsonb
+# read_at :datetime
+# recipient_type :string not null
+# type :string not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# recipient_id :bigint not null
+#
+# Indexes
+#
+# index_notifications_on_read_at (read_at)
+# index_notifications_on_recipient (recipient_type,recipient_id)
+#
require "test_helper"
class NotificationTest < ActiveSupport::TestCase
diff --git a/test/models/organization_test.rb b/test/models/organization_test.rb
new file mode 100644
index 00000000..1d2c958a
--- /dev/null
+++ b/test/models/organization_test.rb
@@ -0,0 +1,31 @@
+# == Schema Information
+#
+# Table name: organizations
+#
+# id :uuid not null, primary key
+# country :string
+# dns_txt :string
+# domain :string
+# domain_verified :boolean default(FALSE), not null
+# domain_verified_at :datetime
+# name :string
+# sso :boolean default(FALSE), not null
+# website :string
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+# Indexes
+#
+# index_organizations_on_country (country)
+# index_organizations_on_dns_txt (dns_txt) UNIQUE
+# index_organizations_on_domain (domain) UNIQUE
+# index_organizations_on_domain_verified (domain_verified)
+# index_organizations_on_sso (sso)
+#
+require "test_helper"
+
+class OrganizationTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/models/profile_test.rb b/test/models/profile_test.rb
index f8b27ae8..5386067c 100644
--- a/test/models/profile_test.rb
+++ b/test/models/profile_test.rb
@@ -1,3 +1,23 @@
+# == Schema Information
+#
+# Table name: profiles
+#
+# id :uuid not null, primary key
+# mode :integer default("light"), not null
+# nickname :string
+# created_at :datetime not null
+# updated_at :datetime not null
+# user_id :uuid not null
+#
+# Indexes
+#
+# index_profiles_on_mode (mode)
+# index_profiles_on_user_id (user_id)
+#
+# Foreign Keys
+#
+# fk_rails_... (user_id => users.id)
+#
require 'test_helper'
class ProfileTest < ActiveSupport::TestCase
diff --git a/test/models/question_test.rb b/test/models/question_test.rb
index 392eaaef..086aaf38 100644
--- a/test/models/question_test.rb
+++ b/test/models/question_test.rb
@@ -1,3 +1,38 @@
+# == Schema Information
+#
+# Table name: questions
+#
+# id :uuid not null, primary key
+# anonymous :boolean default(FALSE), not null
+# rejection_cause :integer
+# status :integer default("asked"), not null
+# title :string not null
+# tone :integer default("undefined"), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# organization_id :uuid not null
+# parent_id :uuid
+# room_id :uuid not null
+# user_id :uuid not null
+#
+# Indexes
+#
+# index_questions_on_anonymous (anonymous)
+# index_questions_on_organization_id (organization_id)
+# index_questions_on_parent_id (parent_id)
+# index_questions_on_rejection_cause (rejection_cause)
+# index_questions_on_room_id (room_id)
+# index_questions_on_status (status)
+# index_questions_on_tone (tone)
+# index_questions_on_user_id (user_id)
+# index_questions_on_user_id_and_room_id (user_id,room_id)
+# index_questions_on_user_id_and_status (user_id,status)
+#
+# Foreign Keys
+#
+# fk_rails_... (room_id => rooms.id)
+# fk_rails_... (user_id => users.id)
+#
require 'test_helper'
class QuestionTest < ActiveSupport::TestCase
diff --git a/test/models/role_test.rb b/test/models/role_test.rb
index 5e1a9aeb..a070426f 100644
--- a/test/models/role_test.rb
+++ b/test/models/role_test.rb
@@ -1,3 +1,19 @@
+# == Schema Information
+#
+# Table name: roles
+#
+# id :bigint not null, primary key
+# name :string
+# resource_type :string
+# created_at :datetime not null
+# updated_at :datetime not null
+# resource_id :uuid
+#
+# Indexes
+#
+# index_roles_on_name_and_resource_type_and_resource_id (name,resource_type,resource_id)
+# index_roles_on_resource (resource_type,resource_id)
+#
require "test_helper"
class RoleTest < ActiveSupport::TestCase
diff --git a/test/models/room_test.rb b/test/models/room_test.rb
index 86f81b44..8f3bd9a1 100644
--- a/test/models/room_test.rb
+++ b/test/models/room_test.rb
@@ -1,3 +1,29 @@
+# == Schema Information
+#
+# Table name: rooms
+#
+# id :uuid not null, primary key
+# allow_anonymous :boolean default(FALSE), not null
+# always_on :boolean default(FALSE), not null
+# name :string not null
+# start_date :datetime not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# event_id :uuid not null
+# organization_id :uuid not null
+#
+# Indexes
+#
+# index_rooms_on_allow_anonymous (allow_anonymous)
+# index_rooms_on_always_on (always_on)
+# index_rooms_on_event_id (event_id)
+# index_rooms_on_organization_id (organization_id)
+# index_rooms_on_start_date (start_date)
+#
+# Foreign Keys
+#
+# fk_rails_... (event_id => events.id)
+#
require 'test_helper'
class RoomTest < ActiveSupport::TestCase
diff --git a/test/models/topic_test.rb b/test/models/topic_test.rb
new file mode 100644
index 00000000..4e49d1ad
--- /dev/null
+++ b/test/models/topic_test.rb
@@ -0,0 +1,29 @@
+# == Schema Information
+#
+# Table name: topics
+#
+# id :uuid not null, primary key
+# description :text
+# name :string not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# event_id :uuid
+# question_id :uuid
+# room_id :uuid
+# user_id :uuid
+#
+# Indexes
+#
+# index_topics_on_event_id (event_id)
+# index_topics_on_name (name)
+# index_topics_on_question_id (question_id)
+# index_topics_on_room_id (room_id)
+# index_topics_on_user_id (user_id)
+#
+require "test_helper"
+
+class TopicTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
diff --git a/test/models/user_test.rb b/test/models/user_test.rb
index 11c7cb8f..926c1019 100644
--- a/test/models/user_test.rb
+++ b/test/models/user_test.rb
@@ -1,3 +1,29 @@
+# == Schema Information
+#
+# Table name: users
+#
+# id :uuid not null, primary key
+# blocked :boolean default(FALSE), not null
+# confirmed :boolean default(FALSE), not null
+# confirmed_at :datetime
+# email :string not null
+# failed_attempts :integer default(0), not null
+# locked :boolean default(FALSE), not null
+# locked_at :datetime
+# password_digest :string
+# provider :string
+# uid :string
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+# Indexes
+#
+# index_users_on_blocked (blocked)
+# index_users_on_email (email) UNIQUE
+# index_users_on_locked (locked)
+# index_users_on_provider (provider)
+# index_users_on_uid (uid) UNIQUE
+#
require 'test_helper'
class UserTest < ActiveSupport::TestCase
diff --git a/test/models/vote_test.rb b/test/models/vote_test.rb
index f567e87f..a1fbb0e5 100644
--- a/test/models/vote_test.rb
+++ b/test/models/vote_test.rb
@@ -1,3 +1,24 @@
+# == Schema Information
+#
+# Table name: votes
+#
+# id :bigint not null, primary key
+# choice :integer default("cancel")
+# votable_type :string not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# user_id :uuid not null
+# votable_id :uuid not null
+#
+# Indexes
+#
+# index_votes_on_user_id (user_id)
+# index_votes_on_votable (votable_type,votable_id)
+#
+# Foreign Keys
+#
+# fk_rails_... (user_id => users.id)
+#
require "test_helper"
class VoteTest < ActiveSupport::TestCase
diff --git a/yarn.lock b/yarn.lock
index b3aa8e93..1266c06a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,133 +2,133 @@
# yarn lockfile v1
-"@esbuild/android-arm64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23"
- integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==
-
-"@esbuild/android-arm@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2"
- integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==
-
-"@esbuild/android-x64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e"
- integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==
-
-"@esbuild/darwin-arm64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220"
- integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==
-
-"@esbuild/darwin-x64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4"
- integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==
-
-"@esbuild/freebsd-arm64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27"
- integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==
-
-"@esbuild/freebsd-x64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72"
- integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==
-
-"@esbuild/linux-arm64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca"
- integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==
-
-"@esbuild/linux-arm@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196"
- integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==
-
-"@esbuild/linux-ia32@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54"
- integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==
-
-"@esbuild/linux-loong64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8"
- integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==
-
-"@esbuild/linux-mips64el@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726"
- integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==
-
-"@esbuild/linux-ppc64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8"
- integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==
-
-"@esbuild/linux-riscv64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9"
- integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==
-
-"@esbuild/linux-s390x@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87"
- integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==
-
-"@esbuild/linux-x64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f"
- integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==
-
-"@esbuild/netbsd-x64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775"
- integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==
-
-"@esbuild/openbsd-x64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35"
- integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==
-
-"@esbuild/sunos-x64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c"
- integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==
-
-"@esbuild/win32-arm64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a"
- integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==
-
-"@esbuild/win32-ia32@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09"
- integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==
-
-"@esbuild/win32-x64@0.16.17":
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091"
- integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==
+"@esbuild/android-arm64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.11.tgz#52c3e6cabc19c5e4c1c0c01cb58f0442338e1c14"
+ integrity sha512-QnK4d/zhVTuV4/pRM4HUjcsbl43POALU2zvBynmrrqZt9LPcLA3x1fTZPBg2RRguBQnJcnU059yKr+bydkntjg==
+
+"@esbuild/android-arm@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.11.tgz#f3fc768235aecbeb840d0049fdf13cd28592105f"
+ integrity sha512-CdyX6sRVh1NzFCsf5vw3kULwlAhfy9wVt8SZlrhQ7eL2qBjGbFhRBWkkAzuZm9IIEOCKJw4DXA6R85g+qc8RDw==
+
+"@esbuild/android-x64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.11.tgz#443ed47771a7e917e4282469ba350d117473550c"
+ integrity sha512-3PL3HKtsDIXGQcSCKtWD/dy+mgc4p2Tvo2qKgKHj9Yf+eniwFnuoQ0OUhlSfAEpKAFzF9N21Nwgnap6zy3L3MQ==
+
+"@esbuild/darwin-arm64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.11.tgz#0e8c78d94d5759a48521dbfd83189d2ed3499a16"
+ integrity sha512-pJ950bNKgzhkGNO3Z9TeHzIFtEyC2GDQL3wxkMApDEghYx5Qers84UTNc1bAxWbRkuJOgmOha5V0WUeh8G+YGw==
+
+"@esbuild/darwin-x64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.11.tgz#2405cfdf70eb961c7cf973463ca7263dc2004c88"
+ integrity sha512-iB0dQkIHXyczK3BZtzw1tqegf0F0Ab5texX2TvMQjiJIWXAfM4FQl7D909YfXWnB92OQz4ivBYQ2RlxBJrMJOw==
+
+"@esbuild/freebsd-arm64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.11.tgz#d5138e873e15f87bd4564c024dfa00ef37e623fd"
+ integrity sha512-7EFzUADmI1jCHeDRGKgbnF5sDIceZsQGapoO6dmw7r/ZBEKX7CCDnIz8m9yEclzr7mFsd+DyasHzpjfJnmBB1Q==
+
+"@esbuild/freebsd-x64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.11.tgz#e850b58b8fabf8e9ef0e125af3c25229ad2d6c38"
+ integrity sha512-iPgenptC8i8pdvkHQvXJFzc1eVMR7W2lBPrTE6GbhR54sLcF42mk3zBOjKPOodezzuAz/KSu8CPyFSjcBMkE9g==
+
+"@esbuild/linux-arm64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.11.tgz#2bfb93d0809ec2357c12ebb27736b750c9ae0aa5"
+ integrity sha512-Qxth3gsWWGKz2/qG2d5DsW/57SeA2AmpSMhdg9TSB5Svn2KDob3qxfQSkdnWjSd42kqoxIPy3EJFs+6w1+6Qjg==
+
+"@esbuild/linux-arm@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.11.tgz#e56fb3b76828317a704f4a167c5bd790fe5314e7"
+ integrity sha512-M9iK/d4lgZH0U5M1R2p2gqhPV/7JPJcRz+8O8GBKVgqndTzydQ7B2XGDbxtbvFkvIs53uXTobOhv+RyaqhUiMg==
+
+"@esbuild/linux-ia32@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.11.tgz#59fa1c49b271793d14eb5effc757e8c0d0cb2cab"
+ integrity sha512-dB1nGaVWtUlb/rRDHmuDQhfqazWE0LMro/AIbT2lWM3CDMHJNpLckH+gCddQyhhcLac2OYw69ikUMO34JLt3wA==
+
+"@esbuild/linux-loong64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.11.tgz#89575bc189099c03a36daa54f3f481780c7fd502"
+ integrity sha512-aCWlq70Q7Nc9WDnormntGS1ar6ZFvUpqr8gXtO+HRejRYPweAFQN615PcgaSJkZjhHp61+MNLhzyVALSF2/Q0g==
+
+"@esbuild/linux-mips64el@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.11.tgz#0e18ca039dc7e4645efd8edc1b10952933eb6b1b"
+ integrity sha512-cGeGNdQxqY8qJwlYH1BP6rjIIiEcrM05H7k3tR7WxOLmD1ZxRMd6/QIOWMb8mD2s2YJFNRuNQ+wjMhgEL2oCEw==
+
+"@esbuild/linux-ppc64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.11.tgz#2d152cb3a253afb8c100a165ad132dc96f36cb11"
+ integrity sha512-BdlziJQPW/bNe0E8eYsHB40mYOluS+jULPCjlWiHzDgr+ZBRXPtgMV1nkLEGdpjrwgmtkZHEGEPaKdS/8faLDA==
+
+"@esbuild/linux-riscv64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.11.tgz#c6ac494a81221d53d65b33e665c7df1747952d3c"
+ integrity sha512-MDLwQbtF+83oJCI1Cixn68Et/ME6gelmhssPebC40RdJaect+IM+l7o/CuG0ZlDs6tZTEIoxUe53H3GmMn8oMA==
+
+"@esbuild/linux-s390x@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.11.tgz#4bad33894bc7415cea4be8fa90fe456226a424ad"
+ integrity sha512-4N5EMESvws0Ozr2J94VoUD8HIRi7X0uvUv4c0wpTHZyZY9qpaaN7THjosdiW56irQ4qnJ6Lsc+i+5zGWnyqWqQ==
+
+"@esbuild/linux-x64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.11.tgz#903fda743459f530a16a6c6ee8d2c0f6c1a12fc7"
+ integrity sha512-rM/v8UlluxpytFSmVdbCe1yyKQd/e+FmIJE2oPJvbBo+D0XVWi1y/NQ4iTNx+436WmDHQBjVLrbnAQLQ6U7wlw==
+
+"@esbuild/netbsd-x64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.11.tgz#b589239fe7d9b16ee03c5e191f3f5b640f1518a1"
+ integrity sha512-4WaAhuz5f91h3/g43VBGdto1Q+X7VEZfpcWGtOFXnggEuLvjV+cP6DyLRU15IjiU9fKLLk41OoJfBFN5DhPvag==
+
+"@esbuild/openbsd-x64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.11.tgz#b355019754116bef39ec688f8fd2fe6471b9779b"
+ integrity sha512-UBj135Nx4FpnvtE+C8TWGp98oUgBcmNmdYgl5ToKc0mBHxVVqVE7FUS5/ELMImOp205qDAittL6Ezhasc2Ev/w==
+
+"@esbuild/sunos-x64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.11.tgz#2ea47fb592e68406e5025a7696dc714fc6a115dc"
+ integrity sha512-1/gxTifDC9aXbV2xOfCbOceh5AlIidUrPsMpivgzo8P8zUtczlq1ncFpeN1ZyQJ9lVs2hILy1PG5KPp+w8QPPg==
+
+"@esbuild/win32-arm64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.11.tgz#47e6fdab17c4c52e6e0d606dd9cb843b29826325"
+ integrity sha512-vtSfyx5yRdpiOW9yp6Ax0zyNOv9HjOAw8WaZg3dF5djEHKKm3UnoohftVvIJtRh0Ec7Hso0RIdTqZvPXJ7FdvQ==
+
+"@esbuild/win32-ia32@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.11.tgz#a97273aa3164c8d8f501899f55cc75a4a79599a3"
+ integrity sha512-GFPSLEGQr4wHFTiIUJQrnJKZhZjjq4Sphf+mM76nQR6WkQn73vm7IsacmBRPkALfpOCHsopSvLgqdd4iUW2mYw==
+
+"@esbuild/win32-x64@0.17.11":
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.11.tgz#9be796d93ae27b636da32d960899a4912bca27a1"
+ integrity sha512-N9vXqLP3eRL8BqSy8yn4Y98cZI2pZ8fyuHx6lKjiG2WABpT2l01TXdzq5Ma2ZUBzfB7tx5dXVhge8X9u0S70ZQ==
"@hotwired/stimulus@3.2.1":
version "3.2.1"
resolved "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.2.1.tgz#e3de23623b0c52c247aba4cd5d530d257008676b"
integrity sha512-HGlzDcf9vv/EQrMJ5ZG6VWNs8Z/xMN+1o2OhV1gKiSG6CqZt5MCBB1gRg5ILiN3U0jEAxuDTNPRfBcnZBDmupQ==
-"@hotwired/turbo-rails@7.2.4":
- version "7.2.4"
- resolved "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.2.4.tgz#d155533e79c4ebdac23e8fe12697d821d5c06307"
- integrity sha512-givDUQqaccd19BvErz1Cf2j6MXF74m0G6I75oqFJGeXAa7vwkz9nDplefVNrALCR9Xi9j9gy32xmSI6wD0tZyA==
+"@hotwired/turbo-rails@7.3.0":
+ version "7.3.0"
+ resolved "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.3.0.tgz#422c21752509f3edcd6c7b2725bbe9e157815f51"
+ integrity sha512-fvhO64vp/a2UVQ3jue9WTc2JisMv9XilIC7ViZmXAREVwiQ2S4UC7Go8f9A1j4Xu7DBI6SbFdqILk5ImqVoqyA==
dependencies:
- "@hotwired/turbo" "^7.2.4"
+ "@hotwired/turbo" "^7.3.0"
"@rails/actioncable" "^7.0"
-"@hotwired/turbo@^7.2.4":
- version "7.2.4"
- resolved "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.2.4.tgz#0d35541be32cfae3b4f78c6ab9138f5b21f28a21"
- integrity sha512-c3xlOroHp/cCZHDOuLp6uzQYEbvXBUVaal0puXoGJ9M8L/KHwZ3hQozD4dVeSN9msHWLxxtmPT1TlCN7gFhj4w==
+"@hotwired/turbo@^7.3.0":
+ version "7.3.0"
+ resolved "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.3.0.tgz#2226000fff1aabda9fd9587474565c9929dbf15d"
+ integrity sha512-Dcu+NaSvHLT7EjrDrkEmH4qET2ZJZ5IcCWmNXxNQTBwlnE5tBZfN6WxZ842n5cHV52DH/AKNirbPBtcEXDLW4g==
"@kurkle/color@^0.3.0":
version "0.3.2"
@@ -166,10 +166,10 @@
resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-7.0.4.tgz#70a3ca56809f7aaabb80af2f9c01ae51e1a8ed41"
integrity sha512-tz4oM+Zn9CYsvtyicsa/AwzKZKL+ITHWkhiu7x+xF77clh2b4Rm+s6xnOgY/sGDWoFWZmtKsE95hxBPkgQQNnQ==
-"@rails/actiontext@7.0.4":
- version "7.0.4"
- resolved "https://registry.yarnpkg.com/@rails/actiontext/-/actiontext-7.0.4.tgz#742a74155b8c8ebf65e696ab6a6d2a3212511092"
- integrity sha512-vyXZ4cNkudpfSfFWuyo1SSKBQXTK2H02xjd5vLHIBqJOKaqcZ7aFWe6n8NoQrTpAt+ULYtjkH0xMhJ5holswsQ==
+"@rails/actiontext@7.0.4-3":
+ version "7.0.4-3"
+ resolved "https://registry.yarnpkg.com/@rails/actiontext/-/actiontext-7.0.4-3.tgz#00bedec1c6dbc7a86ecb4578ca158b46b14ba26a"
+ integrity sha512-Xi+9luoKlSVyj38RU+GVhyrn/yBTMrF4JZRHAgJuxQ0PusudKCxtkfoPUZjY7jyb57QFSaZ9tg/1J9OExPXZNw==
dependencies:
"@rails/activestorage" ">= 7.0.0-alpha1"
@@ -185,6 +185,16 @@
resolved "https://registry.yarnpkg.com/@tailwindcss/line-clamp/-/line-clamp-0.4.2.tgz#f353c5a8ab2c939c6267ac5b907f012e5ee130f9"
integrity sha512-HFzAQuqYCjyy/SX9sLGB1lroPzmcnWv1FHkIpmypte10hptf4oPUfucryMKovZh2u0uiS9U5Ty3GghWfEJGwVw==
+"@tailwindcss/typography@0.5.9":
+ version "0.5.9"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.9.tgz#027e4b0674929daaf7c921c900beee80dbad93e8"
+ integrity sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==
+ dependencies:
+ lodash.castarray "^4.4.0"
+ lodash.isplainobject "^4.0.6"
+ lodash.merge "^4.6.2"
+ postcss-selector-parser "6.0.10"
+
acorn-node@^1.8.2:
version "1.8.2"
resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
@@ -217,13 +227,13 @@ arg@^5.0.2:
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
-autoprefixer@10.4.13:
- version "10.4.13"
- resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8"
- integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==
+autoprefixer@10.4.14:
+ version "10.4.14"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d"
+ integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==
dependencies:
- browserslist "^4.21.4"
- caniuse-lite "^1.0.30001426"
+ browserslist "^4.21.5"
+ caniuse-lite "^1.0.30001464"
fraction.js "^4.2.0"
normalize-range "^0.1.2"
picocolors "^1.0.0"
@@ -241,30 +251,30 @@ braces@^3.0.2, braces@~3.0.2:
dependencies:
fill-range "^7.0.1"
-browserslist@^4.21.4:
- version "4.21.4"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
- integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
+browserslist@^4.21.5:
+ version "4.21.5"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7"
+ integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==
dependencies:
- caniuse-lite "^1.0.30001400"
- electron-to-chromium "^1.4.251"
- node-releases "^2.0.6"
- update-browserslist-db "^1.0.9"
+ caniuse-lite "^1.0.30001449"
+ electron-to-chromium "^1.4.284"
+ node-releases "^2.0.8"
+ update-browserslist-db "^1.0.10"
camelcase-css@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
-caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426:
- version "1.0.30001445"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001445.tgz#cf2d4eb93f2bcdf0310de9dd6d18be271bc0b447"
- integrity sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg==
+caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464:
+ version "1.0.30001467"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001467.tgz#1afc9c16ed61f50dd87139da87ca43a3e0051c77"
+ integrity sha512-cEdN/5e+RPikvl9AHm4uuLXxeCNq8rFsQ+lPHTfe/OtypP3WwnVVbjn+6uBV7PaFL6xUFzTh+sSCOz1rKhcO+Q==
-chart.js@4, chart.js@4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.2.0.tgz#dd281b2ce890bff32f3e249cf2972a1e74bc032c"
- integrity sha512-wbtcV+QKeH0F7gQZaCJEIpsNriFheacouJQTVIjITi3eQA8bTlIBoknz0+dgV79aeKLNMAX+nDslIVE/nJ3rzA==
+chart.js@4, chart.js@4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.2.1.tgz#d2bd5c98e9a0ae35408975b638f40513b067ba1d"
+ integrity sha512-6YbpQ0nt3NovAgOzbkSSeeAQu/3za1319dPUQTXn9WcOpywM8rGKxJHrhS8V8xEkAlk8YhEfjbuAPfUyp6jIsw==
dependencies:
"@kurkle/color" "^0.3.0"
@@ -273,10 +283,10 @@ chartjs-adapter-date-fns@>=3:
resolved "https://registry.yarnpkg.com/chartjs-adapter-date-fns/-/chartjs-adapter-date-fns-3.0.0.tgz#c25f63c7f317c1f96f9a7c44bd45eeedb8a478e5"
integrity sha512-Rs3iEB3Q5pJ973J93OBTpnP7qoGwvq3nUnoMdtxO+9aoJof7UFcRbWcIDteXuYd1fgAvct/32T9qaLyLuZVwCg==
-chartkick@5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/chartkick/-/chartkick-5.0.0.tgz#f9ed2174309079ddbfaf6ce51279e8c73f01732a"
- integrity sha512-DVkf7SpAY0XfYcTE0XVqYX6P6Wl4vviQodwzJzshATQ1BjV/wWOdq06rt8yBT5uzU8jgbKZEC9OTm/GUd1EN2Q==
+chartkick@5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/chartkick/-/chartkick-5.0.1.tgz#f557ff8560f974343dc65c7fc34ce1e8326d8ee7"
+ integrity sha512-4F3tWI3eBQgnjCYZIZ+fHOaJuNyxeyhDE2Tm+voOWB19hDjSJceys/spzN52DOn8bWepNESGXvPVTGU1jeFsbA==
optionalDependencies:
chart.js "4"
chartjs-adapter-date-fns ">=3"
@@ -336,45 +346,38 @@ dlv@^1.1.3:
resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
-electron-to-chromium@^1.4.251:
- version "1.4.284"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592"
- integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==
+electron-to-chromium@^1.4.284:
+ version "1.4.333"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.333.tgz#ebb21f860f8a29923717b06ec0cb54e77ed34c04"
+ integrity sha512-YyE8+GKyGtPEP1/kpvqsdhD6rA/TP1DUFDN4uiU/YI52NzDxmwHkEb3qjId8hLBa5siJvG0sfC3O66501jMruQ==
-esbuild-plugin-replace@1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/esbuild-plugin-replace/-/esbuild-plugin-replace-1.3.0.tgz#5959eb19bc5cb3ec2d0a69228b62fc3682bd2f26"
- integrity sha512-i9v5FDfKUaxzpCLn+avq3I6lxJDL5616/tzP93/GFAI7REFwkMTy/pilEIvqlH8RTVpjlwJDOqUOYvJOf5jnXg==
- dependencies:
- magic-string "^0.25.7"
-
-esbuild@0.16.17:
- version "0.16.17"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259"
- integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==
+esbuild@0.17.11:
+ version "0.17.11"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.11.tgz#9f3122643b21d7e7731e42f18576c10bfa28152b"
+ integrity sha512-pAMImyokbWDtnA/ufPxjQg0fYo2DDuzAlqwnDvbXqHLphe+m80eF++perYKVm8LeTuj2zUuFXC+xgSVxyoHUdg==
optionalDependencies:
- "@esbuild/android-arm" "0.16.17"
- "@esbuild/android-arm64" "0.16.17"
- "@esbuild/android-x64" "0.16.17"
- "@esbuild/darwin-arm64" "0.16.17"
- "@esbuild/darwin-x64" "0.16.17"
- "@esbuild/freebsd-arm64" "0.16.17"
- "@esbuild/freebsd-x64" "0.16.17"
- "@esbuild/linux-arm" "0.16.17"
- "@esbuild/linux-arm64" "0.16.17"
- "@esbuild/linux-ia32" "0.16.17"
- "@esbuild/linux-loong64" "0.16.17"
- "@esbuild/linux-mips64el" "0.16.17"
- "@esbuild/linux-ppc64" "0.16.17"
- "@esbuild/linux-riscv64" "0.16.17"
- "@esbuild/linux-s390x" "0.16.17"
- "@esbuild/linux-x64" "0.16.17"
- "@esbuild/netbsd-x64" "0.16.17"
- "@esbuild/openbsd-x64" "0.16.17"
- "@esbuild/sunos-x64" "0.16.17"
- "@esbuild/win32-arm64" "0.16.17"
- "@esbuild/win32-ia32" "0.16.17"
- "@esbuild/win32-x64" "0.16.17"
+ "@esbuild/android-arm" "0.17.11"
+ "@esbuild/android-arm64" "0.17.11"
+ "@esbuild/android-x64" "0.17.11"
+ "@esbuild/darwin-arm64" "0.17.11"
+ "@esbuild/darwin-x64" "0.17.11"
+ "@esbuild/freebsd-arm64" "0.17.11"
+ "@esbuild/freebsd-x64" "0.17.11"
+ "@esbuild/linux-arm" "0.17.11"
+ "@esbuild/linux-arm64" "0.17.11"
+ "@esbuild/linux-ia32" "0.17.11"
+ "@esbuild/linux-loong64" "0.17.11"
+ "@esbuild/linux-mips64el" "0.17.11"
+ "@esbuild/linux-ppc64" "0.17.11"
+ "@esbuild/linux-riscv64" "0.17.11"
+ "@esbuild/linux-s390x" "0.17.11"
+ "@esbuild/linux-x64" "0.17.11"
+ "@esbuild/netbsd-x64" "0.17.11"
+ "@esbuild/openbsd-x64" "0.17.11"
+ "@esbuild/sunos-x64" "0.17.11"
+ "@esbuild/win32-arm64" "0.17.11"
+ "@esbuild/win32-ia32" "0.17.11"
+ "@esbuild/win32-x64" "0.17.11"
escalade@^3.1.1:
version "3.1.1"
@@ -406,10 +409,10 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
-flowbite@1.6.2:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/flowbite/-/flowbite-1.6.2.tgz#3deb3add4db3525ce35e5c35f5ca4c6eeed7f6c4"
- integrity sha512-a/hB/fyG6m+EsMWpCaKOtFZGeQef+JLPS854DdFYitct8MNPnW5YKIOBQnIroyMtn60jOeMINg/XU1yh6m4pxw==
+flowbite@1.6.4:
+ version "1.6.4"
+ resolved "https://registry.yarnpkg.com/flowbite/-/flowbite-1.6.4.tgz#ea86f8f90e8d1279e2611c25838f6d112777e7d3"
+ integrity sha512-//kSaigwERCcE3udumadB3+xfOXeN/ZQzcub2qVCHuB7uscB4XIm3yP9R8zL0XsEOnYG2lnroq/dydQZbzvESw==
dependencies:
"@popperjs/core" "^2.9.3"
mini-svg-data-uri "^1.4.3"
@@ -482,16 +485,24 @@ is-number@^7.0.0:
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
lilconfig@^2.0.5, lilconfig@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4"
- integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
+ integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
-magic-string@^0.25.7:
- version "0.25.9"
- resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
- integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
- dependencies:
- sourcemap-codec "^1.4.8"
+lodash.castarray@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115"
+ integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==
+
+lodash.isplainobject@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
+ integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==
+
+lodash.merge@^4.6.2:
+ version "4.6.2"
+ resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+ integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
merge2@^1.3.0:
version "1.4.1"
@@ -512,19 +523,19 @@ mini-svg-data-uri@^1.4.3:
integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==
minimist@^1.2.6:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
- integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+ integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
nanoid@^3.3.4:
version "3.3.4"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
-node-releases@^2.0.6:
- version "2.0.8"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae"
- integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==
+node-releases@^2.0.8:
+ version "2.0.10"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f"
+ integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
@@ -571,9 +582,9 @@ postcss-import@^14.1.0:
resolve "^1.1.7"
postcss-js@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00"
- integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2"
+ integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==
dependencies:
camelcase-css "^2.0.1"
@@ -592,7 +603,15 @@ postcss-nested@6.0.0:
dependencies:
postcss-selector-parser "^6.0.10"
-postcss-selector-parser@^6.0.10:
+postcss-selector-parser@6.0.10:
+ version "6.0.10"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d"
+ integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==
+ dependencies:
+ cssesc "^3.0.0"
+ util-deprecate "^1.0.2"
+
+postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11:
version "6.0.11"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc"
integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==
@@ -605,7 +624,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
-postcss@8.4.21, postcss@^8.4.18:
+postcss@8.4.21, postcss@^8.0.9:
version "8.4.21"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4"
integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==
@@ -664,20 +683,15 @@ source-map-js@^1.0.2:
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
-sourcemap-codec@^1.4.8:
- version "1.4.8"
- resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
- integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
-
spark-md5@^3.0.1:
version "3.0.2"
resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc"
integrity sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==
-stimulus-autocomplete@3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/stimulus-autocomplete/-/stimulus-autocomplete-3.0.2.tgz#24db95b0990c2272e11ef30ff2cee6ed05878558"
- integrity sha512-8bluCHjz1cgPHu/V0OKhRrGG6V2ordFC+aQwYLJ0U0cRZCq8j10Z6j+DFTsDirFl7NO9iPL1j2z0/CUxeXw2gw==
+stimulus-autocomplete@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/stimulus-autocomplete/-/stimulus-autocomplete-3.1.0.tgz#7c9292706556ed0a87abf60ea2688bf0ea1176a8"
+ integrity sha512-SmVViCdA8yCl99oV2kzllNOqYjx7wruY+1OjAVsDTkZMNFZG5j+SqDKHMYbu+dRFy/SWq/PParzwZHvLAgH+YA==
supports-preserve-symlinks-flag@^1.0.0:
version "1.0.0"
@@ -689,10 +703,10 @@ taggle@1.15.0:
resolved "https://registry.yarnpkg.com/taggle/-/taggle-1.15.0.tgz#d2efb65872886ea199f39c19ddb4f30b5e205ae9"
integrity sha512-NW/9NcXj8ZYk1kBojNB9svp4XvpnsS03ryyMLJ6BiHrbDtnL5x1Kf1ASlKsJvnp1bQNuulppo2xQtieu0Qh1yg==
-tailwindcss@3.2.4:
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.4.tgz#afe3477e7a19f3ceafb48e4b083e292ce0dc0250"
- integrity sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==
+tailwindcss@3.2.7:
+ version "3.2.7"
+ resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.7.tgz#5936dd08c250b05180f0944500c01dce19188c07"
+ integrity sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==
dependencies:
arg "^5.0.2"
chokidar "^3.5.3"
@@ -708,12 +722,12 @@ tailwindcss@3.2.4:
normalize-path "^3.0.0"
object-hash "^3.0.0"
picocolors "^1.0.0"
- postcss "^8.4.18"
+ postcss "^8.0.9"
postcss-import "^14.1.0"
postcss-js "^4.0.0"
postcss-load-config "^3.1.4"
postcss-nested "6.0.0"
- postcss-selector-parser "^6.0.10"
+ postcss-selector-parser "^6.0.11"
postcss-value-parser "^4.2.0"
quick-lru "^5.1.1"
resolve "^1.22.1"
@@ -730,7 +744,7 @@ trix@2.0.4:
resolved "https://registry.yarnpkg.com/trix/-/trix-2.0.4.tgz#37ec8092e5d561462cee1d96cc402aa5c5f8c04e"
integrity sha512-WOMKqwCVti0i3RVaDrMnrEZWs6XMpFoCfUvFCZNd15KndAy6MsYQscizxEpFiCLUlo+rXMkueK0ldRDo5xpVJA==
-update-browserslist-db@^1.0.9:
+update-browserslist-db@^1.0.10:
version "1.0.10"
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==