From 8adadcd2f883250a64a77590007f1792b28864f2 Mon Sep 17 00:00:00 2001 From: Moeki Kawakami Date: Fri, 11 Oct 2024 13:46:38 +0900 Subject: [PATCH] Initial Commit --- .github/workflows/ci.yaml | 34 + .gitignore | 15 + CODE_OF_CONDUCT.md | 84 + Gemfile | 17 + Gemfile.lock | 280 ++ MIT-LICENSE | 20 + README.md | 181 + Rakefile | 13 + app/channels/clapton/clapton_channel.rb | 67 + app/helpers/clapton/clapton_helper.rb | 21 + bin/dev | 2 + bin/setup | 3 + bin/test | 6 + clapton.gemspec | 28 + config/routes.rb | 4 + docs/todo-app-demo.gif | Bin 0 -> 459955 bytes lib/clapton.rb | 10 + lib/clapton/engine.rb | 49 + lib/clapton/javascripts/package-lock.json | 3059 +++++++++++++++++ lib/clapton/javascripts/package.json | 29 + lib/clapton/javascripts/rollup.config.mjs | 36 + .../src/actions/handle-action.spec.ts | 46 + .../javascripts/src/actions/handle-action.ts | 32 + .../src/actions/initialize-actions.ts | 28 + .../src/channel/clapton-channel.js | 25 + lib/clapton/javascripts/src/client.ts | 37 + lib/clapton/javascripts/src/components.ts | 9 + .../javascripts/src/components/box.spec.ts | 23 + lib/clapton/javascripts/src/components/box.ts | 20 + .../javascripts/src/components/button.spec.ts | 18 + .../javascripts/src/components/button.ts | 25 + .../src/components/component.spec.ts | 16 + .../javascripts/src/components/component.ts | 19 + .../src/components/datetime-field.spec.ts | 16 + .../src/components/datetime-field.ts | 49 + .../javascripts/src/components/link.spec.ts | 18 + .../javascripts/src/components/link.ts | 20 + .../src/components/text-field.spec.ts | 16 + .../javascripts/src/components/text-field.ts | 23 + .../javascripts/src/components/text.spec.ts | 12 + .../javascripts/src/components/text.ts | 11 + .../src/dom/update-component.spec.ts | 32 + .../javascripts/src/dom/update-component.ts | 10 + .../src/html/html-attributes.spec.ts | 27 + .../javascripts/src/html/html-attributes.ts | 42 + .../src/html/split-action-attribute.spec.ts | 18 + .../src/html/split-action-attribute.ts | 6 + .../src/inputs/initialize-inputs.ts | 16 + lib/clapton/javascripts/src/utils/debounce.ts | 7 + lib/clapton/javascripts/tsconfig.json | 17 + lib/clapton/javascripts/vitest.config.js | 8 + lib/clapton/railtie.rb | 4 + lib/clapton/state.rb | 25 + lib/clapton/test_helper/base.rb | 22 + lib/clapton/test_helper/minitest.rb | 12 + lib/clapton/test_helper/rspec.rb | 12 + lib/clapton/version.rb | 3 + lib/tasks/clapton_tasks.rake | 4 + test/clapton/state_test.rb | 33 + test/clapton_test.rb | 7 + test/dummy/.rspec | 1 + test/dummy/Rakefile | 6 + test/dummy/app/assets/config/manifest.js | 2 + test/dummy/app/assets/images/.keep | 0 .../app/assets/stylesheets/application.css | 15 + .../app/channels/application_cable/channel.rb | 4 + .../channels/application_cable/connection.rb | 4 + test/dummy/app/components/.keep | 0 test/dummy/app/components/chat_component.rb | 9 + .../dummy/app/components/message_component.rb | 6 + .../app/components/task_item_component.rb | 16 + .../app/components/task_list_component.rb | 12 + .../app/components/user_form_component.rb | 9 + .../app/components/user_item_component.rb | 10 + .../app/components/user_list_component.rb | 8 + .../app/components/user_prompt_component.rb | 10 + .../app/controllers/application_controller.rb | 2 + test/dummy/app/controllers/chat_controller.rb | 8 + test/dummy/app/controllers/concerns/.keep | 0 .../dummy/app/controllers/tasks_controller.rb | 8 + .../dummy/app/controllers/users_controller.rb | 7 + test/dummy/app/helpers/application_helper.rb | 2 + .../dummy/app/javascript/packs/application.js | 15 + test/dummy/app/jobs/application_job.rb | 7 + test/dummy/app/mailers/application_mailer.rb | 4 + test/dummy/app/models/application_record.rb | 3 + test/dummy/app/models/concerns/.keep | 0 test/dummy/app/models/task.rb | 2 + test/dummy/app/models/user.rb | 2 + test/dummy/app/states/chat_state.rb | 28 + test/dummy/app/states/message_state.rb | 4 + test/dummy/app/states/task_item_state.rb | 6 + test/dummy/app/states/task_list_state.rb | 27 + test/dummy/app/states/user_form_state.rb | 10 + test/dummy/app/states/user_item_state.rb | 10 + test/dummy/app/states/user_list_state.rb | 4 + test/dummy/app/states/user_prompt_state.rb | 4 + test/dummy/app/views/chat/index.html.erb | 1 + .../app/views/layouts/application.html.erb | 16 + test/dummy/app/views/layouts/mailer.html.erb | 13 + test/dummy/app/views/layouts/mailer.text.erb | 1 + test/dummy/app/views/tasks/index.html.erb | 1 + test/dummy/app/views/users/index.html.erb | 1 + test/dummy/bin/rails | 4 + test/dummy/bin/rake | 4 + test/dummy/bin/setup | 33 + test/dummy/config.ru | 6 + test/dummy/config/application.rb | 22 + test/dummy/config/boot.rb | 5 + test/dummy/config/cable.yml | 10 + test/dummy/config/database.yml | 16 + test/dummy/config/environment.rb | 5 + test/dummy/config/environments/development.rb | 76 + test/dummy/config/environments/production.rb | 120 + test/dummy/config/environments/test.rb | 59 + .../application_controller_renderer.rb | 8 + test/dummy/config/initializers/assets.rb | 12 + .../initializers/backtrace_silencers.rb | 8 + .../initializers/content_security_policy.rb | 28 + .../config/initializers/cookies_serializer.rb | 5 + .../initializers/filter_parameter_logging.rb | 6 + test/dummy/config/initializers/inflections.rb | 16 + test/dummy/config/initializers/mime_types.rb | 4 + .../config/initializers/permissions_policy.rb | 11 + .../config/initializers/wrap_parameters.rb | 14 + test/dummy/config/locales/en.yml | 33 + test/dummy/config/puma.rb | 43 + test/dummy/config/routes.rb | 7 + test/dummy/config/storage.yml | 34 + .../db/migrate/20241011052828_create_users.rb | 9 + .../db/migrate/20241012031613_create_tasks.rb | 11 + test/dummy/db/schema.rb | 29 + test/dummy/lib/assets/.keep | 0 test/dummy/log/.keep | 0 test/dummy/public/404.html | 67 + test/dummy/public/422.html | 67 + test/dummy/public/500.html | 66 + .../public/apple-touch-icon-precomposed.png | 0 test/dummy/public/apple-touch-icon.png | 0 test/dummy/public/favicon.ico | 0 .../components/task_list_component_spec.rb | 8 + test/dummy/spec/features/tasks/index_spec.rb | 39 + test/dummy/spec/rails_helper.rb | 65 + test/dummy/spec/spec_helper.rb | 94 + .../components/task_list_component_test.rb | 10 + test/dummy/test/test_helper.rb | 13 + test/helpers/fuzzy_html_assertion.rb | 23 + test/test_helper.rb | 17 + 148 files changed, 6131 insertions(+) create mode 100644 .github/workflows/ci.yaml create mode 100644 .gitignore create mode 100644 CODE_OF_CONDUCT.md create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 MIT-LICENSE create mode 100644 README.md create mode 100644 Rakefile create mode 100644 app/channels/clapton/clapton_channel.rb create mode 100644 app/helpers/clapton/clapton_helper.rb create mode 100755 bin/dev create mode 100755 bin/setup create mode 100755 bin/test create mode 100644 clapton.gemspec create mode 100644 config/routes.rb create mode 100644 docs/todo-app-demo.gif create mode 100644 lib/clapton.rb create mode 100644 lib/clapton/engine.rb create mode 100644 lib/clapton/javascripts/package-lock.json create mode 100644 lib/clapton/javascripts/package.json create mode 100644 lib/clapton/javascripts/rollup.config.mjs create mode 100644 lib/clapton/javascripts/src/actions/handle-action.spec.ts create mode 100644 lib/clapton/javascripts/src/actions/handle-action.ts create mode 100644 lib/clapton/javascripts/src/actions/initialize-actions.ts create mode 100644 lib/clapton/javascripts/src/channel/clapton-channel.js create mode 100644 lib/clapton/javascripts/src/client.ts create mode 100644 lib/clapton/javascripts/src/components.ts create mode 100644 lib/clapton/javascripts/src/components/box.spec.ts create mode 100644 lib/clapton/javascripts/src/components/box.ts create mode 100644 lib/clapton/javascripts/src/components/button.spec.ts create mode 100644 lib/clapton/javascripts/src/components/button.ts create mode 100644 lib/clapton/javascripts/src/components/component.spec.ts create mode 100644 lib/clapton/javascripts/src/components/component.ts create mode 100644 lib/clapton/javascripts/src/components/datetime-field.spec.ts create mode 100644 lib/clapton/javascripts/src/components/datetime-field.ts create mode 100644 lib/clapton/javascripts/src/components/link.spec.ts create mode 100644 lib/clapton/javascripts/src/components/link.ts create mode 100644 lib/clapton/javascripts/src/components/text-field.spec.ts create mode 100644 lib/clapton/javascripts/src/components/text-field.ts create mode 100644 lib/clapton/javascripts/src/components/text.spec.ts create mode 100644 lib/clapton/javascripts/src/components/text.ts create mode 100644 lib/clapton/javascripts/src/dom/update-component.spec.ts create mode 100644 lib/clapton/javascripts/src/dom/update-component.ts create mode 100644 lib/clapton/javascripts/src/html/html-attributes.spec.ts create mode 100644 lib/clapton/javascripts/src/html/html-attributes.ts create mode 100644 lib/clapton/javascripts/src/html/split-action-attribute.spec.ts create mode 100644 lib/clapton/javascripts/src/html/split-action-attribute.ts create mode 100644 lib/clapton/javascripts/src/inputs/initialize-inputs.ts create mode 100644 lib/clapton/javascripts/src/utils/debounce.ts create mode 100644 lib/clapton/javascripts/tsconfig.json create mode 100644 lib/clapton/javascripts/vitest.config.js create mode 100644 lib/clapton/railtie.rb create mode 100644 lib/clapton/state.rb create mode 100644 lib/clapton/test_helper/base.rb create mode 100644 lib/clapton/test_helper/minitest.rb create mode 100644 lib/clapton/test_helper/rspec.rb create mode 100644 lib/clapton/version.rb create mode 100644 lib/tasks/clapton_tasks.rake create mode 100644 test/clapton/state_test.rb create mode 100644 test/clapton_test.rb create mode 100644 test/dummy/.rspec create mode 100644 test/dummy/Rakefile create mode 100644 test/dummy/app/assets/config/manifest.js create mode 100644 test/dummy/app/assets/images/.keep create mode 100644 test/dummy/app/assets/stylesheets/application.css create mode 100644 test/dummy/app/channels/application_cable/channel.rb create mode 100644 test/dummy/app/channels/application_cable/connection.rb create mode 100644 test/dummy/app/components/.keep create mode 100644 test/dummy/app/components/chat_component.rb create mode 100644 test/dummy/app/components/message_component.rb create mode 100644 test/dummy/app/components/task_item_component.rb create mode 100644 test/dummy/app/components/task_list_component.rb create mode 100644 test/dummy/app/components/user_form_component.rb create mode 100644 test/dummy/app/components/user_item_component.rb create mode 100644 test/dummy/app/components/user_list_component.rb create mode 100644 test/dummy/app/components/user_prompt_component.rb create mode 100644 test/dummy/app/controllers/application_controller.rb create mode 100644 test/dummy/app/controllers/chat_controller.rb create mode 100644 test/dummy/app/controllers/concerns/.keep create mode 100644 test/dummy/app/controllers/tasks_controller.rb create mode 100644 test/dummy/app/controllers/users_controller.rb create mode 100644 test/dummy/app/helpers/application_helper.rb create mode 100644 test/dummy/app/javascript/packs/application.js create mode 100644 test/dummy/app/jobs/application_job.rb create mode 100644 test/dummy/app/mailers/application_mailer.rb create mode 100644 test/dummy/app/models/application_record.rb create mode 100644 test/dummy/app/models/concerns/.keep create mode 100644 test/dummy/app/models/task.rb create mode 100644 test/dummy/app/models/user.rb create mode 100644 test/dummy/app/states/chat_state.rb create mode 100644 test/dummy/app/states/message_state.rb create mode 100644 test/dummy/app/states/task_item_state.rb create mode 100644 test/dummy/app/states/task_list_state.rb create mode 100644 test/dummy/app/states/user_form_state.rb create mode 100644 test/dummy/app/states/user_item_state.rb create mode 100644 test/dummy/app/states/user_list_state.rb create mode 100644 test/dummy/app/states/user_prompt_state.rb create mode 100644 test/dummy/app/views/chat/index.html.erb create mode 100644 test/dummy/app/views/layouts/application.html.erb create mode 100644 test/dummy/app/views/layouts/mailer.html.erb create mode 100644 test/dummy/app/views/layouts/mailer.text.erb create mode 100644 test/dummy/app/views/tasks/index.html.erb create mode 100644 test/dummy/app/views/users/index.html.erb create mode 100755 test/dummy/bin/rails create mode 100755 test/dummy/bin/rake create mode 100755 test/dummy/bin/setup create mode 100644 test/dummy/config.ru create mode 100644 test/dummy/config/application.rb create mode 100644 test/dummy/config/boot.rb create mode 100644 test/dummy/config/cable.yml create mode 100644 test/dummy/config/database.yml create mode 100644 test/dummy/config/environment.rb create mode 100644 test/dummy/config/environments/development.rb create mode 100644 test/dummy/config/environments/production.rb create mode 100644 test/dummy/config/environments/test.rb create mode 100644 test/dummy/config/initializers/application_controller_renderer.rb create mode 100644 test/dummy/config/initializers/assets.rb create mode 100644 test/dummy/config/initializers/backtrace_silencers.rb create mode 100644 test/dummy/config/initializers/content_security_policy.rb create mode 100644 test/dummy/config/initializers/cookies_serializer.rb create mode 100644 test/dummy/config/initializers/filter_parameter_logging.rb create mode 100644 test/dummy/config/initializers/inflections.rb create mode 100644 test/dummy/config/initializers/mime_types.rb create mode 100644 test/dummy/config/initializers/permissions_policy.rb create mode 100644 test/dummy/config/initializers/wrap_parameters.rb create mode 100644 test/dummy/config/locales/en.yml create mode 100644 test/dummy/config/puma.rb create mode 100644 test/dummy/config/routes.rb create mode 100644 test/dummy/config/storage.yml create mode 100644 test/dummy/db/migrate/20241011052828_create_users.rb create mode 100644 test/dummy/db/migrate/20241012031613_create_tasks.rb create mode 100644 test/dummy/db/schema.rb create mode 100644 test/dummy/lib/assets/.keep create mode 100644 test/dummy/log/.keep create mode 100644 test/dummy/public/404.html create mode 100644 test/dummy/public/422.html create mode 100644 test/dummy/public/500.html create mode 100644 test/dummy/public/apple-touch-icon-precomposed.png create mode 100644 test/dummy/public/apple-touch-icon.png create mode 100644 test/dummy/public/favicon.ico create mode 100644 test/dummy/spec/components/task_list_component_spec.rb create mode 100644 test/dummy/spec/features/tasks/index_spec.rb create mode 100644 test/dummy/spec/rails_helper.rb create mode 100644 test/dummy/spec/spec_helper.rb create mode 100644 test/dummy/test/components/task_list_component_test.rb create mode 100644 test/dummy/test/test_helper.rb create mode 100644 test/helpers/fuzzy_html_assertion.rb create mode 100644 test/test_helper.rb diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..631a13a --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,34 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up Ruby + uses: actions/setup-ruby@v1 + with: + ruby-version: 3.0 + + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: 18 + + - name: Install dependencies + run: | + bin/setup + + - name: Run tests + run: | + bin/test diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b8e0a7c --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +/.bundle/ +/doc/ +/log/*.log +/pkg/ +/tmp/ +/test/dummy/db/*.sqlite3 +/test/dummy/db/*.sqlite3-* +/test/dummy/log/*.log +/test/dummy/storage/ +/test/dummy/tmp/ +.byebug_history +dist/ +.env +node_modules/ +/test/dummy/public/clapton diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..db9074f --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,84 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at hi@moeki.org. All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of actions. + +**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, +available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations. diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..032665b --- /dev/null +++ b/Gemfile @@ -0,0 +1,17 @@ +source 'https://rubygems.org' +git_source(:github) { |repo| "https://github.com/#{repo}.git" } + +# Specify your gem's dependencies in clapton.gemspec. +gemspec + +group :development do + gem 'sqlite3', '~> 1.4' + gem 'puma' + gem 'ruby-openai' + gem 'rspec' + gem 'rspec-rails' + gem 'minitest' +end + +# To use a debugger +# gem 'byebug', group: [:development, :test] diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..13d26cf --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,280 @@ +PATH + remote: . + specs: + clapton (0.1.0) + capybara (~> 3) + execjs (~> 2) + listen (~> 3) + rails (~> 6.1.7, >= 6.1.7.8) + ruby2js (~> 5) + +GEM + remote: https://rubygems.org/ + specs: + actioncable (6.1.7.8) + actionpack (= 6.1.7.8) + activesupport (= 6.1.7.8) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (6.1.7.8) + actionpack (= 6.1.7.8) + activejob (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) + mail (>= 2.7.1) + actionmailer (6.1.7.8) + actionpack (= 6.1.7.8) + actionview (= 6.1.7.8) + activejob (= 6.1.7.8) + activesupport (= 6.1.7.8) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (6.1.7.8) + actionview (= 6.1.7.8) + activesupport (= 6.1.7.8) + rack (~> 2.0, >= 2.0.9) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (6.1.7.8) + actionpack (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) + nokogiri (>= 1.8.5) + actionview (6.1.7.8) + activesupport (= 6.1.7.8) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (6.1.7.8) + activesupport (= 6.1.7.8) + globalid (>= 0.3.6) + activemodel (6.1.7.8) + activesupport (= 6.1.7.8) + activerecord (6.1.7.8) + activemodel (= 6.1.7.8) + activesupport (= 6.1.7.8) + activestorage (6.1.7.8) + actionpack (= 6.1.7.8) + activejob (= 6.1.7.8) + activerecord (= 6.1.7.8) + activesupport (= 6.1.7.8) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (6.1.7.8) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + ast (2.4.2) + builder (3.3.0) + capybara (3.40.0) + addressable + matrix + mini_mime (>= 0.1.3) + nokogiri (~> 1.11) + rack (>= 1.6.0) + rack-test (>= 0.6.3) + regexp_parser (>= 1.5, < 3.0) + xpath (~> 3.2) + concurrent-ruby (1.3.4) + crass (1.0.6) + date (3.3.4) + diff-lcs (1.5.1) + erubi (1.13.0) + event_stream_parser (1.0.0) + execjs (2.9.1) + faraday (2.12.0) + faraday-net_http (>= 2.0, < 3.4) + json + logger + faraday-multipart (1.0.4) + multipart-post (~> 2) + faraday-net_http (3.3.0) + net-http + ffi (1.17.0-aarch64-linux-gnu) + ffi (1.17.0-aarch64-linux-musl) + ffi (1.17.0-arm-linux-gnu) + ffi (1.17.0-arm-linux-musl) + ffi (1.17.0-arm64-darwin) + ffi (1.17.0-x86-linux-gnu) + ffi (1.17.0-x86-linux-musl) + ffi (1.17.0-x86_64-darwin) + ffi (1.17.0-x86_64-linux-gnu) + ffi (1.17.0-x86_64-linux-musl) + globalid (1.2.1) + activesupport (>= 6.1) + i18n (1.14.6) + concurrent-ruby (~> 1.0) + json (2.7.2) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + logger (1.6.1) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + matrix (0.4.2) + method_source (1.1.0) + mini_mime (1.1.5) + minitest (5.25.1) + multipart-post (2.4.1) + net-http (0.4.1) + uri + net-imap (0.4.16) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.0) + net-protocol + nio4r (2.7.3) + nokogiri (1.16.7-aarch64-linux) + racc (~> 1.4) + nokogiri (1.16.7-arm-linux) + racc (~> 1.4) + nokogiri (1.16.7-arm64-darwin) + racc (~> 1.4) + nokogiri (1.16.7-x86-linux) + racc (~> 1.4) + nokogiri (1.16.7-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.16.7-x86_64-linux) + racc (~> 1.4) + parser (3.3.5.0) + ast (~> 2.4.1) + racc + public_suffix (6.0.1) + puma (6.4.3) + nio4r (~> 2.0) + racc (1.8.1) + rack (2.2.9) + rack-test (2.1.0) + rack (>= 1.3) + rails (6.1.7.8) + actioncable (= 6.1.7.8) + actionmailbox (= 6.1.7.8) + actionmailer (= 6.1.7.8) + actionpack (= 6.1.7.8) + actiontext (= 6.1.7.8) + actionview (= 6.1.7.8) + activejob (= 6.1.7.8) + activemodel (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) + bundler (>= 1.15.0) + railties (= 6.1.7.8) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (6.1.7.8) + actionpack (= 6.1.7.8) + activesupport (= 6.1.7.8) + method_source + rake (>= 12.2) + thor (~> 1.0) + rake (13.2.1) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) + ffi (~> 1.0) + regexp_parser (2.1.1) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-core (3.13.1) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-rails (6.1.5) + actionpack (>= 6.1) + activesupport (>= 6.1) + railties (>= 6.1) + rspec-core (~> 3.13) + rspec-expectations (~> 3.13) + rspec-mocks (~> 3.13) + rspec-support (~> 3.13) + rspec-support (3.13.1) + ruby-openai (7.3.0) + event_stream_parser (>= 0.3.0, < 2.0.0) + faraday (>= 1) + faraday-multipart (>= 1) + ruby2js (5.1.2) + parser + regexp_parser (~> 2.1.1) + sprockets (4.2.1) + concurrent-ruby (~> 1.0) + rack (>= 2.2.4, < 4) + sprockets-rails (3.5.2) + actionpack (>= 6.1) + activesupport (>= 6.1) + sprockets (>= 3.0.0) + sqlite3 (1.7.3-aarch64-linux) + sqlite3 (1.7.3-arm-linux) + sqlite3 (1.7.3-arm64-darwin) + sqlite3 (1.7.3-x86-linux) + sqlite3 (1.7.3-x86_64-darwin) + sqlite3 (1.7.3-x86_64-linux) + thor (1.3.2) + timeout (0.4.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + uri (0.13.1) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + xpath (3.2.0) + nokogiri (~> 1.8) + zeitwerk (2.6.18) + +PLATFORMS + aarch64-linux + aarch64-linux-gnu + aarch64-linux-musl + arm-linux + arm-linux-gnu + arm-linux-musl + arm64-darwin + x86-linux + x86-linux-gnu + x86-linux-musl + x86_64-darwin + x86_64-linux + x86_64-linux-gnu + x86_64-linux-musl + +DEPENDENCIES + clapton! + minitest + puma + rspec + rspec-rails + ruby-openai + sqlite3 (~> 1.4) + +BUNDLED WITH + 2.5.17 diff --git a/MIT-LICENSE b/MIT-LICENSE new file mode 100644 index 0000000..85f62e6 --- /dev/null +++ b/MIT-LICENSE @@ -0,0 +1,20 @@ +Copyright 2024 Moeki Kawakami + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..794fbf8 --- /dev/null +++ b/README.md @@ -0,0 +1,181 @@ +# Clapton +Clapton is a Ruby on Rails gem for building web apps with pure Ruby only (no JavaScript and no HTML templates). + +# Installation + +Add this line to your application's Gemfile: + +```ruby +gem 'clapton' +``` + +And then execute: + + $ bundle install + +## Usage + +To use a Clapton component in your view: + +```ruby +# app/components/task_list_component.rb +class TaskListComponent < Clapton::Component + def render + @state.tasks.each do |task| + @root.add(TaskItemComponent.new(id: task[:id], title: task[:title], due: task[:due], done: task[:done])) + end + add_button = Clapton::Button.new + add_button.add(Clapton::Text.new("Add Task")) + add_button.add_action(:click, :TaskListState, :add_task) + @root.add(add_button) + @root.render + end +end + +``` + +```ruby +# app/components/task_item_component.rb +class TaskItemComponent < Clapton::Component + def render + button = Clapton::Button.new + button.add(Clapton::Text.new(@state.done ? "✅" : "🟩")) + button.add_action(:click, :TaskListState, :toggle_done) + + text_field = Clapton::TextField.new(@state, :title) + text_field.add_action(:input, :TaskListState, :update_title) + + datetime_field = Clapton::DateTimeField.new(@state, :due) + datetime_field.add_action(:input, :TaskListState, :update_due) + + @root.add(button).add(text_field).add(datetime_field) + @root.render + end +end + +``` + +```ruby +# app/states/task_list_state.rb +class TaskListState < Clapton::State + attribute :tasks + + def add_task(params) + task = Task.create(title: "New Task", due: Date.today, done: false) + self.tasks << { id: task.id, title: task.title, due: task.due, done: task.done } + end + + def toggle_done(params) + task = Task.find(params[:id]) + task.update(done: !params[:done]) + self.tasks.find { |t| t[:id] == params[:id] }[:done] = task.done + end + + def update_title(params) + task = Task.find(params[:id]) + task.update(title: params[:title]) + self.tasks.find { |t| t[:id] == params[:id] }[:title] = task.title + end + + def update_due(params) + task = Task.find(params[:id]) + task.update(due: params[:due]) + self.tasks.find { |t| t[:id] == params[:id] }[:due] = task.due + end +end +``` + +```ruby +# app/states/task_item_state.rb +class TaskItemState < Clapton::State + attribute :id + attribute :title + attribute :due + attribute :done +end +``` + +```ruby +# app/controllers/tasks_controller.rb +class TasksController < ApplicationController + def index + @tasks = Task.all + @components = [ + [:TaskListComponent, { tasks: @tasks.map { |task| { id: task.id, title: task.title, due: task.due, done: task.done } } }] + ] + end +end +``` + +```html +# app/views/layouts/application.html.erb +<%= clapton_javascript_tag %> +``` + +```html +# app/views/tasks/index.html.erb +<%= clapton_tag %> +``` + +Make sure to include the necessary route in your `config/routes.rb`: + +```ruby +mount Clapton::Engine => "/clapton" +``` + +![TODO APP DEMO](./docs/todo-app-demo.gif) + +### Testing + +#### RSpec +```ruby +# spec/spec_helper.rb + +RSpec.configure do |config| + config.include Clapton::TestHelper::RSpec, type: :component +end +``` + +```ruby +# spec/components/task_list_component_spec.rb + +describe "TaskListComponent", type: :component do + it "renders" do + render_component("TaskListComponent", tasks: [{ id: 1, title: "Task 1", done: false, due: Time.current }]) + # You can use Capybara matchers here + expect(page).to have_selector("input[type='text']") + end +end +``` + +#### Minitest + +```ruby +# test/test_helper.rb +class ActiveSupport::TestCase + include Clapton::TestHelper::Minitest +end +``` + +```ruby +# test/components/task_list_component_test.rb +class TaskListComponentTest < ActiveSupport::TestCase + test "renders" do + render_component("TaskListComponent", tasks: [{ id: 1, title: "Task 1", done: false, due: Time.current }]) + # You can use Capybara matchers here + assert_select "input[type='text']" + end +end +``` + +## Development + +After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/dev` to start the development server. + +## Contributing + +Bug reports and pull requests are welcome on GitHub at https://github.com/kawakamimoeki/clapton. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/kawakamimoeki/clapton/blob/main/CODE_OF_CONDUCT.md). + +## License + +The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT). diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..15bdf10 --- /dev/null +++ b/Rakefile @@ -0,0 +1,13 @@ +require "bundler/setup" + +require "bundler/gem_tasks" + +require "rake/testtask" + +Rake::TestTask.new(:test) do |t| + t.libs << 'test' + t.pattern = 'test/**/*_test.rb' + t.verbose = false +end + +task default: :test diff --git a/app/channels/clapton/clapton_channel.rb b/app/channels/clapton/clapton_channel.rb new file mode 100644 index 0000000..e756d1f --- /dev/null +++ b/app/channels/clapton/clapton_channel.rb @@ -0,0 +1,67 @@ +module Clapton + class ClaptonChannel < ApplicationCable::Channel + def subscribed + stream_from "clapton_channel" + end + + def action(data) + state = data["data"]["state"]["name"].constantize.new(JSON.parse(data["data"]["state"]["attributes"].to_json, symbolize_names: true)) + + if state.respond_to?(data["data"]["state"]["action"]) + state.public_send(data["data"]["state"]["action"], JSON.parse(data["data"]["params"].to_json, symbolize_names: true)) do |options = {}| + ActionCable.server.broadcast("clapton_channel", { + status: "success", + continue: options[:continue], + stream: true, + data: { + component: { + name: data["data"]["component"]["name"], + id: data["data"]["component"]["id"], + }, + state: state.to_h, + } + }) + end + if state.errors.any? + ActionCable.server.broadcast("clapton_channel", { + status: "error", + errors: state.errors, + data: { + component: { + name: data["data"]["component"]["name"], + id: data["data"]["component"]["id"], + }, + state: state.to_h, + } + }) + return + end + + ActionCable.server.broadcast("clapton_channel", { + status: "success", + stream: false, + continue: false, + data: { + component: { + name: data["data"]["component"]["name"], + id: data["data"]["component"]["id"], + }, + state: state.to_h, + } + }) + else + ActionCable.server.broadcast("clapton_channel", { + status: "error", + message: "Invalid action", + data: { + component: { + name: data["data"]["component"]["name"], + id: data["data"]["component"]["id"], + }, + state: state.to_h, + } + }) + end + end + end +end diff --git a/app/helpers/clapton/clapton_helper.rb b/app/helpers/clapton/clapton_helper.rb new file mode 100644 index 0000000..d1b9fd7 --- /dev/null +++ b/app/helpers/clapton/clapton_helper.rb @@ -0,0 +1,21 @@ +module Clapton + module ClaptonHelper + + def clapton_javascript_tag + tag.script(src: "/clapton/index.js", type: "text/javascript") + end + + def clapton_tag + datas = [] + @components.each do |component| + state_class = component[0].to_s.gsub("Component", "State") + if Object.const_defined?(state_class) + datas << { component: component[0].to_s, state: Object.const_get(state_class).new(component[1]).to_h } + else + datas << { component: component[0].to_s, state: {} } + end + end + tag.div(id: "clapton", data: { clapton: datas }) + end + end +end diff --git a/bin/dev b/bin/dev new file mode 100755 index 0000000..ee70371 --- /dev/null +++ b/bin/dev @@ -0,0 +1,2 @@ +cd lib/clapton/javascripts/ +npm run dev diff --git a/bin/setup b/bin/setup new file mode 100755 index 0000000..9ae5c14 --- /dev/null +++ b/bin/setup @@ -0,0 +1,3 @@ +bundle install +cd lib/clapton/javascripts +npm i diff --git a/bin/test b/bin/test new file mode 100755 index 0000000..0fcfc86 --- /dev/null +++ b/bin/test @@ -0,0 +1,6 @@ +bundle exec rake +cd test/dummy +bundle exec rake test +bundle exec rspec +cd ../../lib/clapton/javascripts +npm run test diff --git a/clapton.gemspec b/clapton.gemspec new file mode 100644 index 0000000..257ae17 --- /dev/null +++ b/clapton.gemspec @@ -0,0 +1,28 @@ +require_relative "lib/clapton/version" + +Gem::Specification.new do |spec| + spec.name = "clapton" + spec.version = Clapton::VERSION + spec.authors = ["Moeki Kawakami"] + spec.email = ["moeki.kawakami@icloud.com"] + spec.homepage = "https://github.com/kawakamimoeki/clapton" + spec.summary = "Clapton is a Ruby on Rails gem for building web apps with pure Ruby only (no JavaScript and no HTML templates)." + spec.description = "Clapton is a Ruby on Rails gem for building web apps with pure Ruby only (no JavaScript and no HTML templates)." + spec.license = "MIT" + + # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host' + # to allow pushing to a single host or delete this section to allow pushing to any host. + spec.metadata["allowed_push_host"] = "https://rubygems.org" + + spec.metadata["homepage_uri"] = spec.homepage + spec.metadata["source_code_uri"] = "https://github.com/kawakamimoeki/clapton" + spec.metadata["changelog_uri"] = "https://github.com/kawakamimoeki/clapton/blob/main/CHANGELOG.md" + + spec.files = Dir["{app,config,db,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.md"] + + spec.add_dependency "rails", "~> 6.1.7", ">= 6.1.7.8" + spec.add_dependency "ruby2js", "~> 5" + spec.add_dependency "listen", "~> 3" + spec.add_dependency "capybara", "~> 3" + spec.add_dependency "execjs", "~>2" +end diff --git a/config/routes.rb b/config/routes.rb new file mode 100644 index 0000000..07c5df1 --- /dev/null +++ b/config/routes.rb @@ -0,0 +1,4 @@ +Clapton::Engine.routes.draw do + post '/api/action', to: 'api#index' + mount ActionCable.server => '/cable' +end diff --git a/docs/todo-app-demo.gif b/docs/todo-app-demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..7f5ea1505c4bbfdc8fa96a3b5190bd12dc1ced8b GIT binary patch literal 459955 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 z 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

uY~wO(PZZGI<)1OKD zZdu&o)@j<*Wi}|Mz4UBMwgyz~$?I-aq()Vz))l$aPK<6Sr)V)}?(v9{d#d`;m3Gon>2RoWAQHqMAeamJH$wE7YM(`m~B9 zO>9sJ2ZTO=m1_b2&S9*FFv=^~^>(-H8$jL>LB-qMT~NP7mcuOtOawOj{f2=q#!f}s zKvs~oK%y*B#E)P(Pk>xtmZAXPK6LIkVPFc~!~q(IoIRy-?1GRJU`$&O?m$`f77GlE zl7k{Xt;yCKT)<{T0hbceu{VIQIgNlOK|cwtg2lA^^n?k;YFR z%Z8*}!KTt@@NwiKyHqSFXrw=|N-(#C9YKu!0O@mBJewg7`py$HoX+x7l2K0aF2I7J z<<`F&Z5(PRi!i~@BaTI3ZAjADbn?Y-1t9p8#1)LPlmc-CrHqVFe^>ER9(Y`eIMN0} zh3KuKi|}sK$wKgF&UD0LOXL1aBoU~tIfU`6IWql0L^RF(A#5_7(zCVP1PGcHc6S_^B8#Z)SBEpbyI4LQJb06`^0KWt88w72&3dVS0j#;5~e zm+$KXB%#S4H1uh73lSB<@I(UgIJbhndFYnqruW-T-w&I9&6{r*HUqCWF|1qI>rFR` z3`_inExi|1uQdU?3pbS@hMtM9drQz^e%RjVS7Lo~Toy(4XuFE$#K(%QytfTrMIf_o z5T7q1sKX-hH$4VT0g{9MwER>Q*|>m$8c0|u zk+6kUs&^W{@g9MyVWcg^^{)K9sZC| zqrye5&L5y@1%t+@_D0FyVr2i0H-q6!OnRWJs@yB`JQGxv$!JwMfefqB;$|trt&H>? zY6M(O$r%I-uL57{jsIFWvZaHrWKm_EkI65S%wEarh0^4U0+ex;f9?Y_RZw1h8|d9q z<;gYd^UhZi0V?XM#r?oRkUjym+_8!~;if-ea0Pn@Fi}HXMcv4(+z=WEM}{BeuH=A| z$Vc%X3(7*y|_`bUV zTb4=IV2}9;6M-E9-OK4-WXvWbjPAazw&*!k-j7_0dYvSkP)j{Giag7)@2)j4bhZ{Lb>C;ue?C!hYI z*M#~MaLo(H_W9ETiECu0K?sWR4J>^ZMf>6^cH94@{?3Ya%z84NbG(j=W1I#Ufc zbw0@Z)7Cu(!rKJRNE5`w^`hJE*g7SgZw@`VtNG|2Jy+qce%%VGuT4AKwI2su7OuxA z(;x4des=!Z9J2FxPQjfx7LeQ?r|b#Rw;tvMk7S8Qx~~qWC+u5%3%c0ttNQ|5yfLjD zba?D$4xbNa$_J3LFuoWKm`$Sp_ZLLbCZt9g<1Q=8zZmcsPf?-wE8_dU-p6Z(T<>5c z$C$#Cm*-@si#!|Y5ei|f=I379lQ5{TH+SUwAH>s94Bi`Be=u6lG23~X$tS^UWi4TB z7T12~r!%t)<5!lc7_-k%r}q1VWL#A!Vi;Fd8aM8&rzz;#lY$C+#>rWUe|%%11q+P< zZP-6YqRMbJF8yW?=&_^VZD9NW3GqZY6};X^J<6ni&?%k+p4{~Aj1LdYfUjn zy0Suf4OJwjy7O3~7kz`0S8EDZcHS8Xs=Gc)osW0(u>~?wm#cT3$jb) z2YZp`5V3nJkKfUi|GOqGF;3Ht&X&ApIAG(0StsI=#(Mu=2w@Tb)FMJQ^rMjKd6pwt z8rSxPy1EJ^l7=Z82(@$wP!ouR{G=y_V1CazNbA56^l` zN}*&CeRsoH!o$&_#?pt%*Qmf}%SS8Um(|88E9_pV%=6SmYr;WB+I|A_5F*>0jgTlY z6K>z99~$g(V=MX|VA`2+XnKnARK7S5oVo!yt(l+sKBYfj_l=9K7Ft>xLL&+5(bOK4tM=`+U|2b~-5y=Y}$pl>341 ze0#mv2j$IZOrqa<#aEC*bo7o@qPO@J6~)!-UxgnVK91q_dDL(2EH2N;@N<|-u?Ar< zMTtq_egD&EE*l?R`~OjAPhH!)_u0W3{r#{0w%mPFN7k5(wo9bJ6a`tTACD*$1hSJ! z?z1&q^z5JAMN>HN)3*suDwuM7`q#IQf4j!6z9S&5h{vJC1uCa-BOO4Pl$sNH>j(&KQmzv`uL#L0BDdLPk8^k?;^Al$-s(**rssssK{t$ z)>SgUY+J_4{)OF17=Kr3*k^_TS_8h@+b*+%37^z6GKd7zRe_$1el=#|8mmMKGIns; zb80=mbK;@k_b8HPywO5xA}tcnrN~RJsCt`OG=d~takqmmK)Z&bOv_1#3K zozvo7zAtglq;yRWI$v-;qEmi@$V>ly!VZBG75dQ{2Hcd~&{3ifFijOm%QG%Tkb_R-XXQUWkTq_y zvdfXRUD$-wL}9Wdv#}vU_(9dFoPDQd1@@~jOESz<@2kfavvRv))IYjj`A*fTr#q>^ zJPa{$S;#0^XQ$YFEGza_5ZHa3?3Un@1&1;>4`L2S3X)KvsLx0yF0j*^uk(6VpA~TC zte*K7cBwAj<=FXMr#8MsxkSZYM?fun`kTCO{H>bS_r3OmNWLas>%Cq+1ePR(zVAr_rNk=B5q@42f zIlC>KwA#D3WzX%Mx-t7gNooJgx3Z{_;g6tjQ?!E%U~Oo;AsBEbPt}fLR6bza5Wxk1 z(xl|bS!b2M@+m8I$9^*3SLxd0gIMW(5oXM*fK90V$o*g+O8qeW@zY-4aIrtO@2~1B z#MMJ@TmHt#VfMc1>?q8;0B^#ieh{M-pPm+N49;hMe`5r`Rfen-tG@(msAHBS?53Vv za`uJ(6<^6siW39T1(Nzm3k$^hIIvk|m=LV=?ze-cYMbrx$RJLM^n3XU&9miJMvBHG z4O~U|Vfggf`j#`yWs1@JZM$kODO>i;vW@8psmYK&?42iH%7_TlrTlH>#Y^P}O6-J& z%wFMZX1iIaKlmk*j}41EbKmxhPPL*H>6M8zAZzc->Mzf4$(NeUnULIe7giZ-x!=Lb z_XOyqm;dBF;J zpK2mO>7=_tv1CGEVJ1n5T`_0Voa!1P9xfawe+L#PBWGC0ttfAu!^JUHAa3@RflHbD zB*!hV5in!?b#|WNU!J$?gE*z7zoW$5fQE3F?25WaTAe8rPyM(`@ zuvO8Mqs+2$cNn8oXur}>QG8t}N0md5X zNy4Q1*_T1x%7*-9HDBC*_x<3&Fl?pon>K}M^$Uyls3-7kIRYm|Jw+K6#dR{yW<8`P zm~2ala!BQSi4v?HOFY-WVNU)dFNwEAWuN?Rlm1iW!ZiiBJ-`wa*C#!o^o%pf!-V$_ zG(&Ea3zb~Q(S?~}xQuUq;L@65e1NUTU?9xloh;^lgKZ_D`E``O53>gAL{;B3oe6^d zlES^c#7CKhI?O)w`3w;TM46~ZHb1ohg2b8)Im zW))eS{h_kBMP;3tI|(6K{Of+h$^BtTec|O<82&>_cV86$pvp{{PK9rYV!Ld%!Mk{- zkqJb0hm0CoLq_*n>uH@J|B0Y8mMJ7lM=ejcfTJ?5oqwZE;I;wo->z=2M+0TvF!2>X z5*N--&%mdri`mj3E$3qq?H#cNhmAAG$>CJ%Mqm5N25-@kaSvmw^7-^J6X3Bn2l9!D zWP(ZE(3D(S|3VLNSeobXst}lp`R4RuES>@>RmRPlugc*zjQm-`2W|=B%PTV+Pv*dk zU54=tkv~>%;Cos4N#kKs`-5QVF@G9e;qoHN49q_?GmkS7{+Sv2&QAfS((#M$dK*pJ zcdv@sPa|!1b0)n@PJJcsofbPK(aLkjX)F4VB!y3^1~VJgjaiDxKRt3J z!YJ#5ry98jt?LxJ2F-5qaK$Ci`o+l>Q@6BEV(1O5oeS*p__BALd!cJ2PAf-*5JK6)9S#`Sbi4XNo@MIA4W1xQ(L5vc_zU zo0u6&j!ab*i-LQ{MBy_!x&5EGd8^kaskXVoOrr(e_>!Gxg1t@O=0A~GVQ%n=@6?DM z7x>=xjEez)>g{!XKbuj`OP*!|XFM~L^_@4wU{Fe|CnmFl&+?dAz#3gKJa(ALB5DN0 z^ktXf*i~+!36l;*uj0d>BVw^!^qA&0vmaeKcm|Ygus7|qt_Pj*Ov5+#8C!%kEMPk% z&aM2>qGXOqb^f*ivRwWnbJ7ATt>3ee2(qk$-6CXJ>fhte4raj-U53#Y5k{9AaL9m} ziy9~-EjSwoLdTz!MD-3>Eu2f{)Q-vMkqGrs=9t(bgMXOeRflhzZ2OQ+=-$v?i~wFt97H{^v~S5J5Pfce$0Q3 zLv{IBUlzkRwT(H+$o4M61ca zgNXuZ*8+Lc{an^CSr0LK%zVlzc*x_ep70lGz4eZ6Pu)IjM5r)(joHA@}^4z`#c}(4Kwg|-ePJDgG>dXTIhqR(pqlIF|6Cu%vTx7&}^*_ zDj8A^weI2jR%=~avJ9NK9GC4H6GG3`oJ_yxe2L1QgTG4mQ?@A<3_*oKy`>mYOl5_G zJ?)EX+V|8kLGQVUT4$Pg%m?W*Y_K@{`h9u|9k3|{Kgmzz@gs2RA4k7m#u#rD&pNjT z!(b;*=0Ka&BtdO^L-IhjU7tw0iF+KuFD}-73&WM&8Zn};-21--_OFiDs}P+X>?O)EZ`1Jjy zz0FYQ?q+iMz8A$$FvFGAAv%_ta=piPn^yXf^LxOJ=QeFWd7=Q_(4-hF2XnX^J+i<> zighE@YTJ-Sft^2 z|HdrFQ$G!g8)<9oKAykj{qpqr`$|OJKX2OJm9KSwScj%hk6(hOeGsY4&bXkve=SMF zYrfM*@Wmx?>bc~6ILo~o7e$%)E3{_rId0*zTNxcZKj5S=d$sm$Yt`&&u&8e}EFQ{Z z7t-U!-P(l(?t8wzI5*A}>W=w2ang7j=ene^7qi~P8~2(OS7`M#q2+T!kX+TS1oOOO zaGZC?2%KT-m1_$Nzqm)DW*67han%<;Si|Y`8@aaB+A7n*6o+sW&)(QyfSnyT{(6gb z@+2Ux(}M?x?+^2bi`6qqkJVmhG11;uE{$Zs&!b9>Do7NJu-Q7|?2Y44OAxX@=IT!p zFsgC-b<91Oa_2>R*<&D7DU2uu_S3r%-AZrQrmArV|Jg0GdV zJC~yH^kSl5Y{6f#wcZ3?g9;~;EU92KDh?BMTO>3n9UuPH>0Dy_dx=ru@MR^V5iLnD zNX9zvq@|6F9T643y!a(R(}eoA%cb=38uve*HTmS6F3uPHG3(ztmhF~Z-+3PFU)?)v z8iZk3q(5iv2Yh4@$?rLMdUkfaIZ^34z8ukl_uZAl-wuasU*>iyr~-ugP~vBs^k#o# z&X8Dm_ZJMLmc>0A_5GJBNcU3Xj2*`w(aT7VH{=5Xl$rlfQwQgVaiDKA-}P#=KWITipM3B?|Htc{YOgX1QH1_x(7R^G zTA(|~4SBNSHD&G11$zI)X4~bfB|#Op@9G8PQJVb4`Du&>NjW~)Codwb&tVWj+t&i+ zpJulc%EU*PmS3nPsr*2PcOAZe@`dq@P>pUu1fXwCeo7q#^XW@2A>&RJ`aJW&mnc5# zh!kObrwKKBm&N{#NMl|JGEPT+R8=oy^BVF23()nh#yi6@Vehwl#I{Ub(IX=IKi{rjohY`qrk09NXn))=ea`#iq6Q^!{Q`hX zSdbl~&O}a&Cafamr_;cvySbAz{!cvAb7QWg=8c~HsYYK~sk6jAQp)R~vS6+Anh&CU zI{j7f`XocK_PX}xQuMw11~O8oTBos~a3?WE3x#HxP2Ps*IdcBUn@JFt$+u}qa z9mC>$e_^>S!@NWZGhZXD0XyXmF{DhFhH^Eak8(rasv8s15sM74J7i;M>L;Z_vPqy0N{cf}pT+37>)=DK!Kq&YZJGp<661(qVn5rBY2&-3Q z7SRurp|L{ife{ETa#ANkMs)Xz0LICgon91qbH^Bp+`u5sE+P%<78fx zj>0s#v%4CSG9U5v1Z2d=zHG7)JycJ4z7!wlZ5WEAo`Kw#vf=MVg(69EqT(cM;uFnm z6_GO#+soiYd{G`+?pK1!pUQ+QYA_%ED9T{Jl6&=^njE+Wj%W8D;N27>qK0^~<9=ru z(Cv(!Gv;PmN|Q2LctY+FY^qovi}6F9Hc%-V@2=6o?}&Y#Yt=2&J3l97tT@_GxKB6i z?qHC@x?FH~f?p@0Xd-CK?*+Q(-_T1AP{xnn&{+DMXouYi$$xU{3jg@y0vNfnRt6#R z>6lT>p+S}|pOz^;hC`{hkMw-4>)d3 z1U-JYEu}QB@A=BJREUsYxhFT;h+{1mOvrCKB>Nc8jpt&XJmWL#5tz4(RQsa%XM^%*Z zK@bW_RI5;@CWSz+WCbBKsOS~4^c$(85oOGHpv|W|`#qGU<6OY*XGbtx&6SD+>Ivy& z?vSr=PmG)&$0{@LN{iShJunLb=o)xaMPAMX{S2}*LjJrW>-8p_Cwg!eG+YU zS~JbO_w2S1%sR%qX}SrIs+6@(UA&;+YT5qb8eqc@oVO?Bfpq$UU>r-2w?l5T{Lp-B zt4GX?4Yf>G!a>1yfDFV+|n8-J?liW;=;&}SFmx?-D0Zl zXdS;>EN|9;$M(wTK*(Au!~`klf{hFETj5~xL26$2#D!eOa|kNJ)uq6R+Ggtlt0`>{ z#X2BDfkYKtQ9eX-8iU;{)UqZiNH)PX1)yo7-vYr}7+#Dfo<05m>$ z)aOqv3P}*8z}7fMBIcD1XZfY1ls1+an%k$%1fr@e>~uJsv0-k#l3~o=D*GS&8|Vb za_n?$-d(q#uHj^t3$R%64&kRBag=#WmpncL1|lBOZ!XtIKmQwa)bUKX$Gpk%!l&gm z>+c}tCZznx%`;q#S1h0WDx~2hcvzk*$gqfXkSP_Fl!fJ~PqS|N^~?vP9_Lk<_e&^M zYIbkMbG?jZ#^wF%wDIPhFHE+x!uA&qf!_d^0Yi3Y=!2=;m-Q9IRHQRO;%F&1$5)(l zv;Eg$KYzIt^p41LCB3Iu#iu9u3`DLS$8O4{$&Ks|zfnH2xm}EUepQ|75g%AU-D_!W z3QVvngNXEBYfL)(I-Fda)f<5!Wy7@ZNVCCfOkipUP8un)pg&Hjx5yiBv=saT@{5l8 zXOe^~jP09?Zwr2Z+it%-fMG9Z5AIj@+`j&u-tu$TLgDWi8~)&#UW0CYq9TnsX%ew&gxIE3H&E!ov!&@D%=#ttfh# z7O@PypH0ideybvzF@l|0$AYero&I??+RTdn13OTVefn#ePGA|nUXmsE!y?BJhV* za3x%zfOSzAJGmFwdf2ULrH$^5#Bq!e_A^%~?x<<`2LsoA2gjucBl_ah~JKR*MAIJR#Rp~SmG#IR`7>oAqQ;Z@N z?ZQVpF7rUI1Cp!H$QjSc&@&|Ja{%;@4R?rUFhnu`BG=|6^8fq z;}>321>OmTKC*=`OL%=1U-)t;@6&*ufHhRt2moU!JWkirYxS;3o3ChFZT->%IN=_7 z_*PZqmJ=z&31me7^c5c|_C6ohp&Kip9`dI<#6=}ELN!#CFGPSe6k~_>E(%HD3yata ze^nHbRur0J7ggeI9n+&99( zN~v=(+K(c|FGBSPX9mYs=G!M9j#oa&c7D)-m5uUG1N~VG%1USUnZJwm2}-g#y7j>& z84jSl+2Xg%c6kC0A4yAcDQ=(+fx>bA9N&@*#*p-i;@l~Ir9u94J%Ma&36Zc}eu6_z z%=X7uC51P353NA%xI-~fNtQ@S#dS$u#kO{9i4en%!ovqL6rHJi%0wz$b);0LhpTFO zKhz1xBy$9uDw@==%P z1q9Jhi5*{DRBA$qNu7F7D-ygB;1n8nR#5qSit_SR<>_|CzgLx$+OAuT2kScY7YPR!4hKJnpDHq|(=x=M4qx2A z?l`jNQFd7k+_zCQ?AxOe36(5WGd@JGp&$q>DHDi{sgsPY6C7Iwwy7egQzo|&Rm!VU ztQXa2bpw}*Qo=eRZ``O>Z??TUDOyA+Hbr5?MjwSp1{_qu#Y=%i zH=2)b>aA{YwxhRN?f?*?z}ku6Bb<}2T1i&1jC+h`W>cy&?b}y-cV@$sKE*Vx%|tiI z++xYxf{gI)W%^3Va!}1i9mPg=hne!2^{*JaK@|(zF>=wJm9vI@pql;O9j3)2R^l3t z6L$_a4=(Cs9!d{hvSXgR9xMtT90S!{;>TP@;oOlP+yNe(PmZ|*YS;!m*k9b?9a-Qj z^k9P#-u}1xwJeOWw1g` zJrE_P^O|Iq(0Cwm@1umgu9tG9m*(rb2aXa_e`=4e#L+;M+}v-qSTFU}6O9+qieKtv z3hVX^y%Y!PPpC+`3-qqvJ^mXL(eX=YX#Q7%^fOO@JIHOkEmvr9lr1=?}p zQA}c5pQ1AT+iLpdRHa@L-FfqfPwNvUdF2sr{?*kyvBzvv(mY+#r|FYr>8a%it6A)d zNvvc;_9x?$)2ARqu`cmkh6 ziCJGw{=j=toBj-qTFcNhY3lK8PWKnOAK?BQ%-ec=%DKvk0_OeSS3?W*ay2t$sfpnw zGC|fq|AVhYnYP?ii$CAUtHkSkhUsy_rUfpP-Q3cD%gsaW_CNcTe5qV)!Os%h$g36$ zDK4}n`iXAtHr>&;6s4paET3WClRc;PW;osm_^9OiO3SBiZLEmx!Bdt7$!AlUCM}PD z9*SGFk-GN`QWm;t@IYeYUMBwdaDxY(#0 zO|&GDiuhu?6jjK6u07{ z@q->Z+KypD*gyFX zl)qHvjOGwk=R{^DXgb{Vs5J8^3jh)&n!?O$@hFith>c!xQA9~(F&~?{Zg}K4aBIR06nq;$uLR5!saV$iOj*otSD=d`2{+=_9SuQAQ|3vJ-gZ_5ex`oW zc?_puUz=B=e50(Z{5$UCox;KrB2s?e_;_TGD3fwbj_D{D;IFt_x%BZc!nWz;yO9DS z^Z8#Oo`jsl<)&Jk`>qN;Yp~{jwpDohvCODY_D!{zIQdXP-7m@Y@@x}EEujbb-lDQO z@sWTm1@WiLl0>bZjgYRlHG8c*h?RlLCKVqAg-~z}2!K3T z!nu}0@!nx7ZqMRMCoPdy3^}x7uRlEqY-e9UYLI>h$PfCgBkjC?a@~O7dCu5q5<)A+ zO?4WV(W4k|tzNkebki~wmX&2N7wOrn6jaYai(}5?_*EZiE_58P7>Uv3V2@K*wnl&m z>A3FlS924*U>Bn9lPyw-d*F7QMEwS%rPUU#MX&s>DC$`o{l-ne7=ws9Bw($Nr!qMo zw|RD`&PP#0Am@c5P6E`W*4o1H+{!+7#ht$)IkN9T$M4zmo(W455XhwD(EJPpuk^0m zD4P1nEzxccqq0=mA#XD_nclkW^lFJvih%=yA9<)oNt0p zvs(m84iDn)NWZRR)6Yij%g%4V>SA2B44Z*?gz%XD{Tf)q;N5d^yGfFd-H)@<_m_dl zT6dP`PV_;Dx-`+h*)NLL55u(%1{TXx%9-c(Dgy_I+1)Q~$b_3#0_k?^0_==hLZ4M( z?GZ7%6}BzZ!=gIJ=?IA9S;uV#c5<}VN^??V2dkCyfAE$6l~=C{0nXvGZt3A_-=rfL zB|g}Ll0PRVEF-}+Dy3KbL!Y~F${J5)XD<;UCb2Lh0sin`zW{$&P(akWNN{J*Q)sOk z>%6>J`oBRto!Ydq<59^<6MPqO(7uw~&U3EXiec~PV0q3vBri7pjRa1K#S&|8DN-}` zYx1$FtU1{+yjS`f-t3t>QU*fmnht3iYbYGM+mkB!BHd_lo+AXLQG-g^nNLL#$#D-c zyPv)nvmOTriw=i?#HX~AB`S6X&BDI>PMg0aqJB%|ByiE-K$5EF6e+*Ts}(&ndV{YN zUJX2X(5d(RmAms_Az=Oa#m$ELm->#v{yNPyLjSDpdfwfi;h-GNoexJGX*8~g_af}S zD*j^2<>M$@jTWUho+{E1x-ko47D(t^fbGqAGGI-Y{Jpbu)M0GtCq_=V_v<{4{S_Zi zzoxg>^}T9PgXqMjP5^&+reK_1m`Hh-lH0Rk@P*Dv+JxE?rA)}sk>+mfDDmVywS1`W zHIQ+Ss~x?0z?YQypK7tq;J?2UEdyJ{Pp-DfI2%>%f}G1L-_v0gKTP-B<4|Jv-)%DQ zjvuXf>Rp=|Gi2E}yZE-JzLZPD>o4~gYQ-19NV$VTiMvZA%-apHw_g&Zn^x!+-+vQ- zTL1U$O^V9mL$d+vyGM7`3vP{j1g!;6yoY_;>PsjZTRjxu_|^DJiH~`}vs1tHrdsTI zCnS;%L>ohNzUxVk3IaDHeNF%D>!-dMg(>*IvLN4&y-88M&igs+TI8C0Q!Tbx`#Uwl z`RBhWDzx)eb|7BFz^><=Ls-5M)M&A>pf}2P z@@>2_YV}y_0&~$`te&ywn=cY5`jA@&A&-sa-#jPbP6@d)5!`G9RBVRWsyln%$g3%# z_Vg&JqEMH!(EH#}H|elysZg(8i5K2sSJpuz1z~T`{wuHASs1GW$9Hd1R8~6bK+$_# z3f?9x1}qvzAD+}}>0un6k`kU)AFg=>V($&dkB4SSN35P|B&tW8EZ?PA4lgnmEj)ug zAP6t_X8-5~QX0k7;#fj@ftr-a-$xP6^ic&Wx~+Usr-~}w^{fQyAw<>0eP>alV7G7d z(N~Hx3M$b*yw#-RfL3;m=FrHQA9NJSK$kQib11otV_r{*+5Hi-e|BT8Quorwu8YO| zE@EAH6>A+tOf3!U6vYM~g%ilcfx>MitB6mGQR0_jq@gY|6(ClE289E}L1U+D5N# zW%y~Mej#iC@A6i*VBO{mj};S=6TVr`rnGJsLGBP2dv>lZ@zA56(IiF!G%bBX^^ zD#GaByQgBrR>gpRRg(2D#67)adyQMOC}QEx1VnYDvj&19GzMmsfDe5CQs&mW60zUR z`?vfl23DY|i72Q>iWVAVTAUKYFD81JA{LaG&`0COlk_e%bq?*GHbe7pCRH>(1#;x1 z4uHJK)0o)PD8|By_^Angg#G;zy)~Z3+LlJVd|%BntuCC}KP>et1GT(cbc+VHJnCJ? zF9bSEzQiYEa3*8;Uxp7Bh5%)LH^~$eClp3aj7Y^UbH;Hkvb zIYNxNg3CFNxN;H8A4%F$rA*=Lxw-ewb5Yw&e6JkN8S)_UVXA3)oYl{s+UKQDbEx;{ zd@uy&i}MU+;MvxEsar0N4Y7=qn=b9Dv*b)EOb8qsSZR$h)w56o6>tRC}Dm zUU)y{VXBcPq`L6EA;4;833xpiYbEB8lK3~ZZV9#0k+qciwfNRrNOdirARzIiM(jbI zRC=9)U~R}UkF#POWVvo`lE;wA@`aVuQ6R;pF!-O^zKoA zk}9&5Eu^|rNaSAQ?g(s#yk>T+A#STyiiE3Aa!?&{zKNukd_pDrq~7aJt=1Dj%@OTE z#G}Rp54xxYwb@Pw!@Ki=b&rPbmkliJPl=Wr$O#+Qi5lhqG-O}E^%5J22_@w}H{^Y7 zlG)%?p!qQGqoHr!N}QL zj_v`!cbX&B+-{0z!AmU!mo4}U*oqk7j|51fT0wFE@n8#Sd@I#*D*~c>6vPci|i3HqGk~j6ULqPZv2A}`{=nysQxKm8zE_;h1knoW%192K|lM@FReB&5bQ|GJ;( z5C)#?nKTJWG({BRi;1H$;$`B95l6iz9DQ(fA7IsYE4UAu-AC2dcWb4OlCYnGy`QY0 zn?C!cR$MD*!7Hg;!$N}Bqf|X@JofA-d3HwwwK;k|C5{uRC9Uvzk{1!D(<22ai zXGvZ?P%Q*BG!1k^hPuoKhIR*9yI&;kCTs$!Ggvk!x6Op<2=rQz)zsj zCxwf8tpCdl$Xl-G{p0S{t_iU4|Dikme{&McHp>5dPGWZm`ky%ozgRzY0-t1#`v1;J zxTIec45dqZerC>v2M>RwTJMeLOWGR6sRRi~_Ini@?le< z{g3YSpE-%$M2Y$TF#dnZfTG% z>F%1(4Z8MTYoD{vb6x)zabLf2kMa4A(OX&Yv&wQ=&8W0wpfk@J7^%gudm_d8HRtqs zHjRm%=eubt1tygPkq+2n;rB0xN(_5K84VH>Vv~*f6M5XZ9i~2RbYxLxDHXinT7nvnz_jW$7$Lc@a~5h#h- zYBb&~LN7B$=*AGUVGtUIMDcoRW{iFy)x}58e2f_s&I0v0%of1Ke)e&z?yXztzWAKw# z1+e0=e4>=04jlzXYPmEiK>Tyn+ZZ(LN691Df=6B9<->>h?gN4eGojYZr3)0j zEW#!Q6=F#q!$CYhRVW}NNRj$V0!dwUC(~~qjM@q;N3cVXNgz}~f(b8woX+V?z>WrK zle-LpW?)PzD)c||TYaaUcy^Cy)5|%|#ika%cna_H7hZIR6misuAi1!paPQcpo~>nz zV^%L9!*Cr%BY)ilw_?I0s?>A8f598yN3{D*m9r@yH zp6$J5cOGh^X1DTHR1kZ>3McYlMh{K?tr#S3KM5&1GEk*D6`zpGlMM$1M@X24pT0hY zByGxM|JDtU4hfl#a}fg%E*TCvMuLa;2byEOyAf4iN}(Y+hGX?I@qTirAZ$$(k&(*f zVFzKSpgufW@W#Hc#*(j;pm zuo@Wh(`^z2{wQCJwgouYL^6F91%IkfwZzkcJK9(Ae-~mvQq8MC@_;XKB*QRR*5cb1 z-B3M4{ZdG^jC&JdclQP_4)y1BX@T2wA%uE;c%=O%>W$EDw~%Gh^!0S6qr>jdE-}I{ zPLlXeXXt_uUHDuoRL1$@Zdbf5(w{LI><8|CpDLujG3wB&cBRNTy79w;Ee&dmnOc*)PMzj*I@?uY*?P-}YQ zz9$=tDjKcvamKb)$C#4TNLcsMOJ0v0rQWpQ#LIHhn|(9oD^USg%;Rh+#ZBR*jjC__ z_;kiHU9u`_zVccpxmx|3)QNYM-OtrqS=IP*OI(ZMYz3$3I(b-Z#w(>d<=+QxeWakm zuIxD}w2B?lGSY>wzvN<>Klhftm7A?QH`x(oB=21Sk8#U}*!jYaaqJw` z;7PA`fmYh%RR}`9y96tba)b))%dP^4g6!*Ug^C;} zdgo3ns}glBKUjkq<}d%OJAE|Gz5yz`9hf`y0wG9nTb1>TWUSvY^M6vmjBbVmv5NLW zv8i~0b5Xbe58QYp>KVJ%EJZi*p#?_Bm2ET4E%O&Oz$X!oBx$!P2{2Ju2G*TAv_lDk z9&P2l*!?|H>#eZj8ByIOqg48RKVzlxGQB%tCQL*E)2NUr1z2}tFUl=JV*Y&5TZ>K< z(+R9Q-TNdQWx7`ATy+<){=Ub^39WqKClRUb-AE~uP zXNZA_lO6dSq~?vSyDq>{*T)cu${k-G_z7QdR7 zDdeoI>fd?)8SqIG@he)t6%^p{zD%|D9~zA|$xFjaKQvPv?4x@UF6Z;2`Mp^)eaE>aDoaVVLt( z1r1C(CgIsFg9g&JE>rLY6Ma2m?9azFdkr;TObd?^uk84qf@`1Q4us;M-K@*ptveMm zS#W$4;sZu%vq((Sp51I}4c3lV0hQf#(IcK7>L0M zm;r*Q!V96R_F#i}qFHI_oP#y#aBx5$x4o_DU1<^9zpmi}o48P%bvNY&GaS8lp&g!f zAZVYhw<95RrotOp6!YkpH$tel8!zw=>wzHZ=#2%$@sK2A7h zeuSQ`$XFpXW-n#@OSJ+z90GE(TubSkJRSVIOx@p|2MnLPOY;Vfn|{6Ef%=%<&EL+R z2cnG_kFa47l|fdrA-_x^8(NSp8ORPWEOm}^pcRD17JTXxv`!dYW*L0q6MVA{sbqz~ z`{F~hY0=X#`Sj?zEO9Z+aBrSNr==iJJ_s&71pfm3AT|^|B^0eW6lF0K89od`9)?#F zN)wAa-~jbD^>OyW3`W6fh6{kKhp}FOxzK>4ZtHNK4ZI;0vnGd7EqJVHvIq&j2r2Cd znNJaNvJrR`5!_}G1n`lECYmQHSYx`8_+i=@u92Gb5Wpl+&mn;7YwDUo49ueN+@jQd zBhAgCj4r@0e8Z5M0~pYJARt$Evv5Sccb{sa538b^s>7JN!_8y~ z41?r#b<0l@Q34(t)iMQ;;L%mJJ8}2E^x-q!8RAr2{`P*3-H1| z_y-!5JKZ+~cW&>(Hb#vm_)a_}~KXAQ>C}5)99uyu$_Zb4f;zOGdi{`-wo@@78*gK@2I_e#y8D z5NI3(jE?ijj|v!6BHx4%zkpEpq%cEM8RVeE{HZ7S@VIbkV0d^0C_EAro|_-S`yvf3 z23~;x3asyn#+ktO(-2&rC`7@74h&s*w7Cz`q+U3O1GTIUfu9L8G~_5WRWW4sX zBUM4LCeMV3XEy6+ek*r>!{GR2-zU-snph2ab{X)&{Odah5_)XEbX)<@ga(T{377#2O#p>mb<=y=-)mmX{ zCVgzU|6%H3H@2;m?X6_i;KKiI=xGsB*vD-_ss_*BS}@<}f`~z)P+h#}`x2XR*Y{(| zqIeJ`uyIsVy4oAVVKLWNQ)bfiBMRT2hV^)T7^V=8-S4QqHBo5L`o7;6v-Pgceb$IOJtBW677PGA5aurGw7EW$2o6NrY-3dpRhfxobIC z1ciPjM1sI)XCOJJKUn_`u<}FMG4*wH+x^Hf^^?Hy1 ztnX-0fDxb$@DClrw@MzoJ`64`&EHpsM`m&hD*ZxX!R(rwU5ZZExDKo|byJ1+iyXhS zU~$}=xdhW8<^bzJU=^qwRWcs>V9j~vS&+z%1IGXr+RzcUP~M7#<>!bP9CYeB8^n1Q zZek{@4*|F0qBOp@?(#&q_6f01kj%_W+DYn%m1;<`W@6Kj9QFshVf87&J)HLAX8pV- z1e?7GRtZOge#~ScLn04$CI_Twzl}aHPH*#}M@|9$Gt{pnm4!~!3r^HOYnS`8!dzy0 z#|?Q-B>_Xr?>3G)na^fyCjQzu`uiO2zc-F(`z7w@a91L9kn~n#{ym5Ld*kT+ z;ohA8DuUh4=Fx@hT(?H!AjmW!+)_W5VogQ>f@Ktb zU=BAOjY$dG%=Rk9P1c~Dj@vu$aE|pO>lKN{)x&$(R{*(y~2jK|n^wn(@_T zKbSq2onOKsgUJM~z4ymqRCQkli+y+R>&wGvnJF?>Z`nS5qN5l$dPB-kzK443N3pN? z#bkWo`^{gB*eKOzau-D=ymLH?Uua9gX_bw!3Ohoq}zJAp9no%ZbZk)ps@rz+@2wH`0^A;V73IU+z-DO$Ek$<*-|_` zKZ06{P)Lw_P{gLgylD*6si=KrpY;q!;h3Uuz@^F?xVgtp+i=KKn<-f5jwD_lXGs## zsd&qcrrNEeiE-tsRfr*JvYh0o1m>z|$&I~qEeC#>ay6ISF`rdtx&5{LnWDIn_#5L7>QqT%wSNHLUN7gc_;h3K?cRGVHOdDx>J z*f@GD%lLca=(IGZKi`<=r{+VtwolGR-odZl#W+c?91Iz8O>C4x5=n6ELWrfJSX^k=*=ka%ze6?70u~p+%PVu}4F5 zlcrbCA*T1a<@>hmP?2oe5M7ZpsWuT5cVf&yU6qk$gpz$>)_OhUGpR>Ia3wzC3QN#l zk2Xa31H;@DEP|^KZ~iL|20h47F^5uil0{K07DnC-4czXfdEbtm)*=WK&Gc z3q^WXCN-qHFPxsQOAk)((abb@%zd^CK%*_WAwzqBPo!$jjPWZQ66 zCwd%p>&=Tqfo-YlNS?&fmHD|f(M^PwJmYDFnA{EYW48DhOvRfYkJrbUP9IV=z*T5< z6Z`_44z4UbDfm2V@d`r%s&0-X9`OZ7lCx#1>sF`Dj@=ccenk$2fRI24u0Z|t&*>l& z(2`s@Rx&5W!zPhhHdcrouE*?dhfCdO$K6k7qdEKEw`-0Rl}rw<=HWgBgI;i2#(j4w z4UWol3>DkO<(iQJgR2cy7_D~X9;XrT>{;3p&7OIkEs=q1{JDdwT;To>L6F?+4*Fk6 zGj_q0-=vwC)38LkYyg$gU!)n@u&-F3fb7Wep~YxT9xO!>>f9$bbnHe+vTV zN?*B(KZ0P>ivE7|kXSy7I<{1N%jVecw}Wcz={_1L$ptzf8MO%cAliro55{8(+1G6K zIbxWrtNyUu$eJa$V$H#}+>1#4VDv36_N>lg-I*7V`r)$z1QoZ#`jG z4{k}%ch^UHnV+x{T}A&W)DC|Fdvjw^(fI(=L=h(XZu3qMpw~zzet;v1Arl>UIsywI zNzpB;6!WI{dJrI|DTwx%5-M$wO10@$R}L-^q|CcDUf%~ zN1YdY6Bs=dd10i;hnT_LjwgC22sp7QN$v%K9Ng(S*y!1vAOOS1kVPRicdW)3%3Zt` zGl>KQ0UyG8lE|B4`d!myrfkZFgP;zN_Wo*H26+bqn@ z&9IT4kwOt79ATVmrs(~Cb0aIk?YDz!uBMy-IH&}o&Hr{#&9@4w*BC|-5R53nw6!RC z8*qpfBfiC5=9dT|FYaJguWcc323-;y)f;+H0m!D{f*$fqL(^>Uv7y0uowY zh3G~kzeEG4E*)NM@I8~YhIVyZe;1tq54sR4+cg*&L6u2G;3)lVnH9kUDsV61{5Hok z!*u#EL0J6}m>T&z?%|+9d{m#v(Sp13hv+D&A#~Vdp7sn6J|m^@A99chl#HtpxB*rVD#{*dTx}-`)9Io z_PZCqlD!Ai%2T871;H)wKYNQJ)y z>4DnnWH?lrrc1se7lU5XzXU;X8WupBHFF8&x;?FfL*W4gfmkuB^nP+ju2nqbmhv-& zLJIm=YdwDLz9(xyiij2)`olRtNAA89YMb9svNRR>OCGHq@W5{PtrcA^dK}G9UY@94R9V>A}~w9+h9fL9K^Mx69;VSNvdpYuC!-;|L|QLmK&e>K>C7ueR-e60g&!&H zNw-KAHnWmtAb_$6j%o4z0}TiuSrGDvBQ_gzz7?w2Lyo&R=%!p-1iD>4W{=(Z?$mp{ylow z3#nGsp!1USF?#Yj{JZsOS@MlKmYvGP&{NN(OvRn3;f(2+E;X`PA&`ZR{Lg9Fw8oo& z?{}kzI)We+(Y@?~UcQ(Kp#nw^0}E|{(Zh~@0t(*j_lhcv5Pc-^ zx`i)tcnlBc4rx4zr<0q}`+CEE4Czui7(EfsEpZQEQf~ms?l~Sj!U0)nQpm6(I6r6i z@WwuG(sG4&J2{_0ZbeGO4q}x@V$utIS#>vhs6~{o=i8=9wz6X>A;z?X)0&Q&!Nn%A zoA)o$?9M?=@@eB9IFL4GT?pQ-?&Rl|*&?ylBNm766jibggypT!2wZeOaAl3iQZT}A ztn6XYu#C)jY{;@T*^4O39@VK}d{J86C#NCirXWKl4D4$q*6WV7B z@LcDDfv-M8;5kgeqy!}H(XD!g2lI=>P&N0{KI9Z9F;4L7c2cB6f`e-jn~%yX{AF|WR9JMU+~>mFhMGjV#4!ytLh96RIK0ogpPrzJF|vLx##4j$ea`;_f8hdO{^fn)5$dMrzrG>{($wd93n$wMjj%^z46E9P}eZKvpKX=@nM!Z|6y|& zyPV|%HV5h_GbkO*MXcu=Y(Z8o(eiY|L~!d!4hMik^Zf_oRA7O`f?_ z!Q6~F)NM(LC%|rc*KP)>|5S4AEp`yAQukTu{7-CJZWkTq>s2B zVWdQ`5?2-)m|@#0vAku+dU|Ym1V+ZV#@!KixaI&q?IZNxt~8lG3NAevIzks6QnPp` zG-aJv7~8|nI8=@RB^xT9+8i0IJ$FMZtVVq<0Is!P58rFjuKc+zf&nKm)OdokZ5esR z&-g*Ks0*?9>D<%&gYaZ8fn5)kmB z4?aB~<$&Oy_AL)`KKb#MGYI&dMdNV4)mLDif*68?8eN9{XrxWPQ1UghzEfatP;j3R z?xs2#WZ9j`JDFxN9`2^KbPkiH8x9$P3xwH}qWyHLgPjiu??09Z7AZM?_pd4E-Sa;- zhvxf>f7%?53Y3BGYjrY`3Tw5Vr8fXJM<>hGcKLssayFgzxIXOT*#lIK^pl(8QOyrG zCzB>cH-Akz?@@3qMgLYcPnXN{_W*vr^9k&lmnB6N=lIU%xIWthMnr$B8U&(!7mz|S z!faIxav?U>8_Q%Q+L(-Pm3^R%7MR!qRE^`lI~ibeNXxX~#O-^~0jlQS<|t-5|4hCV zK-Stpp5o<=fr|CPr>Ak$hYv;7zv>1%hw&ns!MROAr-YSj=q224o= zUl|T)TBzw#`&Y7!R5F*gkcj+HYN3`c1uwLa@Z*(e%x*vDY{dxeO)3V>?jDWW!^q+Q zz~+$ceKGwHo8vE41K1p03YqND-F^3}CLoj3oj29&#l5PLb18NwG35}EIM3wmjBPjn z%jU?5gB9aSixRd705->UB;{j)?5w9}-LS#0mq$r(H*++Iaw_4WCCS;LxMB}#E2Y_w z?`;k=zZl=Y*&L3?fU3!nk(L_{iyQS@6U>qGju?*QUPV(e&5{3xGZOnkGLyUiPSpr{ z0;-0WAK~8SAUesGQOs3~{-bJ$7ba7C!m(8Da^e4}YEJS^tchPt^k|eQRNSkYUviqZ zW66bNu2OUdJ@+=povLv+^q|1xrjP*r(t98uR>l6eDd#(zV_R!9cWS^9P&HTurqc4$ z!|(A?qM18`6dq~Y8;@7S2;rD(->I68v64z)%6W@HeP~Iy%7U2AlJw`#MWVCnF2zFY z=-!z%{<9hiPBF<8`Pt1E(Fv&E3+<{fRNJl3?x&m=36a_i?d#VS?{i@&4ke+#fTxb} z0r--{kl=Jo>+8qE*B6fqA99FFDZpI^n?NS*hb-5H{UjjzWXqvLAi(BO2mn1HY;g7{ z@_d3xW@_3B>{u1w+Z^$PZ7|4z+w;B<9B&6QlGl1}{>NSDtqx?^Mwaf#sRoZ|W61dJ zu*21uAQs7!WaDr+?iJ)DWYm1^m_cm857}3Ma-1$Xcs1Vg{6J=RmL!@Q6y7$bHRp&6 zB1CAXa1%Mi(g(4qADQn+WMO74GDMomo&fX~oEqen?JnrN%OTzeH5H?!BKd5$NQPIk zF2xb|1Ezu`io)h2b4ETKblaIhUJxdimI?KPJCUX$##i$WLa{fJMY@G|1wK=9h*npw z=J)a3Yf41I;tDZqVs;P11%xUVdJO$ki&s@=lMlJL@28xjOOQ<6>_XDN^L`*%L5@|d zC<}fu^9~$|c6wAaVCHpI2>}nf8M}tKruTo{}oj* z3An5v{Pl*%;bGrL72g17;(73+!aKGrZ=#5?(*>E|p*!nl zkG4i!t*JZj>|At991y}f+u{Red@9G8saNOw0Od7Wr&(*2utoW7U(L~EccQqz(z;PO z@bj&lXUt$%u{BX_Kzp(*UAgnK`s2svCP7uZVeMZrNR?)Exh$q{wXdRIemYvpOk-vw zP)xSj9EZIsV)=f>zPHfm4+HOgTeYA4k(}|QvR?1Rb$qU>-Z-$~%j!f#-h1Vt7reJ9 zLa4JYczV*au0P1Kb=@#YszaP6p>)rkrrQaEM7rVWLb&FyTZ25vSde;|i>cHp#A_pD zmYA_h&f{4SH(DqdYlj^41F(^CQ>A*=WmH&&xN#LYZagUmf@H*O2KYd17lVAukQGBQ zRUAztan0K{LxIMOa3ukSr>zNIvUgEMvF8Z+T~uMLGakVKG5#=a_UoGh*3qD+!<{oB zOkK4m90+f|p5hZ0k>G;-C3HP4L~0rmi^|8akr6`^_c$rmZZju6;_H8ByUe$wc^7TA z3hQg_^o75pFy68KIIy>hbblf5L^x`2a4z>jRkP{3Ky1ks^)i>-Z8y2 zw_qtyNnZ&hiy{=3S5bw zO!k&C1^*yYY3f2yz+Hf+T+jblI%zn;ygj6e(bmO?0EG=z0GO9()vU+7dF2lnX0Z!> zgrQ>4j2r5!^OdsF`XIg;52hh>*n(@P@ERNo?`nD{I{J^^R( zS!q9*reLCZpkuL1m?5TgV%o3M6aq;v%t0It_DM#fNWG7GJwzHBeI7~4e&G8hEKc$( zd^>{|%`1&QeXHW^c9wXs1~X&jWWKr_CYvudVsNhM{g4nA(};&k zEZl-&$YA|u0C>Z{$$B|Y8pb8GQAtI)^uNE0DloHnJ7ou~- z%$$;czu_$@sKs!+1C#TV@(8v^IdxSc& zfoOJsbG}25h}z?f_ii)_CUPTj)5jFWyzPpzn)%;=s6yo12Avy2>!pZ){0L#jy}kc1Q9P0&XMsz$6ovtH0rDki<_ zH<4skR`iP@LV}77@&H~#%T0(0LpnvgeHx1(UpLo)HgB>~jX>uCSJ%rYy}%njt|4*0 zJsLzdJscNBQD5Dz672XwtviCuG15o-w=;42o9&7noW*9WY)~YybO)jeB72cmq20pQ z+4pa_35AzViUp&_bsFhKGE06YFyK)tS38GQwc@0>VyY#=TU#n%0OF z3oW^4yEIU4E332IkSGHLsKr5NH52{s%UM$QFTKYoj7eLD0iSDd>9^&ae*nelc&Xb1n58R3kVu`^uUDCIqgq&20qyk$R;X2PimR=;PTej{m#g=) zl6Cd+&7MmqcPXN>gAwj`^7r1pbV?=X9gM>SFqdo5x8$FGK7UQCbEaAp5sEudC8+>2 zMOi1$IdSc}A#HX+ne}xIn93v}YG$?AM8^3%Ix>6u)U{)MHo=QXDJi`*P9?({cUnDic(Bb|`by!pt@kIrNxgI{5y^&b+Pot(*5NE^@5 z!oHq*CtZ;}unS1h)2JPpKkk0ewUGn^Kb&toKJUcsdw^e+McV7_^hDL=0`<$dCeDF3 z`C>8_)PX#n!WEy;m8qE?A;lH7+4V6m#OctL!_^gq-0cyaD<;&9P7Ctj(3R%g4YcTr znT^9r3t2mbE?8pmfv^!m-C<4cLg(NwRM-n}9!QJsQl=ha4j#fFY>9ObVIMn{Y@9U+ zekB#;c{Of*iKlip_NML~Xrp%y*5md1!3ny%&q(%qTkU0W4mRb505kQLGT!gAy)3o7 z(M7$>TD;MIfT&YIfn+{k&mm4gex@bO#p=Mo1`msXz~e&TvB-VV;o)JrzT4wc0ANE} z0ZHgmMRA2E9rHyJ^&1$Mg6aB=qF8xqI%H4!`E~FW^ZHkx!c()#P>?ayoJ#-$ZJfy# zPsl#94ne)8{gK%MX1uKB&%jRhR_*7uIL$sKnf7s9(4qBrqg{{*UTD4#L*>OzY@2#xr+ z*~E9L@E22aCsYBZ=AB*Fy-?L{^*fO>-u}T)8Xb3cgrMVRI*08^Syeb&=b)EMY)1W| zpZhB!hB4nNX=JkxF5~OIYVy!}c_R5l%p;X%u?P-}LL&RJUxUfw{+U_73(T{joK|S+6u1b+2`9+@sEh#X&)?igj2pLe0kAp+F&8=e)^$$XKV61 zI*hjd^Zwpkt2-rR>W^1AM*}H1G%o`aRRd}&AF+cc$6efJRx0r#!h`4$9 z#t}p_Im)|CH@YCaoFG2rP8c{6Wb%uXF2xOCY8Ji8yy%vE?#w1%y3Fh)zdN(ZpS6Q- zIe_!dY~o!5m>R*;y9n(cOwB8A=HF(Mk@086d$Z}DsfnG%|MKadOwH2@#du4**g%1V zHnXhAshOOth>`942n}7I9tmU)Fg1h}At*&F+P_jlre#_XGeJlIe=m_s@4xYOq+d7^ z*nStr?HdW=iO-x~5;(d(8pwtLH$lGy)3eR<{7OB@R8U|;BfeyDGYm|=DaT=6)Cli5 z0vTJmw+J|;;37A;JKn0eGKFIv2bIkP*-EG^C4|f6?AloDYA!mZDFQ-UUyl1rBI5_m zX*zN|59Ya8gJen?Q}EASC)zzRWOz5j9)(s;*xj3Jn9oH%IFuKcfm6rln{76 zAS}23@_5(+85nkdi~M#^T3O`X$(WW&!O8eb`<;^s-Ma|QF#6qHgjR4m{kG~~OwA)l zwONN>1!q9>8f@q6e@1BkhuI{tT6`1?6%BZQ!n5k(e%YHV{9OWEGV#7H)-WV=e@DTj z`D(8T^+~-p8~DSYb$7sQ5`3F2_@8Ez(99xcMB7;lgW~PQy7zOex{a#8%qAd0gZ*Y| zuCu&V{?lx_XKE}J1|5>4DP$mzWgsfcb;&3@oefyl8&DEVy-N|gf0|AA5!%0)8X!WW zKKCU4x7pN2L3H3F(}(%QIJ}K8aEbJ`S{nCxn*^N_o1}a_5TX5LHl-2%P5~|PNAXH>i zZ<)(q#i*B3jM*6BGpZUSk5|^76kI-LP|rY{_|j8R$mlsM(?~Q{xAZ$g1DG13+ih~W zm|T&=hpOJ%9wkq?-ssWFPxZ_}OQY_XnmeHim`&|Eh9NGaWUPxid{}o(&GdK+5=p_* z>?~8NstK$g;Yro^0x_FBu0W!74OB@K#W+>mrBp?3#EW%cygXn^gp!cdh=nate#Ct| zs&-5f%voMCy9=02bKiaKtK>(LLZkWD6a%<(OXgbnHOP02ibN*m=Ucz7nw)<7@EObP z&Fw8^Bf`c9(Nlp1*kM(}(G8mM6N*Qhea5xjuL?yX81>>rhzs zgv~Pp<9w+a@ib)5rEs3UE9ZU8f`aBE@KV=ph_{WWQa0cQ;|-y}N-@iBvCBKmc?w#? z4wzPn{5pTgsPzibg3F;uy5KWcUChT(IMR{$rABVLQ`CeX{rRZa*F2L?DA!b^%&bRN`9_Ex^Rq)+74r3G9=0IdCOD$>^yf<~HCkHAq4RYUg znU%f$zhCVCM#0|4LuBH{0fzwe68JahW#BjT!pm&e^%wLaRC5o#;O_o;vHuOdh+(DJ z8hI50FZS=VLE-4sKWBqExvIQ8davB=G1jQ7?RDR{I=7;bC{z`{YIT5a*>0}VEVhO` zLisvnY(DW@eDN76K9fu1YTU_QGJKNk79>|POB?&Fn!$M^h<)xVdAQQIS4wni0Q6%1jcXNjZ!HlF@F03d-C0Y1W0CZ7=76yAwj2(*sD4Sb2?X16MS+uvdEWe+hVdIq$PT-atYU>tBzeen#O?H8)p;5(q;Gj?K&(NPOmP4&@1z|%RgUdl2LFX&E&=*)^ z(0-aQ`Uv36kAH7P;bJ{QvuDvb zGC>;3PU5q@7Fy-;EkvW{y2By+3e#PhK(Rq_B#9y+t>)>71EDvqOz3`tb0yZ^QU<)>^Udf;FwMo`y)T~@r` z>Nf=&e-f_>yx2qW-jynU#Y09ia`d5e-K9=g^?xYX(#ZJh3|8;hd^0Gn+XG&jji=|q zLJZHo_I)=IMI^`uD)FFdS2 z_z`ZKrm`w@7Z2q+t&)N^vi^czK#JMGi>>nTP>k$&L0Y_^T_zM_kh;Y_CwVT8L8^EB zGHKCAS{R6jaFBu@mSo7*L=HrT4M36f+67GfPA8R{&(nwC^96B>!qO zm)u0{^hu#Zf8OgeARg)ggSb?3-=N0JlJc%(c_`-VKj@uw{$5cM5}0pDTgM`;`kR8q zMfM<8w<*g}dwdrU^}nbr&;Cupj*FH66zsd#s|-3zum~V1Yw9wy=>0i&d0N$k6^&2w zXl99_D6RvDhiK(~uJYTvQ8}`_^I-(yp|jfFej0#+o!xZ=;vp{0kFB2xz+P5lsnoyE z1_26oKX8v(Sp3z+-PxcgEe75p65Td;WBdV)3*WPO_($hWptUS)ocbtIc0!h}FTbrN z9f!K&l1TNst`L zHdv{;KGufyLwymH0qtyI=sm#PtrU0AXOihuIq1Tj1SMz@)<5SRdhoCX0_k7x<(wv$ zZz>gMJzAI3nPzZr;FNC4-%$E|IWiv0kxfmpsTw~`6}H>#rYsaHTy{BDd}l2wZoT+< zIZho0Ux?O%y}5Haf%b{H7@1;QZvq_!ym*`?y$+#^aGWfX;x0!M+c49)nx5>C@hIzm zr}E*^^t@MPX`SM(b?@cWno?EmME@>62kvx(@fmFT)yB<>&&bD>AWlr75GO67S*Y)N z(U0{spE-jGx@#-p>l=%&?)=|zYL3c(CVXI)uUlHIJgIlZinp4-1j(8i{*?&>6NQU z@);B&v-jC~0g~-P%Wx}=!n!}`t=kj>bNPzG(&S|D6h_)DQT(0j+fBr0XXCb^N#81ry$ns~8N$028)9sTN=x;5^_xbi#H~gQ(y5){rdsZy;4(I5*X)hcQDuPZ&@VThzyU5Cm2#J()<|<_N;Hxa;`Dxia#;Gs>rAz z2KIV9fv?!m%MZ)?qTAu4cnz_wlm}ubd1MOLLQkUN&$X@TYQ@C<{yHAbCk@m=SV|u; z50=p|$lnY&amTFzjSWdk-%QwEPm~$V7k(Ew+Z${32O1k1>H)Llv$_0TW5elq!;Qh& zU1LLkfhVqaV#v|i&5+#Mj1OKs7g z51KN6I`U@&%n}N}#*m{$f7Z*&IY;KHqhQXj>Z!|AkrKnp!IAst(%ju`rYoW5SiIph z1w-yZ0!I?`tAdAJ%h*CG9^_bIFYR*193S-@1L2j!kunX!r~TkKhX|m0;G4qwYJv@a zMtV$2xq%WrOl8PKbS)p(?^y?ynPxco|Cy2o6A!o}!dJZunXD~UN7##@J zT-a2W!lZ;lyh&=toWbRAl!z+((oeo+kza0g^yr`PM}j>%;Sg1pXoM15cdrUcudu2` zvb}Sg8Lu6&FZcR%h@7TVFh$^YQ`Fo9_mX&uzN9=K90?NG+t=t*K3{mo`QvDaL-}co&5v8y%bpG@^AbOV+*Ev!gf7#|5_IkSd|bEy-GDAt z|2NzE4_emSSva#r^+1RZsN=nnq}RzgZ4r!<&fA35cryv!yLqr~s|cZs1v`&INMH`q znD&H}&oJAF&6a^?OM#UvXOAWPL&8)X#&Q=5mIGgvzw^fWb1URx%#NxIZ_ZN*dvSpS zB&cx2A&7pUt0PY&CD8JpX31Gs=hMpr##NUNQdG1^EMM_QY}Ih&54s~jfi9sT3VuEm zva-qQ%cQH-hSWS$;qV70sEp^*Z+T^VqA`7lXUw)(?hwr49#TTFC347v{d*1l&04dia*Xy_R>HrRq z?xh!Cmc00Lfb_>KxhHd8^j{{I6K}$sKjB0iD?GhFKr;E+$pahyo$7rS^LU7kH%y^8cTZyXIt)x4tg?3q9a*OZJ>TD$#?+=jT&g#3! zQSKTWK9E!a(yPenm;C(YYnkt--xOsJd*^R~#)i984^?3S;ZAxf-KBcEoefpZkf&;z zlrxdElTj@?u?Su~eR@ph)vaU=Ar7#EMTom3Dh*AKHCC91Gm$ zlB@GhGGgiw&tcbprFwlUxfChgDnX?YX%$QKRVyv`((5f1)5nWmUF@>ojSbof{7ucV zs$v1U`9NcXWl-6Ds@K>Hk}T$s^l8!*x{9S{JugcZUYZvD)7apzwkr9+urVm8Je~GW zsy9%c$+Hvk&?9Vw)D=Zr6iD^X2y5vco(Pv>7^x?<^&@n9N4&WRCQOhR3nxg&dS+xU z`X;SUY}Z!e{G*v^dF*gw1Sgw>5JcljyT2ufJG#hxU4%5f-M6wrG(f~`!dhqguGz8^ zkY0oKXt=kXZXZknKS&wRSDPCVdiI z)1~tsBR2fy3a?35Cvxe>7(~g@;`3c(COF98krSnw zlLWX>X7tV|(G$HBGkQyc=t1;o(QCevF=H?!7&Th-9=!+AJBcm`qIaT1 zOEAapf7V%Nt+Up7_q^VFKWpuM-=F)s-kl5a=xq+PM|3MAt~t=R=Q16~Zl|x~Lf4sb zmk1m*bVU?Gq~*SbM@eJ`0XT;O;O;{BNN2bk&W4iA_8xRXxu=iZ3q_JmAfY=*;#^9W zIm2jCAYUqqAA`b)0s#{w(c>twW)$BXN_>u5EQtM{gr>kq9fPG-U_^7BgxN_-i`+Nc z{_kE}7y5s_HoS1qEdD|xjX4tk9)Lz3A717SVay4)7_`a0pngRa!Ri#j(e;Mb_BGRw z2oEz0p5q7~XBRF}C$RvCxW0>|Xrx|IM94kalHY>rN5nfujNvRIV$d=;1#@cToJmOg z|93AGxna2yA?ykxbQ#wd(_c}B;)J2B&S+A&sJ(dBwW$;LK&+#9-nFd0Jrnws8kc00 z;f7WcAGnA$Y^!iI)$!@~a=8=or=K4EcX!h?#cO~i^rfcI886l;RQG%wGxR4%=d*oC zV}absj!Bki2Qynqvcq(>I4)i;)p0E;>IrsyXJLl3i-NH3gF$|g8j`l^%6$jMnS1~5_hfKMp9TU8idlI;!%eN1yg6O=Yq@LOd-i#Cr;ux0{uz` zV&9Bj=7cd4$WdVk&(GrwY`j+IU}`s0fSBEiJ-NJ?$cw6GlMcy*F*C*Y5W;S;B_&&P{E>TyykhzpAo-xDN*ZBj*;a|DiXMO}cyj0M>p%U*YZB>CK-f9W!C_G5ntFVfxUJlG{Uwh|A_u}v4J*NVCmQ5^U~mTZ9lx6G)cAj!XwPn|y*d7* zQ1(yu30Rp3v!17XC#4ixK{zebz3!o)m7&w)sp*9qOg5YxeJ#}0zuDVcQnn-c%s}zk z<@PUiYqJ;8Pds<1?l|1j2F4J^76bLz(S4be5RV82acbn~`eVlPnjBzqIT>0>mV`wT z<3ki>(WDxq2J!Qb&HSu__M z%dZYKF~FGe*wM!X^>H!3;#o5Ibi=zAw$iC%M1l-kb-3i^-Sc`+N~lY+KBJ`M?-=3- z?}p7@#kIRTJdDB5!NYlXAUB@bN3ae?r+A^GszoGy)|a66{`kCJ#BVKGwTKTLim|Eu z{-y7&NTqs8p<2~K-`8W9aes(aODDZ54!#NECWg)FDN`z0zX{u4>l~aIehm3ABO+Bd zVo6Q&vGG7h%rQ#WiP9mp=_YY?u{cfZDYfC%bIxTIKZrAzL)zDZLb3ad1;wPgw+a8# z-&^4j#YRsq?!TIBe5FN04QJR1dmHcNT3kk@Bq?XS8nBlaRUx_{7;vCA*iWev5nqCD zK!W6l^N~(S8~xFzIgC~t(*788F_Qnb*ZGi32l6vYvHa1Upc*Cx?W7$OPU%vwAp{~AZv|%Ric* Qf*HQLsa=D$6K;FWnt>@CcS6gBvgA( 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 F{~sEC@KFE& literal 0 HcmV?d00001 diff --git a/lib/clapton.rb b/lib/clapton.rb new file mode 100644 index 0000000..0ad5ac7 --- /dev/null +++ b/lib/clapton.rb @@ -0,0 +1,10 @@ +require "ruby2js" +require "clapton/version" +require "clapton/railtie" +require "clapton/engine" +require "clapton/state" +require "clapton/test_helper/rspec" +require "clapton/test_helper/minitest" + +module Clapton +end diff --git a/lib/clapton/engine.rb b/lib/clapton/engine.rb new file mode 100644 index 0000000..4926fb9 --- /dev/null +++ b/lib/clapton/engine.rb @@ -0,0 +1,49 @@ +require "ruby2js" +require "listen" + +module Clapton + class Engine < ::Rails::Engine + isolate_namespace Clapton + + initializer "clapton.helpers" do + ActiveSupport.on_load(:action_view) do + include ClaptonHelper + end + end + + initializer "clapton.action_cable_helpers" do + ActiveSupport.on_load(:action_cable) do + ActionCable.server.config.logger = Rails.logger + end + + components_path = Rails.root.join("app", "components") + FileUtils.mkdir_p(components_path) unless components_path.exist? + FileUtils.touch(components_path.join(".keep")) + + compile_components + + listener = Listen.to(Rails.root.join("app", "components")) do |modified, added, removed| + compile_components + end + + listener.start + end + + def compile_components + js = File.read(File.join(__dir__, "javascripts", "dist", "components.js")) + js += "\n" + js += File.read(File.join(__dir__, "javascripts", "dist", "client.js")) + js += "\n" + js += "window.components = [];" + js += "\n" + Dir.glob(Rails.root.join("app", "components", "**", "*.rb")).each do |file| + js += Ruby2JS.convert(File.read(file), preset: true) + js += "\n" + js += "window.#{File.basename(file, ".rb").camelize} = #{File.basename(file, ".rb").camelize};" + js += "\n" + end + FileUtils.mkdir_p(Rails.root.join("public", "clapton")) unless Rails.root.join("public", "clapton").exist? + File.write(Rails.root.join("public", "clapton", "index.js"), js) + end + end +end diff --git a/lib/clapton/javascripts/package-lock.json b/lib/clapton/javascripts/package-lock.json new file mode 100644 index 0000000..cb90a3a --- /dev/null +++ b/lib/clapton/javascripts/package-lock.json @@ -0,0 +1,3059 @@ +{ + "name": "clapton", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "clapton", + "license": "ISC", + "dependencies": { + "@rails/actioncable": "^7.2.100", + "import": "^0.0.6", + "morphdom": "^2.7.4" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^28.0.0", + "@rollup/plugin-node-resolve": "^15.3.0", + "@rollup/plugin-typescript": "^12.1.0", + "@testing-library/jest-dom": "^6.5.0", + "@testing-library/react": "^16.0.1", + "@vitest/browser": "^2.1.2", + "jsdom": "^25.0.1", + "rollup": "^4.24.0", + "tslib": "^2.7.0", + "typescript": "^5.5.4", + "vitest": "^2.1.2" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.0.tgz", + "integrity": "sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.25.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/runtime": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", + "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bundled-es-modules/cookie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/cookie/-/cookie-2.0.0.tgz", + "integrity": "sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==", + "dev": true, + "dependencies": { + "cookie": "^0.5.0" + } + }, + "node_modules/@bundled-es-modules/statuses": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz", + "integrity": "sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==", + "dev": true, + "dependencies": { + "statuses": "^2.0.1" + } + }, + "node_modules/@bundled-es-modules/tough-cookie": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/tough-cookie/-/tough-cookie-0.1.6.tgz", + "integrity": "sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==", + "dev": true, + "dependencies": { + "@types/tough-cookie": "^4.0.5", + "tough-cookie": "^4.1.4" + } + }, + "node_modules/@bundled-es-modules/tough-cookie/node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@inquirer/confirm": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.2.0.tgz", + "integrity": "sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==", + "dev": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.2.1.tgz", + "integrity": "sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==", + "dev": true, + "dependencies": { + "@inquirer/figures": "^1.0.6", + "@inquirer/type": "^2.0.0", + "@types/mute-stream": "^0.0.4", + "@types/node": "^22.5.5", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core/node_modules/@inquirer/type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-2.0.0.tgz", + "integrity": "sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==", + "dev": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.7.tgz", + "integrity": "sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", + "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", + "dev": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@mswjs/interceptors": { + "version": "0.35.9", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.35.9.tgz", + "integrity": "sha512-SSnyl/4ni/2ViHKkiZb8eajA/eN1DNFaHjhGiLUdZvDz6PKF4COSf/17xqSz64nOo2Ia29SA6B2KNCsyCbVmaQ==", + "dev": true, + "dependencies": { + "@open-draft/deferred-promise": "^2.2.0", + "@open-draft/logger": "^0.3.0", + "@open-draft/until": "^2.0.0", + "is-node-process": "^1.2.0", + "outvariant": "^1.4.3", + "strict-event-emitter": "^0.5.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@open-draft/deferred-promise": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", + "dev": true + }, + "node_modules/@open-draft/logger": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", + "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", + "dev": true, + "dependencies": { + "is-node-process": "^1.2.0", + "outvariant": "^1.4.0" + } + }, + "node_modules/@open-draft/until": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", + "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", + "dev": true + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "dev": true + }, + "node_modules/@rails/actioncable": { + "version": "7.2.100", + "resolved": "https://registry.npmjs.org/@rails/actioncable/-/actioncable-7.2.100.tgz", + "integrity": "sha512-7xtIENf0Yw59AFDM3+xqxPCZxev3QVAqjPmUzmgsB9eL8S/zTpB0IU9srNc7XknzJI4e09XKNnCaJRx3gfYzXA==" + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "28.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.0.tgz", + "integrity": "sha512-BJcu+a+Mpq476DMXG+hevgPSl56bkUoi88dKT8t3RyUp8kGuOh+2bU8Gs7zXDlu+fyZggnJ+iOBGrb/O1SorYg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "fdir": "^6.1.1", + "is-reference": "1.2.1", + "magic-string": "^0.30.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.0.tgz", + "integrity": "sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.0.tgz", + "integrity": "sha512-Kzs8KGJofe7cfTRODsnG1jNGxSvU8gVoNNd7Z/QaY25AYwe2LSSUpx/kPxqF38NYkpR8de3m51r9uwJpDlz6dg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.2.tgz", + "integrity": "sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@testing-library/dom": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.5.0.tgz", + "integrity": "sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==", + "dev": true, + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "lodash": "^4.17.21", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true + }, + "node_modules/@testing-library/react": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.0.1.tgz", + "integrity": "sha512-dSmwJVtJXmku+iocRhWOUFbrERC76TX2Mnf0ATODz8brzAZrMBbzLwQixlBSanZxR6LddK3eiwpSFZgDET1URg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0", + "@types/react-dom": "^18.0.0", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@testing-library/user-event": { + "version": "14.5.2", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz", + "integrity": "sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==", + "dev": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "node_modules/@types/statuses": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.5.tgz", + "integrity": "sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==", + "dev": true + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true + }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "dev": true + }, + "node_modules/@vitest/browser": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-2.1.2.tgz", + "integrity": "sha512-tqpGfz2sfjFFNuZ2iLZ6EGRVnH8z18O93ZIicbLsxDhiLgRNz84UcjSvX4pbheuddW+BJeNbLGdM3BU8vohbEg==", + "dev": true, + "dependencies": { + "@testing-library/dom": "^10.4.0", + "@testing-library/user-event": "^14.5.2", + "@vitest/mocker": "2.1.2", + "@vitest/utils": "2.1.2", + "magic-string": "^0.30.11", + "msw": "^2.3.5", + "sirv": "^2.0.4", + "tinyrainbow": "^1.2.0", + "ws": "^8.18.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "playwright": "*", + "vitest": "2.1.2", + "webdriverio": "*" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": true + }, + "safaridriver": { + "optional": true + }, + "webdriverio": { + "optional": true + } + } + }, + "node_modules/@vitest/expect": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.2.tgz", + "integrity": "sha512-FEgtlN8mIUSEAAnlvn7mP8vzaWhEaAEvhSXCqrsijM7K6QqjB11qoRZYEd4AKSCDz8p0/+yH5LzhZ47qt+EyPg==", + "dev": true, + "dependencies": { + "@vitest/spy": "2.1.2", + "@vitest/utils": "2.1.2", + "chai": "^5.1.1", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.2.tgz", + "integrity": "sha512-ExElkCGMS13JAJy+812fw1aCv2QO/LBK6CyO4WOPAzLTmve50gydOlWhgdBJPx2ztbADUq3JVI0C5U+bShaeEA==", + "dev": true, + "dependencies": { + "@vitest/spy": "^2.1.0-beta.1", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.11" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/spy": "2.1.2", + "msw": "^2.3.5", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/mocker/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.2.tgz", + "integrity": "sha512-FIoglbHrSUlOJPDGIrh2bjX1sNars5HbxlcsFKCtKzu4+5lpsRhOCVcuzp0fEhAGHkPZRIXVNzPcpSlkoZ3LuA==", + "dev": true, + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.2.tgz", + "integrity": "sha512-UCsPtvluHO3u7jdoONGjOSil+uON5SSvU9buQh3lP7GgUXHp78guN1wRmZDX4wGK6J10f9NUtP6pO+SFquoMlw==", + "dev": true, + "dependencies": { + "@vitest/utils": "2.1.2", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.2.tgz", + "integrity": "sha512-xtAeNsZ++aRIYIUsek7VHzry/9AcxeULlegBvsdLncLmNCR6tR8SRjn8BbDP4naxtccvzTqZ+L1ltZlRCfBZFA==", + "dev": true, + "dependencies": { + "@vitest/pretty-format": "2.1.2", + "magic-string": "^0.30.11", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.2.tgz", + "integrity": "sha512-GSUi5zoy+abNRJwmFhBDC0yRuVUn8WMlQscvnbbXdKLXX9dE59YbfwXxuJ/mth6eeqIzofU8BB5XDo/Ns/qK2A==", + "dev": true, + "dependencies": { + "tinyspy": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.2.tgz", + "integrity": "sha512-zMO2KdYy6mx56btx9JvAqAZ6EyS3g49krMPPrgOp1yxGZiA93HumGk+bZ5jIZtOg5/VBYl5eBmGRQHqq4FG6uQ==", + "dev": true, + "dependencies": { + "@vitest/pretty-format": "2.1.2", + "loupe": "^3.1.1", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chai": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz", + "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==", + "dev": true, + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "engines": { + "node": ">= 16" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.1.0.tgz", + "integrity": "sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==", + "dev": true, + "dependencies": { + "rrweb-cssom": "^0.7.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "dev": true, + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/fdir": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.0.tgz", + "integrity": "sha512-3oB133prH1o4j/L5lLW7uOCF1PlD+/It2L0eL/iAqWMB91RBbqTewABqxhj0ibBd90EEmWZq7ntIWzVaWcXTGQ==", + "dev": true, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/graphql": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", + "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/headers-polyfill": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz", + "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==", + "dev": true + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/import/-/import-0.0.6.tgz", + "integrity": "sha512-QPhTdjy9J4wUzmWSG7APkSgMFuPGPw+iJTYUblcfc2AfpqaatbwgCldK1HoLYx+v/+lWvab63GWZtNkcnj9JcQ==", + "dependencies": { + "optimist": "0.3.x" + }, + "bin": { + "import": "import" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-node-process": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", + "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", + "dev": true + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsdom": { + "version": "25.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-25.0.1.tgz", + "integrity": "sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==", + "dev": true, + "dependencies": { + "cssstyle": "^4.1.0", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.5", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.12", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.7.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^5.0.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^2.11.2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "peer": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/morphdom": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.4.tgz", + "integrity": "sha512-ATTbWMgGa+FaMU3FhnFYB6WgulCqwf6opOll4CBzmVDTLvPMmUPrEv8CudmLPK0MESa64+6B89fWOxP3+YIlxQ==" + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/msw": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/msw/-/msw-2.4.10.tgz", + "integrity": "sha512-bDQh9b25JK4IKMs5hnamwAkcNZ9RwA4mR/4YcgWkzwHOxj7UICbVJfmChJvY1UCAAMraPpvjHdxjoUDpc3F+Qw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@bundled-es-modules/cookie": "^2.0.0", + "@bundled-es-modules/statuses": "^1.0.1", + "@bundled-es-modules/tough-cookie": "^0.1.6", + "@inquirer/confirm": "^3.0.0", + "@mswjs/interceptors": "^0.35.8", + "@open-draft/until": "^2.1.0", + "@types/cookie": "^0.6.0", + "@types/statuses": "^2.0.4", + "chalk": "^4.1.2", + "graphql": "^16.8.1", + "headers-polyfill": "^4.0.2", + "is-node-process": "^1.2.0", + "outvariant": "^1.4.2", + "path-to-regexp": "^6.3.0", + "strict-event-emitter": "^0.5.1", + "type-fest": "^4.9.0", + "yargs": "^17.7.2" + }, + "bin": { + "msw": "cli/index.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mswjs" + }, + "peerDependencies": { + "typescript": ">= 4.8.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.13", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz", + "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==", + "dev": true + }, + "node_modules/optimist": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", + "integrity": "sha512-TCx0dXQzVtSCg2OgY/bO9hjM9cV4XYx09TVK+s3+FhkjT6LovsLe+pPMzpWf+6yXK/hUizs2gUoTw3jHM0VaTQ==", + "dependencies": { + "wordwrap": "~0.0.2" + } + }, + "node_modules/outvariant": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz", + "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==", + "dev": true + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "dev": true + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", + "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "dev": true + }, + "node_modules/strict-event-emitter": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", + "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true + }, + "node_modules/tinyexec": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.0.tgz", + "integrity": "sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==", + "dev": true + }, + "node_modules/tinypool": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz", + "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==", + "dev": true, + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tldts": { + "version": "6.1.50", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.50.tgz", + "integrity": "sha512-q9GOap6q3KCsLMdOjXhWU5jVZ8/1dIib898JBRLsN+tBhENpBDcAVQbE0epADOjw11FhQQy9AcbqKGBQPUfTQA==", + "dev": true, + "dependencies": { + "tldts-core": "^6.1.50" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.50", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.50.tgz", + "integrity": "sha512-na2EcZqmdA2iV9zHV7OHQDxxdciEpxrjbkp+aHmZgnZKHzoElLajP59np5/4+sare9fQBfixgvXKx8ev1d7ytw==", + "dev": true + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.0.0.tgz", + "integrity": "sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==", + "dev": true, + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "dev": true, + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "dev": true + }, + "node_modules/type-fest": { + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/vite": { + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", + "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.2.tgz", + "integrity": "sha512-HPcGNN5g/7I2OtPjLqgOtCRu/qhVvBxTUD3qzitmL0SrG1cWFzxzhMDWussxSbrRYWqnKf8P2jiNhPMSN+ymsQ==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.6", + "pathe": "^1.1.2", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.2.tgz", + "integrity": "sha512-veNjLizOMkRrJ6xxb+pvxN6/QAWg95mzcRjtmkepXdN87FNfxAss9RKe2far/G9cQpipfgP2taqg0KiWsquj8A==", + "dev": true, + "dependencies": { + "@vitest/expect": "2.1.2", + "@vitest/mocker": "2.1.2", + "@vitest/pretty-format": "^2.1.2", + "@vitest/runner": "2.1.2", + "@vitest/snapshot": "2.1.2", + "@vitest/spy": "2.1.2", + "@vitest/utils": "2.1.2", + "chai": "^5.1.1", + "debug": "^4.3.6", + "magic-string": "^0.30.11", + "pathe": "^1.1.2", + "std-env": "^3.7.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.0", + "tinypool": "^1.0.0", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.2", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.2", + "@vitest/ui": "2.1.2", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", + "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", + "dev": true, + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/lib/clapton/javascripts/package.json b/lib/clapton/javascripts/package.json new file mode 100644 index 0000000..6eaa372 --- /dev/null +++ b/lib/clapton/javascripts/package.json @@ -0,0 +1,29 @@ +{ + "name": "clapton", + "scripts": { + "build": "rollup -c", + "test": "vitest", + "dev": "rollup -c -w" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@rollup/plugin-commonjs": "^28.0.0", + "@rollup/plugin-node-resolve": "^15.3.0", + "@rollup/plugin-typescript": "^12.1.0", + "@testing-library/jest-dom": "^6.5.0", + "@testing-library/react": "^16.0.1", + "@vitest/browser": "^2.1.2", + "jsdom": "^25.0.1", + "rollup": "^4.24.0", + "tslib": "^2.7.0", + "typescript": "^5.5.4", + "vitest": "^2.1.2" + }, + "dependencies": { + "@rails/actioncable": "^7.2.100", + "import": "^0.0.6", + "morphdom": "^2.7.4" + } +} diff --git a/lib/clapton/javascripts/rollup.config.mjs b/lib/clapton/javascripts/rollup.config.mjs new file mode 100644 index 0000000..ff92538 --- /dev/null +++ b/lib/clapton/javascripts/rollup.config.mjs @@ -0,0 +1,36 @@ +import resolve from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; +import typescript from '@rollup/plugin-typescript'; + +export default [ + { + input: 'src/components.ts', + output: { + file: 'dist/components.js', + format: 'iife', + name: 'Clapton' + }, + plugins: [ + resolve(), + commonjs(), + typescript({ + tsconfig: './tsconfig.json', + sourceMap: false + }) + ] + }, + { + input: 'src/client.ts', + output: { + file: 'dist/client.js', + }, + plugins: [ + resolve(), + commonjs(), + typescript({ + tsconfig: './tsconfig.json', + sourceMap: false + }) + ] + } +]; diff --git a/lib/clapton/javascripts/src/actions/handle-action.spec.ts b/lib/clapton/javascripts/src/actions/handle-action.spec.ts new file mode 100644 index 0000000..fd74d6d --- /dev/null +++ b/lib/clapton/javascripts/src/actions/handle-action.spec.ts @@ -0,0 +1,46 @@ +import { handleAction } from "./handle-action"; +import { describe, it, expect, vi } from "vitest"; +import { claptonChannel } from "../channel/clapton-channel" + +describe("handleAction", () => { + it("runs the action and calls claptonChannel.perform", async () => { + const componentWrapper = document.createElement("div"); + componentWrapper.innerHTML = `

`; + + const input = document.createElement("input"); + input.setAttribute("data-attribute", "testAttribute"); + input.value = "updated"; + + const component = componentWrapper.firstChild as HTMLElement; + component.appendChild(input); + + document.body.appendChild(component); + + const performSpy = vi.spyOn(claptonChannel, "perform"); + + await handleAction(input, "TestState", "testFunction"); + + expect(component.getAttribute("data-state")).toBe('{"testAttribute":"updated"}'); + expect(performSpy).toHaveBeenCalledWith("action", { + action: "action", + data: { + state: { + name: "TestState", + action: "testFunction", + attributes: { + testAttribute: "updated" + } + }, + component: { + name: "TestComponent", + id: "1", + }, + params: { + testAttribute: "updated" + } + } + }); + + performSpy.mockRestore(); + }); +}); diff --git a/lib/clapton/javascripts/src/actions/handle-action.ts b/lib/clapton/javascripts/src/actions/handle-action.ts new file mode 100644 index 0000000..bfb12bb --- /dev/null +++ b/lib/clapton/javascripts/src/actions/handle-action.ts @@ -0,0 +1,32 @@ +import { claptonChannel } from "../channel/clapton-channel"; + +export const handleAction = async (target: HTMLElement, stateName: string, fn: string) => { + const targetComponent = target.closest(`[data-component="${stateName.replace("State", "Component")}"]`) as HTMLElement; + if (!targetComponent) return; + const component = target.closest(`[data-component]`) as HTMLElement; + const attribute = target.getAttribute("data-attribute"); + if (attribute) { + const state = JSON.parse(component.getAttribute("data-state") || "{}"); + if (target.tagName === "INPUT") { + state[attribute] = (target as HTMLInputElement).value; + component.setAttribute("data-state", JSON.stringify(state)); + } + }; + claptonChannel.perform( + "action", + { + data: { + component: { + name: stateName.replace("State", "Component"), + id: targetComponent.getAttribute("data-id"), + }, + state: { + name: stateName, + action: fn, + attributes: JSON.parse(targetComponent.getAttribute("data-state") || "{}"), + }, + params: JSON.parse(component.getAttribute("data-state") || "{}") + } + } + ); +}; diff --git a/lib/clapton/javascripts/src/actions/initialize-actions.ts b/lib/clapton/javascripts/src/actions/initialize-actions.ts new file mode 100644 index 0000000..41ee9bb --- /dev/null +++ b/lib/clapton/javascripts/src/actions/initialize-actions.ts @@ -0,0 +1,28 @@ +import { splitActionAttribute } from "../html/split-action-attribute"; +import { handleAction } from "./handle-action"; +import { debounce } from "../utils/debounce"; + +export const initializeActions = () => { + const actionElements = document.querySelectorAll("[data-action]"); + actionElements.forEach((element) => initializeActionsForElement(element as HTMLElement)); +}; + +const initializeActionsForElement = (element: HTMLElement) => { + if (element.getAttribute("data-set-event-handler")) return; + const actions = element.getAttribute("data-action")?.split(" ") || []; + actions.forEach(action => { + const { eventType, componentName, stateName, fnName, bounceTime } = splitActionAttribute(action); + if (!eventType || !componentName || !fnName) return; + + if (bounceTime > 0) { + element.addEventListener(eventType, debounce((event) => + handleAction(event.target as HTMLElement, stateName, fnName), bounceTime) + ); + } else { + element.addEventListener(eventType, (event) => + handleAction(event.target as HTMLElement, stateName, fnName) + ); + } + element.setAttribute("data-set-event-handler", "true"); + }); +}; diff --git a/lib/clapton/javascripts/src/channel/clapton-channel.js b/lib/clapton/javascripts/src/channel/clapton-channel.js new file mode 100644 index 0000000..cad9821 --- /dev/null +++ b/lib/clapton/javascripts/src/channel/clapton-channel.js @@ -0,0 +1,25 @@ +import morphdom from "morphdom" +import { createConsumer } from "@rails/actioncable" +import { initializeActions } from "../actions/initialize-actions.ts" + +const consumer = createConsumer() + +export const claptonChannel = consumer.subscriptions.create("Clapton::ClaptonChannel", { + connected() {}, + + disconnected() {}, + + received(response) { + const { data, errors } = response; + const component = document.querySelector(`[data-id="${data.component.id}"]`) + const instance = new window[data.component.name](data.state, data.component.id, errors); + morphdom(component, instance.render, { + onBeforeElUpdated: (_fromEl, toEl) => { + toEl.setAttribute("data-set-event-handler", "true"); + return true; + } + }); + initializeInputs(); + initializeActions(); + } +}) diff --git a/lib/clapton/javascripts/src/client.ts b/lib/clapton/javascripts/src/client.ts new file mode 100644 index 0000000..0f16a7d --- /dev/null +++ b/lib/clapton/javascripts/src/client.ts @@ -0,0 +1,37 @@ +import { splitActionAttribute } from "./html/split-action-attribute" +import { updateComponent } from "./dom/update-component" +import { handleAction } from "./actions/handle-action" +import { initializeActions } from "actions/initialize-actions"; +import { initializeInputs } from "inputs/initialize-inputs"; + +interface ComponentDefinition { + component: new (state: any) => ComponentInstance; + state: any; + id: string; +} + +interface ComponentInstance { + render: string; + [key: string]: any; +} + +const initializeComponents = () => { + const components = document.querySelector("#clapton")?.getAttribute("data-clapton") || "[]"; + JSON.parse(components).forEach(createAndAppendComponent); +}; + +const createAndAppendComponent = (component: ComponentDefinition) => { + const componentDom = document.createElement('div'); + const instance = new (window[component.component as any] as any)(component.state); + componentDom.innerHTML = instance.render; + const firstChild = componentDom.firstChild as HTMLElement; + if (firstChild) { + document.querySelector("#clapton")?.appendChild(firstChild); + } +}; + +document.addEventListener("DOMContentLoaded", () => { + initializeComponents(); + initializeActions(); + initializeInputs(); +}); diff --git a/lib/clapton/javascripts/src/components.ts b/lib/clapton/javascripts/src/components.ts new file mode 100644 index 0000000..d8113a5 --- /dev/null +++ b/lib/clapton/javascripts/src/components.ts @@ -0,0 +1,9 @@ +import { Box } from "./components/box" +import { Component } from "./components/component" +import { Text } from "./components/text" +import { TextField } from "./components/text-field" +import { Link } from "./components/link" +import { Button } from "./components/button" +import { DateTimeField } from "./components/datetime-field" + +export { Box, Component, Text, TextField, Link, Button, DateTimeField }; diff --git a/lib/clapton/javascripts/src/components/box.spec.ts b/lib/clapton/javascripts/src/components/box.spec.ts new file mode 100644 index 0000000..db84416 --- /dev/null +++ b/lib/clapton/javascripts/src/components/box.spec.ts @@ -0,0 +1,23 @@ +import { describe, it, expect } from "vitest" +import { Box } from "./box" +import { Text } from "./text" + +describe("Box", () => { + it("returns empty string if no params", () => { + expect(new Box().render).toBe("
") + }) + + it("returns attributes and data attributes", () => { + expect(new Box({ id: "1", "data-foo": "bar" }).render).toBe(`
`) + }) + + it("returns attributes and data attributes with custom data attributes", () => { + expect(new Box({ id: "1", data: { foo: "bar" } }).render).toBe(`
`) + expect(new Box({ id: "1", data: { foo: "bar", baz: "qux" } }).render).toBe(`
`) + expect(new Box({ id: "1", data: { foo: { baz: "qux", quux: "corge" } } }).render).toBe(`
`) + }) + + it("adds children", () => { + expect(new Box().add(new Text("Hello, world!")).render).toBe(`
Hello, world!
`) + }) +}) diff --git a/lib/clapton/javascripts/src/components/box.ts b/lib/clapton/javascripts/src/components/box.ts new file mode 100644 index 0000000..76f37a5 --- /dev/null +++ b/lib/clapton/javascripts/src/components/box.ts @@ -0,0 +1,20 @@ +import { htmlAttributes } from "../html/html-attributes"; + +export class Box { + attributes: Record; + children: any[]; + + constructor(attributes: Record = {}) { + this.children = []; + this.attributes = attributes; + } + + add(child: any): this { + this.children.push(child); + return this; + } + + get render(): string { + return `
${this.children.map(child => child.render).join("")}
`; + } +} diff --git a/lib/clapton/javascripts/src/components/button.spec.ts b/lib/clapton/javascripts/src/components/button.spec.ts new file mode 100644 index 0000000..ce2d59f --- /dev/null +++ b/lib/clapton/javascripts/src/components/button.spec.ts @@ -0,0 +1,18 @@ +import { describe, it, expect } from "vitest" +import { Button } from "./button" + +describe("Button", () => { + it("returns empty string if no params", () => { + expect(new Button().render).toBe("") + }) + + it("returns attributes and data attributes", () => { + expect(new Button({ id: "1", "data-foo": "bar" }).render).toBe(``) + }) + + it("returns attributes and data attributes with custom data attributes", () => { + expect(new Button({ id: "1", data: { foo: "bar" } }).render).toBe(``) + expect(new Button({ id: "1", data: { foo: "bar", baz: "qux" } }).render).toBe(``) + expect(new Button({ id: "1", data: { foo: { baz: "qux", quux: "corge" } } }).render).toBe(``) + }) +}) diff --git a/lib/clapton/javascripts/src/components/button.ts b/lib/clapton/javascripts/src/components/button.ts new file mode 100644 index 0000000..c1d340e --- /dev/null +++ b/lib/clapton/javascripts/src/components/button.ts @@ -0,0 +1,25 @@ +import { htmlAttributes } from "../html/html-attributes"; + +export class Button { + attributes: Record; + children: any[]; + + constructor(attributes: Record = {}) { + this.attributes = attributes; + this.children = []; + } + + add(child: any): Button { + this.children.push(child); + return this; + } + + get render(): string { + return ``; + } + + add_action(event: string, klass: string, fn: string, options: Record = {}): Button { + this.attributes["data-action"] = `${this.attributes["data-action"] || ""} ${event}->${klass}#${fn}@${options.debounce || 0}`; + return this; + } +} diff --git a/lib/clapton/javascripts/src/components/component.spec.ts b/lib/clapton/javascripts/src/components/component.spec.ts new file mode 100644 index 0000000..1acf77a --- /dev/null +++ b/lib/clapton/javascripts/src/components/component.spec.ts @@ -0,0 +1,16 @@ +import { describe, it, expect } from "vitest" +import { Component } from "./component" +import { Text } from "./text" + +class TestComponent extends Component { + get render() { + this._root.add(new Text("Hello, world!")) + return this._root.render + } +} + +describe("Component", () => { + it("returns empty string if no params", () => { + expect(new TestComponent().render).toMatch(/
Hello, world!<\/div>/) + }) +}) diff --git a/lib/clapton/javascripts/src/components/component.ts b/lib/clapton/javascripts/src/components/component.ts new file mode 100644 index 0000000..0b4c63b --- /dev/null +++ b/lib/clapton/javascripts/src/components/component.ts @@ -0,0 +1,19 @@ +import { Box } from "./box"; + +export class Component { + id: string; + _state: any; + _errors: any[]; + _root: Box; + + constructor(state: any = {}, id: string = Math.random().toString(36).substring(2, 10), errors: any[] = []) { + this._state = state; + this.id = id; + this._errors = errors; + this._root = new Box({ data: { component: this.constructor.name, state: JSON.stringify(this._state), id: this.id, errors: this._errors } }); + } + + get render(): string { + return this._root.render; + } +} diff --git a/lib/clapton/javascripts/src/components/datetime-field.spec.ts b/lib/clapton/javascripts/src/components/datetime-field.spec.ts new file mode 100644 index 0000000..af3285b --- /dev/null +++ b/lib/clapton/javascripts/src/components/datetime-field.spec.ts @@ -0,0 +1,16 @@ +import { describe, it, expect } from "vitest" +import { DateTimeField } from "./datetime-field" + +describe("DateTimeField", () => { + it("returns empty string if no params", () => { + expect(new DateTimeField({}, "foo").render).toBe("") + }) + + it("returns attributes and data attributes", () => { + expect(new DateTimeField({ foo: new Date("2024-10-12T12:00") }, "foo", { id: "1", "data-foo": "bar" }).render).toMatch(//) + }) + + it("returns attributes and data attributes with custom data attributes", () => { + expect(new DateTimeField({ foo: new Date("2024-10-12T12:00") }, "foo", { id: "1", data: { foo: { baz: "qux", quux: "corge" } } }).render).toMatch(//) + }) +}) diff --git a/lib/clapton/javascripts/src/components/datetime-field.ts b/lib/clapton/javascripts/src/components/datetime-field.ts new file mode 100644 index 0000000..469e5e9 --- /dev/null +++ b/lib/clapton/javascripts/src/components/datetime-field.ts @@ -0,0 +1,49 @@ +import { htmlAttributes } from "../html/html-attributes"; + +export class DateTimeField { + state: any; + attribute: string; + attributes: Record = {}; + + constructor(state: any, attribute: string, attributes: Record = {}) { + this.state = state; + this.attribute = attribute; + this.attributes = attributes; + this.attributes["data-attribute"] = attribute; + } + + get render(): string { + const value = this.state[this.attribute] ? this.datetime_local_value(this.state[this.attribute]) : ""; + return ``; + } + + add_action(event: string, klass: string, fn: string, options: { debounce?: number } = {}): DateTimeField { + this.attributes["data-action"] = `${this.attributes["data-action"] || ""} ${event}->${klass}#${fn}@${options.debounce || 0}`; + return this; + } + + datetime_local_value(value: string): string { + if (!value) { + return ""; + } + const date = new Date(value); + date.setMinutes(date.getMinutes() - date.getTimezoneOffset()); + let month: string | number = date.getMonth() + 1; + let day: string | number = date.getDate(); + let hours: string | number = date.getHours(); + let minutes: string | number = date.getMinutes(); + if (month < 10) { + month = `0${month}`; + } + if (day < 10) { + day = `0${day}`; + } + if (hours < 10) { + hours = `0${hours}`; + } + if (minutes < 10) { + minutes = `0${minutes}`; + } + return `${date.getFullYear()}-${month}-${day}T${hours}:${minutes}`; + } +} diff --git a/lib/clapton/javascripts/src/components/link.spec.ts b/lib/clapton/javascripts/src/components/link.spec.ts new file mode 100644 index 0000000..75d1c83 --- /dev/null +++ b/lib/clapton/javascripts/src/components/link.spec.ts @@ -0,0 +1,18 @@ +import { describe, it, expect } from "vitest" +import { Link } from "./link" + +describe("Link", () => { + it("returns empty string if no params", () => { + expect(new Link().render).toBe("") + }) + + it("returns attributes and data attributes", () => { + expect(new Link({ id: "1", "data-foo": "bar" }).render).toBe(``) + }) + + it("returns attributes and data attributes with custom data attributes", () => { + expect(new Link({ id: "1", data: { foo: "bar" } }).render).toBe(``) + expect(new Link({ id: "1", data: { foo: "bar", baz: "qux" } }).render).toBe(``) + expect(new Link({ id: "1", data: { foo: { baz: "qux", quux: "corge" } } }).render).toBe(``) + }) +}) diff --git a/lib/clapton/javascripts/src/components/link.ts b/lib/clapton/javascripts/src/components/link.ts new file mode 100644 index 0000000..aa3c813 --- /dev/null +++ b/lib/clapton/javascripts/src/components/link.ts @@ -0,0 +1,20 @@ +import { htmlAttributes } from "../html/html-attributes"; + +export class Link { + attributes: Record; + children: any[]; + + constructor(attributes: Record = {}) { + this.children = []; + this.attributes = attributes; + } + + get render(): string { + return `${this.children.map(child => child.render).join("")}`; + } + + add(child: any): Link { + this.children.push(child); + return this; + } +} diff --git a/lib/clapton/javascripts/src/components/text-field.spec.ts b/lib/clapton/javascripts/src/components/text-field.spec.ts new file mode 100644 index 0000000..0baad67 --- /dev/null +++ b/lib/clapton/javascripts/src/components/text-field.spec.ts @@ -0,0 +1,16 @@ +import { describe, it, expect } from "vitest" +import { TextField } from "./text-field" + +describe("TextField", () => { + it("returns empty string if no params", () => { + expect(new TextField({}, "foo").render).toBe("") + }) + + it("returns attributes and data attributes", () => { + expect(new TextField({ foo: "bar" }, "foo", { id: "1", "data-foo": "bar" }).render).toBe(``) + }) + + it("returns attributes and data attributes with custom data attributes", () => { + expect(new TextField({ foo: "bar" }, "foo", { id: "1", data: { foo: { baz: "qux", quux: "corge" } } }).render).toBe(``) + }) +}) diff --git a/lib/clapton/javascripts/src/components/text-field.ts b/lib/clapton/javascripts/src/components/text-field.ts new file mode 100644 index 0000000..7bcfaed --- /dev/null +++ b/lib/clapton/javascripts/src/components/text-field.ts @@ -0,0 +1,23 @@ +import { htmlAttributes } from "../html/html-attributes"; + +export class TextField { + state: any; + attribute: string; + attributes: Record; + + constructor(state: any, attribute: string, attributes: Record = {}) { + this.state = state; + this.attributes = attributes; + this.attribute = attribute; + this.attributes["data-attribute"] = attribute; + } + + get render(): string { + return ``; + } + + add_action(event: string, klass: string, fn: string, options: { debounce?: number } = {}): TextField { + this.attributes["data-action"] = `${this.attributes["data-action"] || ""} ${event}->${klass}#${fn}@${options.debounce || 0}`; + return this; + } +} diff --git a/lib/clapton/javascripts/src/components/text.spec.ts b/lib/clapton/javascripts/src/components/text.spec.ts new file mode 100644 index 0000000..03c318f --- /dev/null +++ b/lib/clapton/javascripts/src/components/text.spec.ts @@ -0,0 +1,12 @@ +import { describe, it, expect } from "vitest" +import { Text } from "./text" + +describe("Text", () => { + it("returns empty string if no params", () => { + expect(new Text("").render).toBe("") + }) + + it("returns value", () => { + expect(new Text("bar").render).toBe("bar") + }) +}) diff --git a/lib/clapton/javascripts/src/components/text.ts b/lib/clapton/javascripts/src/components/text.ts new file mode 100644 index 0000000..70d1fd0 --- /dev/null +++ b/lib/clapton/javascripts/src/components/text.ts @@ -0,0 +1,11 @@ +export class Text { + value: string; + + constructor(value: string) { + this.value = value; + } + + get render(): string { + return this.value; + } +} diff --git a/lib/clapton/javascripts/src/dom/update-component.spec.ts b/lib/clapton/javascripts/src/dom/update-component.spec.ts new file mode 100644 index 0000000..0671692 --- /dev/null +++ b/lib/clapton/javascripts/src/dom/update-component.spec.ts @@ -0,0 +1,32 @@ +import { updateComponent } from "./update-component"; +import { describe, it, expect } from "vitest"; + +describe("updateComponent", () => { + it("updates the component", () => { + const component = document.createElement("div"); + component.innerHTML = `
`; + + const input = document.createElement("div"); + input.innerHTML = ``; + + class TestComponent { + state: any; + constructor(state: any) { + this.state = state; + } + get render() { + return `
${this.state.testAttribute}
`; + } + }; + (window as any).TestComponent = TestComponent; + + updateComponent( + component.firstChild as HTMLElement, + JSON.parse(component.getAttribute("data-state") || "{}"), + "testAttribute", + input.firstChild as HTMLInputElement + ); + + expect(component.textContent).toBe("updated"); + }); +}); diff --git a/lib/clapton/javascripts/src/dom/update-component.ts b/lib/clapton/javascripts/src/dom/update-component.ts new file mode 100644 index 0000000..22bdcc1 --- /dev/null +++ b/lib/clapton/javascripts/src/dom/update-component.ts @@ -0,0 +1,10 @@ +import morphdom from "morphdom"; + +export const updateComponent = (component: HTMLElement, state: any, property: string, target: HTMLInputElement) => { + state[property] = target.value; + component.setAttribute("data-state", JSON.stringify(state)); + const componentName = component.getAttribute("data-component") as string; + const ComponentClass = window[componentName as any] as any; + const instance = new ComponentClass(state, component.dataset.id); + morphdom(component, instance.render); +}; diff --git a/lib/clapton/javascripts/src/html/html-attributes.spec.ts b/lib/clapton/javascripts/src/html/html-attributes.spec.ts new file mode 100644 index 0000000..81d7870 --- /dev/null +++ b/lib/clapton/javascripts/src/html/html-attributes.spec.ts @@ -0,0 +1,27 @@ +import { describe, it, expect } from 'vitest' +import { htmlAttributes } from './html-attributes' + +describe('htmlAttributes', () => { + it("returns empty string if no params", () => { + expect(htmlAttributes({})).toBe("") + }) + + it("returns attributes and data attributes", () => { + expect(htmlAttributes({ id: "1", "data-foo": "bar" })).toBe(`id='1' data-foo='bar'`) + }) + + it('returns attributes and data attributes with custom data attributes', () => { + expect(htmlAttributes({ id: '1', data: { foo: 'bar' } })).toBe(`id='1' data-foo='bar'`) + expect(htmlAttributes({ id: '1', data: { foo: 'bar', baz: 'qux' } })).toBe(`id='1' data-foo='bar' data-baz='qux'`) + expect(htmlAttributes({ id: '1', data: { foo: { baz: 'qux', quux: 'corge' } } })).toBe(`id='1' data-foo-baz='qux' data-foo-quux='corge'`) + }) + + it('returns disabled if disabled is false', () => { + expect(htmlAttributes({ disabled: false })).toBe("") + expect(htmlAttributes({ disabled: true })).toBe("disabled") + }) + + it('escapes html', () => { + expect(htmlAttributes({ content: "" })).toBe(`content='<script>alert('xss')</script>'`) + }) +}) diff --git a/lib/clapton/javascripts/src/html/html-attributes.ts b/lib/clapton/javascripts/src/html/html-attributes.ts new file mode 100644 index 0000000..57690c1 --- /dev/null +++ b/lib/clapton/javascripts/src/html/html-attributes.ts @@ -0,0 +1,42 @@ +export const htmlAttributes = (params: Record) => { + const customDataAttributes = params.data || {} + const others = Object.keys(params).filter(key => key !== "data") + + const flattenDataAttributes = (data: Record, prefix = "data") => { + return Object.keys(data).reduce((acc, key) => { + const value = data[key] + if (typeof value === "object" && value !== null) { + acc.push(...flattenDataAttributes(value, `${prefix}-${key}`)) + } else { + acc.push(`${prefix}-${key}='${escapeHtml(value)}'`) + } + return acc + }, [] as string[]) + } + + return [ + others.map(key => { + if (key === "disabled") { + if (params[key] === false) { + return "" + } else { + return `${key}` + } + } + return `${key}='${escapeHtml(params[key])}'` + }).join(" "), + flattenDataAttributes(customDataAttributes).join(" ") + ].filter(Boolean).join(" ") +} + +const escapeHtml = (unsafe: string) => { + if (typeof unsafe !== "string") { + return "" + } + return unsafe + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); +} diff --git a/lib/clapton/javascripts/src/html/split-action-attribute.spec.ts b/lib/clapton/javascripts/src/html/split-action-attribute.spec.ts new file mode 100644 index 0000000..c9cd234 --- /dev/null +++ b/lib/clapton/javascripts/src/html/split-action-attribute.spec.ts @@ -0,0 +1,18 @@ +import { describe, it, expect } from 'vitest' +import { splitActionAttribute } from './split-action-attribute' + +describe('splitActionAttribute', () => { + it("returns empty object if no action", () => { + expect(splitActionAttribute("")).toEqual({ + eventType: "", + componentName: "", + stateName: "", + fnName: "", + bounceTime: 0 + }) + }) + + it("returns eventType, componentName, stateName, fnName, bounceTime", () => { + expect(splitActionAttribute("click->ChatState#send_message@10")).toEqual({ eventType: "click", componentName: "ChatComponent", stateName: "ChatState", fnName: "send_message", bounceTime: 10 }) + }) +}) diff --git a/lib/clapton/javascripts/src/html/split-action-attribute.ts b/lib/clapton/javascripts/src/html/split-action-attribute.ts new file mode 100644 index 0000000..2644663 --- /dev/null +++ b/lib/clapton/javascripts/src/html/split-action-attribute.ts @@ -0,0 +1,6 @@ +export const splitActionAttribute = (action: string) => { + const match = action.match(/^(.+)->(.+)#(.+)@(\d+)$/); + const componentName = match?.[2].replace("State", "Component"); + if (!match) return { eventType: "", componentName: "", stateName: "", fnName: "", bounceTime: 0 }; + return { eventType: match[1], componentName: componentName, stateName: match[2], fnName: match[3], bounceTime: parseInt(match[4] || "0") }; +}; diff --git a/lib/clapton/javascripts/src/inputs/initialize-inputs.ts b/lib/clapton/javascripts/src/inputs/initialize-inputs.ts new file mode 100644 index 0000000..c24851e --- /dev/null +++ b/lib/clapton/javascripts/src/inputs/initialize-inputs.ts @@ -0,0 +1,16 @@ +import { updateComponent } from "dom/update-component"; + +export const initializeInputs = () => { + const inputElements = document.querySelectorAll("[data-attribute]"); + inputElements.forEach((element: any) => { + const attribute = element.getAttribute("data-attribute"); + const component = element.closest(`[data-component]`) as HTMLElement; + const state = JSON.parse(component.getAttribute("data-state") || "{}"); + if (!attribute || !component) return; + if (element.tagName === "INPUT") { + element.addEventListener("input", (event: Event) => { + updateComponent(component, state, attribute, event.target as HTMLInputElement); + }); + } + }); +}; diff --git a/lib/clapton/javascripts/src/utils/debounce.ts b/lib/clapton/javascripts/src/utils/debounce.ts new file mode 100644 index 0000000..cbac8a1 --- /dev/null +++ b/lib/clapton/javascripts/src/utils/debounce.ts @@ -0,0 +1,7 @@ +export const debounce = (fn: (...args: any[]) => void, delay: number) => { + let timer: NodeJS.Timeout | undefined = undefined; + return (...args: any[]) => { + clearTimeout(timer); + timer = setTimeout(() => fn(...args), delay); + }; +}; diff --git a/lib/clapton/javascripts/tsconfig.json b/lib/clapton/javascripts/tsconfig.json new file mode 100644 index 0000000..98887fb --- /dev/null +++ b/lib/clapton/javascripts/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "ES2020", + "moduleResolution": "node", + "esModuleInterop": true, + "strict": true, + "sourceMap": true, + "outDir": "./dist", + "rootDir": "./src", + "baseUrl": "./src", + "allowJs": true, + "resolveJsonModule": true + }, + "include": ["src/**/*"], + "exclude": ["node_modules"] +} diff --git a/lib/clapton/javascripts/vitest.config.js b/lib/clapton/javascripts/vitest.config.js new file mode 100644 index 0000000..83971b9 --- /dev/null +++ b/lib/clapton/javascripts/vitest.config.js @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + environment: 'jsdom', + // 他の設定... + }, +}) diff --git a/lib/clapton/railtie.rb b/lib/clapton/railtie.rb new file mode 100644 index 0000000..fba6507 --- /dev/null +++ b/lib/clapton/railtie.rb @@ -0,0 +1,4 @@ +module Clapton + class Railtie < ::Rails::Railtie + end +end diff --git a/lib/clapton/state.rb b/lib/clapton/state.rb new file mode 100644 index 0000000..2eba414 --- /dev/null +++ b/lib/clapton/state.rb @@ -0,0 +1,25 @@ +module Clapton + class State + attr_reader :attributes + attr_accessor :errors + + def initialize(params = {}) + @attributes = params + @errors = [] + end + + def to_h + @attributes + end + + def self.attribute(attribute_name) + define_method(attribute_name) do + @attributes[attribute_name.to_sym] + end + + define_method("#{attribute_name}=") do |value| + @attributes[attribute_name.to_sym] = value + end + end + end +end diff --git a/lib/clapton/test_helper/base.rb b/lib/clapton/test_helper/base.rb new file mode 100644 index 0000000..f8cc011 --- /dev/null +++ b/lib/clapton/test_helper/base.rb @@ -0,0 +1,22 @@ +module Clapton + module TestHelper + module Base + require "execjs" + + def render_component(component, **kwargs) + js = File.read(File.join(__dir__, "..", "javascripts", "dist", "components.js")) + Dir.glob(Rails.root.join("app", "components", "**", "*.rb")).each do |file| + js += Ruby2JS.convert(File.read(file), preset: true) + js += "\n" + end + context = ExecJS.compile(js) + html = context.eval("new #{component.name.camelize}(#{kwargs.to_json}).render") + @page = Capybara.string(html) + end + + def page + @page + end + end + end +end diff --git a/lib/clapton/test_helper/minitest.rb b/lib/clapton/test_helper/minitest.rb new file mode 100644 index 0000000..96b3a44 --- /dev/null +++ b/lib/clapton/test_helper/minitest.rb @@ -0,0 +1,12 @@ +require "clapton/test_helper/base" + +module Clapton + module TestHelper + module Minitest + require "capybara/minitest" + + include Clapton::TestHelper::Base + include Capybara::Minitest::Assertions + end + end +end diff --git a/lib/clapton/test_helper/rspec.rb b/lib/clapton/test_helper/rspec.rb new file mode 100644 index 0000000..078a487 --- /dev/null +++ b/lib/clapton/test_helper/rspec.rb @@ -0,0 +1,12 @@ +require "clapton/test_helper/base" + +module Clapton + module TestHelper + module RSpec + require "capybara/rspec" + + include Clapton::TestHelper::Base + include Capybara::RSpecMatchers + end + end +end diff --git a/lib/clapton/version.rb b/lib/clapton/version.rb new file mode 100644 index 0000000..1f1381e --- /dev/null +++ b/lib/clapton/version.rb @@ -0,0 +1,3 @@ +module Clapton + VERSION = '0.1.0' +end diff --git a/lib/tasks/clapton_tasks.rake b/lib/tasks/clapton_tasks.rake new file mode 100644 index 0000000..50d2357 --- /dev/null +++ b/lib/tasks/clapton_tasks.rake @@ -0,0 +1,4 @@ +# desc "Explaining what the task does" +# task :clapton do +# # Task goes here +# end diff --git a/test/clapton/state_test.rb b/test/clapton/state_test.rb new file mode 100644 index 0000000..eaf4940 --- /dev/null +++ b/test/clapton/state_test.rb @@ -0,0 +1,33 @@ +require "test_helper" + +class TestState < Clapton::State + attribute :foo + attribute :bar + attribute :items +end + +class StateSpec < ActiveSupport::TestCase + test "can define state" do + state = TestState.new + assert_equal({}, state.attributes) + end + + test "can set and get multiple states" do + state = TestState.new + state.foo = "bar" + state.bar = "baz" + assert_equal("bar", state.foo) + assert_equal("baz", state.bar) + end + + test "can set attributes with a hash" do + state = TestState.new(foo: "bar", bar: "baz") + assert_equal({ foo: "bar", bar: "baz" }, state.to_h) + end + + test "can set array attributes" do + state = TestState.new(items: ["foo", "bar"]) + state.items << "baz" + assert_equal(["foo", "bar", "baz"], state.items) + end +end diff --git a/test/clapton_test.rb b/test/clapton_test.rb new file mode 100644 index 0000000..1ef9d67 --- /dev/null +++ b/test/clapton_test.rb @@ -0,0 +1,7 @@ +require "test_helper" + +class ClaptonTest < ActiveSupport::TestCase + test "it has a version number" do + assert Clapton::VERSION + end +end diff --git a/test/dummy/.rspec b/test/dummy/.rspec new file mode 100644 index 0000000..c99d2e7 --- /dev/null +++ b/test/dummy/.rspec @@ -0,0 +1 @@ +--require spec_helper diff --git a/test/dummy/Rakefile b/test/dummy/Rakefile new file mode 100644 index 0000000..9a5ea73 --- /dev/null +++ b/test/dummy/Rakefile @@ -0,0 +1,6 @@ +# Add your own tasks in files placed in lib/tasks ending in .rake, +# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. + +require_relative "config/application" + +Rails.application.load_tasks diff --git a/test/dummy/app/assets/config/manifest.js b/test/dummy/app/assets/config/manifest.js new file mode 100644 index 0000000..5918193 --- /dev/null +++ b/test/dummy/app/assets/config/manifest.js @@ -0,0 +1,2 @@ +//= link_tree ../images +//= link_directory ../stylesheets .css diff --git a/test/dummy/app/assets/images/.keep b/test/dummy/app/assets/images/.keep new file mode 100644 index 0000000..e69de29 diff --git a/test/dummy/app/assets/stylesheets/application.css b/test/dummy/app/assets/stylesheets/application.css new file mode 100644 index 0000000..0ebd7fe --- /dev/null +++ b/test/dummy/app/assets/stylesheets/application.css @@ -0,0 +1,15 @@ +/* + * This is a manifest file that'll be compiled into application.css, which will include all the files + * listed below. + * + * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, + * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path. + * + * You're free to add application-wide styles to this file and they'll appear at the bottom of the + * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS + * files in this directory. Styles in this file should be added after the last require_* statement. + * It is generally better to create a new file per style scope. + * + *= require_tree . + *= require_self + */ diff --git a/test/dummy/app/channels/application_cable/channel.rb b/test/dummy/app/channels/application_cable/channel.rb new file mode 100644 index 0000000..d672697 --- /dev/null +++ b/test/dummy/app/channels/application_cable/channel.rb @@ -0,0 +1,4 @@ +module ApplicationCable + class Channel < ActionCable::Channel::Base + end +end diff --git a/test/dummy/app/channels/application_cable/connection.rb b/test/dummy/app/channels/application_cable/connection.rb new file mode 100644 index 0000000..0ff5442 --- /dev/null +++ b/test/dummy/app/channels/application_cable/connection.rb @@ -0,0 +1,4 @@ +module ApplicationCable + class Connection < ActionCable::Connection::Base + end +end diff --git a/test/dummy/app/components/.keep b/test/dummy/app/components/.keep new file mode 100644 index 0000000..e69de29 diff --git a/test/dummy/app/components/chat_component.rb b/test/dummy/app/components/chat_component.rb new file mode 100644 index 0000000..3eead73 --- /dev/null +++ b/test/dummy/app/components/chat_component.rb @@ -0,0 +1,9 @@ +class ChatComponent < Clapton::Component + def render + @state[:messages].each do |message| + @root.add(MessageComponent.new(role: message[:role], content: message[:content])) + end + @root.add(UserPromptComponent.new(role: "user", content: "")) + @root.render + end +end diff --git a/test/dummy/app/components/message_component.rb b/test/dummy/app/components/message_component.rb new file mode 100644 index 0000000..f2c1984 --- /dev/null +++ b/test/dummy/app/components/message_component.rb @@ -0,0 +1,6 @@ +class MessageComponent < Clapton::Component + def render + @root.add(Clapton::Text.new("#{@state[:role]}: #{@state[:content]}")) + @root.render + end +end diff --git a/test/dummy/app/components/task_item_component.rb b/test/dummy/app/components/task_item_component.rb new file mode 100644 index 0000000..71c44bc --- /dev/null +++ b/test/dummy/app/components/task_item_component.rb @@ -0,0 +1,16 @@ +class TaskItemComponent < Clapton::Component + def render + button = Clapton::Button.new + button.add(Clapton::Text.new(@state.done ? "✅" : "🟩")) + button.add_action(:click, :TaskListState, :toggle_done) + + text_field = Clapton::TextField.new(@state, :title, { "id": "task-title-#{@state.id}" }) + text_field.add_action(:input, :TaskListState, :update_title) + + datetime_field = Clapton::DateTimeField.new(@state, :due, { "id": "task-due-#{@state.id}" }) + datetime_field.add_action(:input, :TaskListState, :update_due) + + @root.add(button).add(text_field).add(datetime_field) + @root.render + end +end diff --git a/test/dummy/app/components/task_list_component.rb b/test/dummy/app/components/task_list_component.rb new file mode 100644 index 0000000..e9bd1a3 --- /dev/null +++ b/test/dummy/app/components/task_list_component.rb @@ -0,0 +1,12 @@ +class TaskListComponent < Clapton::Component + def render + @state.tasks.each do |task| + @root.add(TaskItemComponent.new(id: task[:id], title: task[:title], due: task[:due], done: task[:done])) + end + add_button = Clapton::Button.new + add_button.add(Clapton::Text.new("Add Task")) + add_button.add_action(:click, :TaskListState, :add_task) + @root.add(add_button) + @root.render + end +end diff --git a/test/dummy/app/components/user_form_component.rb b/test/dummy/app/components/user_form_component.rb new file mode 100644 index 0000000..11c7669 --- /dev/null +++ b/test/dummy/app/components/user_form_component.rb @@ -0,0 +1,9 @@ +class UserFormComponent < Clapton::Component + def render + text_field = Clapton::TextField.new(state, :name) + text_field.add_action(:input, :UserFormState, :save, { debounce: 500 }) + text_field.add_action(:input, :UserItemState, :update, { debounce: 500 }) + @root.add(text_field) + @root.render + end +end diff --git a/test/dummy/app/components/user_item_component.rb b/test/dummy/app/components/user_item_component.rb new file mode 100644 index 0000000..79e27a2 --- /dev/null +++ b/test/dummy/app/components/user_item_component.rb @@ -0,0 +1,10 @@ +class UserItemComponent < Clapton::Component + def render + link = Clapton::Link.new({ href: "/users/#{state[:id]}" }) + link.add(Clapton::Text.new(state[:name])) + form = UserFormComponent.new({ id: state[:id], name: state[:name], count: state[:count] }) + text = Clapton::Text.new(state[:count].to_s) + @root.add(link).add(form).add(text) + @root.render + end +end diff --git a/test/dummy/app/components/user_list_component.rb b/test/dummy/app/components/user_list_component.rb new file mode 100644 index 0000000..fae071e --- /dev/null +++ b/test/dummy/app/components/user_list_component.rb @@ -0,0 +1,8 @@ +class UserListComponent < Clapton::Component + def render + state[:users].each do |user| + @root.add(UserItemComponent.new(id: user[:id], name: user[:name], count: user[:count])) + end + @root.render + end +end diff --git a/test/dummy/app/components/user_prompt_component.rb b/test/dummy/app/components/user_prompt_component.rb new file mode 100644 index 0000000..f827091 --- /dev/null +++ b/test/dummy/app/components/user_prompt_component.rb @@ -0,0 +1,10 @@ +class UserPromptComponent < Clapton::Component + def render + text_field = Clapton::TextField.new(@state, :content) + button = Clapton::Button.new({ disabled: @state.content.empty? }) + button.add(Clapton::Text.new("Send")) + button.add_action(:click, :ChatState, :send) + @root.add(text_field).add(button) + @root.render + end +end diff --git a/test/dummy/app/controllers/application_controller.rb b/test/dummy/app/controllers/application_controller.rb new file mode 100644 index 0000000..09705d1 --- /dev/null +++ b/test/dummy/app/controllers/application_controller.rb @@ -0,0 +1,2 @@ +class ApplicationController < ActionController::Base +end diff --git a/test/dummy/app/controllers/chat_controller.rb b/test/dummy/app/controllers/chat_controller.rb new file mode 100644 index 0000000..177e5ac --- /dev/null +++ b/test/dummy/app/controllers/chat_controller.rb @@ -0,0 +1,8 @@ +class ChatController < ApplicationController + def index + @components = [ + [:ChatComponent, { messages: [{ role: "assistant", content: "Hello" }] }], + [:ChatComponent, { messages: [{ role: "assistant", content: "Hello" }] }], + ] + end +end diff --git a/test/dummy/app/controllers/concerns/.keep b/test/dummy/app/controllers/concerns/.keep new file mode 100644 index 0000000..e69de29 diff --git a/test/dummy/app/controllers/tasks_controller.rb b/test/dummy/app/controllers/tasks_controller.rb new file mode 100644 index 0000000..2db550f --- /dev/null +++ b/test/dummy/app/controllers/tasks_controller.rb @@ -0,0 +1,8 @@ +class TasksController < ApplicationController + def index + @tasks = Task.all + @components = [ + [:TaskListComponent, { tasks: @tasks.map { |task| { id: task.id, title: task.title, due: task.due, done: task.done } } }] + ] + end +end diff --git a/test/dummy/app/controllers/users_controller.rb b/test/dummy/app/controllers/users_controller.rb new file mode 100644 index 0000000..c3c7acd --- /dev/null +++ b/test/dummy/app/controllers/users_controller.rb @@ -0,0 +1,7 @@ +class UsersController < ApplicationController + def index + @components = [ + [:UserListComponent, { users: User.all.map { |user| { id: user.id, name: user.name, count: user.name.length } } }] + ] + end +end diff --git a/test/dummy/app/helpers/application_helper.rb b/test/dummy/app/helpers/application_helper.rb new file mode 100644 index 0000000..de6be79 --- /dev/null +++ b/test/dummy/app/helpers/application_helper.rb @@ -0,0 +1,2 @@ +module ApplicationHelper +end diff --git a/test/dummy/app/javascript/packs/application.js b/test/dummy/app/javascript/packs/application.js new file mode 100644 index 0000000..67ce467 --- /dev/null +++ b/test/dummy/app/javascript/packs/application.js @@ -0,0 +1,15 @@ +// This is a manifest file that'll be compiled into application.js, which will include all the files +// listed below. +// +// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, +// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path. +// +// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the +// compiled file. JavaScript code in this file should be added after the last require_* statement. +// +// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details +// about supported directives. +// +//= require rails-ujs +//= require activestorage +//= require_tree . diff --git a/test/dummy/app/jobs/application_job.rb b/test/dummy/app/jobs/application_job.rb new file mode 100644 index 0000000..d394c3d --- /dev/null +++ b/test/dummy/app/jobs/application_job.rb @@ -0,0 +1,7 @@ +class ApplicationJob < ActiveJob::Base + # Automatically retry jobs that encountered a deadlock + # retry_on ActiveRecord::Deadlocked + + # Most jobs are safe to ignore if the underlying records are no longer available + # discard_on ActiveJob::DeserializationError +end diff --git a/test/dummy/app/mailers/application_mailer.rb b/test/dummy/app/mailers/application_mailer.rb new file mode 100644 index 0000000..286b223 --- /dev/null +++ b/test/dummy/app/mailers/application_mailer.rb @@ -0,0 +1,4 @@ +class ApplicationMailer < ActionMailer::Base + default from: 'from@example.com' + layout 'mailer' +end diff --git a/test/dummy/app/models/application_record.rb b/test/dummy/app/models/application_record.rb new file mode 100644 index 0000000..10a4cba --- /dev/null +++ b/test/dummy/app/models/application_record.rb @@ -0,0 +1,3 @@ +class ApplicationRecord < ActiveRecord::Base + self.abstract_class = true +end diff --git a/test/dummy/app/models/concerns/.keep b/test/dummy/app/models/concerns/.keep new file mode 100644 index 0000000..e69de29 diff --git a/test/dummy/app/models/task.rb b/test/dummy/app/models/task.rb new file mode 100644 index 0000000..3c23424 --- /dev/null +++ b/test/dummy/app/models/task.rb @@ -0,0 +1,2 @@ +class Task < ApplicationRecord +end diff --git a/test/dummy/app/models/user.rb b/test/dummy/app/models/user.rb new file mode 100644 index 0000000..379658a --- /dev/null +++ b/test/dummy/app/models/user.rb @@ -0,0 +1,2 @@ +class User < ApplicationRecord +end diff --git a/test/dummy/app/states/chat_state.rb b/test/dummy/app/states/chat_state.rb new file mode 100644 index 0000000..4830a49 --- /dev/null +++ b/test/dummy/app/states/chat_state.rb @@ -0,0 +1,28 @@ +class ChatState < Clapton::State + attribute :messages + + def send(params) + self.messages << { role: "user", content: params[:content] } + yield continue: true + + client = OpenAI::Client.new( + access_token: ENV.fetch("OPENAI_ACCESS_TOKEN"), + log_errors: true + ) + self.messages << { role: "assistant", content: "" } + client.chat( + parameters: { + model: "gpt-4o-mini", + messages: messages, + stream: proc do |chunk, _bytesize| + if chunk.dig("choices", 0, "finish_reason") == "stop" + yield continue: false + end + + self.messages.last[:content] << chunk.dig("choices", 0, "delta", "content") + yield continue: true + end + } + ) + end +end diff --git a/test/dummy/app/states/message_state.rb b/test/dummy/app/states/message_state.rb new file mode 100644 index 0000000..310dabd --- /dev/null +++ b/test/dummy/app/states/message_state.rb @@ -0,0 +1,4 @@ +class MessageState < Clapton::State + attribute :role + attribute :content +end diff --git a/test/dummy/app/states/task_item_state.rb b/test/dummy/app/states/task_item_state.rb new file mode 100644 index 0000000..16861d2 --- /dev/null +++ b/test/dummy/app/states/task_item_state.rb @@ -0,0 +1,6 @@ +class TaskItemState < Clapton::State + attribute :id + attribute :title + attribute :due + attribute :done +end diff --git a/test/dummy/app/states/task_list_state.rb b/test/dummy/app/states/task_list_state.rb new file mode 100644 index 0000000..60fd79b --- /dev/null +++ b/test/dummy/app/states/task_list_state.rb @@ -0,0 +1,27 @@ +class TaskListState < Clapton::State + attribute :tasks + + def add_task(params) + task = Task.create(title: "New Task", due: Date.today, done: false) + self.tasks << { id: task.id, title: task.title, due: task.due, done: task.done } + end + + def toggle_done(params) + task = Task.find(params[:id]) + task.update(done: !params[:done]) + self.tasks.find { |t| t[:id] == params[:id] }[:done] = task.done + end + + def update_title(params) + task = Task.find(params[:id]) + task.update(title: params[:title]) + self.tasks.find { |t| t[:id] == params[:id] }[:title] = task.title + end + + def update_due(params) + task = Task.find(params[:id]) + task.update(due: params[:due]) + self.tasks.find { |t| t[:id] == params[:id] }[:due] = task.due + end +end + diff --git a/test/dummy/app/states/user_form_state.rb b/test/dummy/app/states/user_form_state.rb new file mode 100644 index 0000000..4a08aa7 --- /dev/null +++ b/test/dummy/app/states/user_form_state.rb @@ -0,0 +1,10 @@ +class UserFormState < Clapton::State + attribute :id + attribute :name + + def save(params) + u = User.find(params[:id]) + u.name = params[:name] + u.save + end +end diff --git a/test/dummy/app/states/user_item_state.rb b/test/dummy/app/states/user_item_state.rb new file mode 100644 index 0000000..e9d0626 --- /dev/null +++ b/test/dummy/app/states/user_item_state.rb @@ -0,0 +1,10 @@ +class UserItemState < Clapton::State + attribute :id + attribute :name + attribute :count + + def update(params) + self.name = params[:name] + self.count = params[:name].length + end +end diff --git a/test/dummy/app/states/user_list_state.rb b/test/dummy/app/states/user_list_state.rb new file mode 100644 index 0000000..eebc3a4 --- /dev/null +++ b/test/dummy/app/states/user_list_state.rb @@ -0,0 +1,4 @@ +class UserListState < Clapton::State + attribute :users +end + diff --git a/test/dummy/app/states/user_prompt_state.rb b/test/dummy/app/states/user_prompt_state.rb new file mode 100644 index 0000000..270917e --- /dev/null +++ b/test/dummy/app/states/user_prompt_state.rb @@ -0,0 +1,4 @@ +class UserPromptState < Clapton::State + attribute :role + attribute :content +end diff --git a/test/dummy/app/views/chat/index.html.erb b/test/dummy/app/views/chat/index.html.erb new file mode 100644 index 0000000..c6a3271 --- /dev/null +++ b/test/dummy/app/views/chat/index.html.erb @@ -0,0 +1 @@ +<%= clapton_tag %> diff --git a/test/dummy/app/views/layouts/application.html.erb b/test/dummy/app/views/layouts/application.html.erb new file mode 100644 index 0000000..9e58dad --- /dev/null +++ b/test/dummy/app/views/layouts/application.html.erb @@ -0,0 +1,16 @@ + + + + Dummy + + <%= csrf_meta_tags %> + <%= csp_meta_tag %> + + <%= stylesheet_link_tag 'application', media: 'all' %> + <%= clapton_javascript_tag %> + + + + <%= yield %> + + diff --git a/test/dummy/app/views/layouts/mailer.html.erb b/test/dummy/app/views/layouts/mailer.html.erb new file mode 100644 index 0000000..cbd34d2 --- /dev/null +++ b/test/dummy/app/views/layouts/mailer.html.erb @@ -0,0 +1,13 @@ + + + + + + + + + <%= yield %> + + diff --git a/test/dummy/app/views/layouts/mailer.text.erb b/test/dummy/app/views/layouts/mailer.text.erb new file mode 100644 index 0000000..37f0bdd --- /dev/null +++ b/test/dummy/app/views/layouts/mailer.text.erb @@ -0,0 +1 @@ +<%= yield %> diff --git a/test/dummy/app/views/tasks/index.html.erb b/test/dummy/app/views/tasks/index.html.erb new file mode 100644 index 0000000..c6a3271 --- /dev/null +++ b/test/dummy/app/views/tasks/index.html.erb @@ -0,0 +1 @@ +<%= clapton_tag %> diff --git a/test/dummy/app/views/users/index.html.erb b/test/dummy/app/views/users/index.html.erb new file mode 100644 index 0000000..c6a3271 --- /dev/null +++ b/test/dummy/app/views/users/index.html.erb @@ -0,0 +1 @@ +<%= clapton_tag %> diff --git a/test/dummy/bin/rails b/test/dummy/bin/rails new file mode 100755 index 0000000..6fb4e40 --- /dev/null +++ b/test/dummy/bin/rails @@ -0,0 +1,4 @@ +#!/usr/bin/env ruby +APP_PATH = File.expand_path('../config/application', __dir__) +require_relative "../config/boot" +require "rails/commands" diff --git a/test/dummy/bin/rake b/test/dummy/bin/rake new file mode 100755 index 0000000..4fbf10b --- /dev/null +++ b/test/dummy/bin/rake @@ -0,0 +1,4 @@ +#!/usr/bin/env ruby +require_relative "../config/boot" +require "rake" +Rake.application.run diff --git a/test/dummy/bin/setup b/test/dummy/bin/setup new file mode 100755 index 0000000..5792302 --- /dev/null +++ b/test/dummy/bin/setup @@ -0,0 +1,33 @@ +#!/usr/bin/env ruby +require "fileutils" + +# path to your application root. +APP_ROOT = File.expand_path('..', __dir__) + +def system!(*args) + system(*args) || abort("\n== Command #{args} failed ==") +end + +FileUtils.chdir APP_ROOT do + # This script is a way to set up or update your development environment automatically. + # This script is idempotent, so that you can run it at any time and get an expectable outcome. + # Add necessary setup steps to this file. + + puts '== Installing dependencies ==' + system! 'gem install bundler --conservative' + system('bundle check') || system!('bundle install') + + # puts "\n== Copying sample files ==" + # unless File.exist?('config/database.yml') + # FileUtils.cp 'config/database.yml.sample', 'config/database.yml' + # end + + puts "\n== Preparing database ==" + system! 'bin/rails db:prepare' + + puts "\n== Removing old logs and tempfiles ==" + system! 'bin/rails log:clear tmp:clear' + + puts "\n== Restarting application server ==" + system! 'bin/rails restart' +end diff --git a/test/dummy/config.ru b/test/dummy/config.ru new file mode 100644 index 0000000..4a3c09a --- /dev/null +++ b/test/dummy/config.ru @@ -0,0 +1,6 @@ +# This file is used by Rack-based servers to start the application. + +require_relative "config/environment" + +run Rails.application +Rails.application.load_server diff --git a/test/dummy/config/application.rb b/test/dummy/config/application.rb new file mode 100644 index 0000000..8aff6a5 --- /dev/null +++ b/test/dummy/config/application.rb @@ -0,0 +1,22 @@ +require_relative "boot" + +require "rails/all" + +# Require the gems listed in Gemfile, including any gems +# you've limited to :test, :development, or :production. +Bundler.require(*Rails.groups) +require "clapton" + +module Dummy + class Application < Rails::Application + config.load_defaults Rails::VERSION::STRING.to_f + + # Configuration for the application, engines, and railties goes here. + # + # These settings can be overridden in specific environments using the files + # in config/environments, which are processed later. + # + # config.time_zone = "Central Time (US & Canada)" + # config.eager_load_paths << Rails.root.join("extras") + end +end diff --git a/test/dummy/config/boot.rb b/test/dummy/config/boot.rb new file mode 100644 index 0000000..91e5081 --- /dev/null +++ b/test/dummy/config/boot.rb @@ -0,0 +1,5 @@ +# Set up gems listed in the Gemfile. +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __dir__) + +require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"]) +$LOAD_PATH.unshift File.expand_path('../../../lib', __dir__) diff --git a/test/dummy/config/cable.yml b/test/dummy/config/cable.yml new file mode 100644 index 0000000..98367f8 --- /dev/null +++ b/test/dummy/config/cable.yml @@ -0,0 +1,10 @@ +development: + adapter: async + +test: + adapter: test + +production: + adapter: redis + url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %> + channel_prefix: dummy_production diff --git a/test/dummy/config/database.yml b/test/dummy/config/database.yml new file mode 100644 index 0000000..c52c94d --- /dev/null +++ b/test/dummy/config/database.yml @@ -0,0 +1,16 @@ +default: &default + adapter: sqlite3 + pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> + timeout: 5000 + +development: + <<: *default + database: db/development.sqlite3 + +test: + <<: *default + database: db/test.sqlite3 + +production: + <<: *default + database: db/production.sqlite3 diff --git a/test/dummy/config/environment.rb b/test/dummy/config/environment.rb new file mode 100644 index 0000000..cac5315 --- /dev/null +++ b/test/dummy/config/environment.rb @@ -0,0 +1,5 @@ +# Load the Rails application. +require_relative "application" + +# Initialize the Rails application. +Rails.application.initialize! diff --git a/test/dummy/config/environments/development.rb b/test/dummy/config/environments/development.rb new file mode 100644 index 0000000..438743c --- /dev/null +++ b/test/dummy/config/environments/development.rb @@ -0,0 +1,76 @@ +require "active_support/core_ext/integer/time" + +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # In the development environment your application's code is reloaded any time + # it changes. This slows down response time but is perfect for development + # since you don't have to restart the web server when you make code changes. + config.cache_classes = false + + # Do not eager load code on boot. + config.eager_load = false + + # Show full error reports. + config.consider_all_requests_local = true + + # Enable/disable caching. By default caching is disabled. + # Run rails dev:cache to toggle caching. + if Rails.root.join('tmp', 'caching-dev.txt').exist? + config.action_controller.perform_caching = true + config.action_controller.enable_fragment_cache_logging = true + + config.cache_store = :memory_store + config.public_file_server.headers = { + 'Cache-Control' => "public, max-age=#{2.days.to_i}" + } + else + config.action_controller.perform_caching = false + + config.cache_store = :null_store + end + + # Store uploaded files on the local file system (see config/storage.yml for options). + config.active_storage.service = :local + + # Don't care if the mailer can't send. + config.action_mailer.raise_delivery_errors = false + + config.action_mailer.perform_caching = false + + # Print deprecation notices to the Rails logger. + config.active_support.deprecation = :log + + # Raise exceptions for disallowed deprecations. + config.active_support.disallowed_deprecation = :raise + + # Tell Active Support which deprecation messages to disallow. + config.active_support.disallowed_deprecation_warnings = [] + + # Raise an error on page load if there are pending migrations. + config.active_record.migration_error = :page_load + + # Highlight code that triggered database queries in logs. + config.active_record.verbose_query_logs = true + + # Debug mode disables concatenation and preprocessing of assets. + # This option may cause significant delays in view rendering with a large + # number of complex assets. + config.assets.debug = true + + # Suppress logger output for asset requests. + config.assets.quiet = true + + # Raises error for missing translations. + # config.i18n.raise_on_missing_translations = true + + # Annotate rendered view with file names. + # config.action_view.annotate_rendered_view_with_filenames = true + + # Use an evented file watcher to asynchronously detect changes in source code, + # routes, locales, etc. This feature depends on the listen gem. + # config.file_watcher = ActiveSupport::EventedFileUpdateChecker + + # Uncomment if you wish to allow Action Cable access from any origin. + # config.action_cable.disable_request_forgery_protection = true +end diff --git a/test/dummy/config/environments/production.rb b/test/dummy/config/environments/production.rb new file mode 100644 index 0000000..abb1289 --- /dev/null +++ b/test/dummy/config/environments/production.rb @@ -0,0 +1,120 @@ +require "active_support/core_ext/integer/time" + +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # Code is not reloaded between requests. + config.cache_classes = true + + # Eager load code on boot. This eager loads most of Rails and + # your application in memory, allowing both threaded web servers + # and those relying on copy on write to perform better. + # Rake tasks automatically ignore this option for performance. + config.eager_load = true + + # Full error reports are disabled and caching is turned on. + config.consider_all_requests_local = false + config.action_controller.perform_caching = true + + # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] + # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). + # config.require_master_key = true + + # Disable serving static files from the `/public` folder by default since + # Apache or NGINX already handles this. + config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? + + # Compress CSS using a preprocessor. + # config.assets.css_compressor = :sass + + # Do not fallback to assets pipeline if a precompiled asset is missed. + config.assets.compile = false + + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + # config.asset_host = 'http://assets.example.com' + + # Specifies the header that your server uses for sending files. + # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX + + # Store uploaded files on the local file system (see config/storage.yml for options). + config.active_storage.service = :local + + # Mount Action Cable outside main process or domain. + # config.action_cable.mount_path = nil + # config.action_cable.url = 'wss://example.com/cable' + # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] + + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. + # config.force_ssl = true + + # Include generic and useful information about system operation, but avoid logging too much + # information to avoid inadvertent exposure of personally identifiable information (PII). + config.log_level = :info + + # Prepend all log lines with the following tags. + config.log_tags = [ :request_id ] + + # Use a different cache store in production. + # config.cache_store = :mem_cache_store + + # Use a real queuing backend for Active Job (and separate queues per environment). + # config.active_job.queue_adapter = :resque + # config.active_job.queue_name_prefix = "dummy_production" + + config.action_mailer.perform_caching = false + + # Ignore bad email addresses and do not raise email delivery errors. + # Set this to true and configure the email server for immediate delivery to raise delivery errors. + # config.action_mailer.raise_delivery_errors = false + + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to + # the I18n.default_locale when a translation cannot be found). + config.i18n.fallbacks = true + + # Send deprecation notices to registered listeners. + config.active_support.deprecation = :notify + + # Log disallowed deprecations. + config.active_support.disallowed_deprecation = :log + + # Tell Active Support which deprecation messages to disallow. + config.active_support.disallowed_deprecation_warnings = [] + + # Use default logging formatter so that PID and timestamp are not suppressed. + config.log_formatter = ::Logger::Formatter.new + + # Use a different logger for distributed setups. + # require "syslog/logger" + # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') + + if ENV["RAILS_LOG_TO_STDOUT"].present? + logger = ActiveSupport::Logger.new(STDOUT) + logger.formatter = config.log_formatter + config.logger = ActiveSupport::TaggedLogging.new(logger) + end + + # Do not dump schema after migrations. + config.active_record.dump_schema_after_migration = false + + # Inserts middleware to perform automatic connection switching. + # The `database_selector` hash is used to pass options to the DatabaseSelector + # middleware. The `delay` is used to determine how long to wait after a write + # to send a subsequent read to the primary. + # + # The `database_resolver` class is used by the middleware to determine which + # database is appropriate to use based on the time delay. + # + # The `database_resolver_context` class is used by the middleware to set + # timestamps for the last write to the primary. The resolver uses the context + # class timestamps to determine how long to wait before reading from the + # replica. + # + # By default Rails will store a last write timestamp in the session. The + # DatabaseSelector middleware is designed as such you can define your own + # strategy for connection switching and pass that into the middleware through + # these configuration options. + # config.active_record.database_selector = { delay: 2.seconds } + # config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver + # config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session +end diff --git a/test/dummy/config/environments/test.rb b/test/dummy/config/environments/test.rb new file mode 100644 index 0000000..17ce39c --- /dev/null +++ b/test/dummy/config/environments/test.rb @@ -0,0 +1,59 @@ +require "active_support/core_ext/integer/time" + +# The test environment is used exclusively to run your application's +# test suite. You never need to work with it otherwise. Remember that +# your test database is "scratch space" for the test suite and is wiped +# and recreated between test runs. Don't rely on the data there! + +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + config.cache_classes = true + + # Do not eager load code on boot. This avoids loading your whole application + # just for the purpose of running a single test. If you are using a tool that + # preloads Rails for running tests, you may have to set it to true. + config.eager_load = false + + # Configure public file server for tests with Cache-Control for performance. + config.public_file_server.enabled = true + config.public_file_server.headers = { + 'Cache-Control' => "public, max-age=#{1.hour.to_i}" + } + + # Show full error reports and disable caching. + config.consider_all_requests_local = true + config.action_controller.perform_caching = false + config.cache_store = :null_store + + # Raise exceptions instead of rendering exception templates. + config.action_dispatch.show_exceptions = false + + # Disable request forgery protection in test environment. + config.action_controller.allow_forgery_protection = false + + # Store uploaded files on the local file system in a temporary directory. + config.active_storage.service = :test + + config.action_mailer.perform_caching = false + + # Tell Action Mailer not to deliver emails to the real world. + # The :test delivery method accumulates sent emails in the + # ActionMailer::Base.deliveries array. + config.action_mailer.delivery_method = :test + + # Print deprecation notices to the stderr. + config.active_support.deprecation = :stderr + + # Raise exceptions for disallowed deprecations. + config.active_support.disallowed_deprecation = :raise + + # Tell Active Support which deprecation messages to disallow. + config.active_support.disallowed_deprecation_warnings = [] + + # Raises error for missing translations. + # config.i18n.raise_on_missing_translations = true + + # Annotate rendered view with file names. + # config.action_view.annotate_rendered_view_with_filenames = true +end diff --git a/test/dummy/config/initializers/application_controller_renderer.rb b/test/dummy/config/initializers/application_controller_renderer.rb new file mode 100644 index 0000000..89d2efa --- /dev/null +++ b/test/dummy/config/initializers/application_controller_renderer.rb @@ -0,0 +1,8 @@ +# Be sure to restart your server when you modify this file. + +# ActiveSupport::Reloader.to_prepare do +# ApplicationController.renderer.defaults.merge!( +# http_host: 'example.org', +# https: false +# ) +# end diff --git a/test/dummy/config/initializers/assets.rb b/test/dummy/config/initializers/assets.rb new file mode 100644 index 0000000..fe48fc3 --- /dev/null +++ b/test/dummy/config/initializers/assets.rb @@ -0,0 +1,12 @@ +# Be sure to restart your server when you modify this file. + +# Version of your assets, change this if you want to expire all your assets. +Rails.application.config.assets.version = '1.0' + +# Add additional assets to the asset load path. +# Rails.application.config.assets.paths << Emoji.images_path + +# Precompile additional assets. +# application.js, application.css, and all non-JS/CSS in the app/assets +# folder are already added. +# Rails.application.config.assets.precompile += %w( admin.js admin.css ) diff --git a/test/dummy/config/initializers/backtrace_silencers.rb b/test/dummy/config/initializers/backtrace_silencers.rb new file mode 100644 index 0000000..33699c3 --- /dev/null +++ b/test/dummy/config/initializers/backtrace_silencers.rb @@ -0,0 +1,8 @@ +# Be sure to restart your server when you modify this file. + +# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. +# Rails.backtrace_cleaner.add_silencer { |line| /my_noisy_library/.match?(line) } + +# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code +# by setting BACKTRACE=1 before calling your invocation, like "BACKTRACE=1 ./bin/rails runner 'MyClass.perform'". +Rails.backtrace_cleaner.remove_silencers! if ENV["BACKTRACE"] diff --git a/test/dummy/config/initializers/content_security_policy.rb b/test/dummy/config/initializers/content_security_policy.rb new file mode 100644 index 0000000..41c4301 --- /dev/null +++ b/test/dummy/config/initializers/content_security_policy.rb @@ -0,0 +1,28 @@ +# Be sure to restart your server when you modify this file. + +# Define an application-wide content security policy +# For further information see the following documentation +# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy + +# Rails.application.config.content_security_policy do |policy| +# policy.default_src :self, :https +# policy.font_src :self, :https, :data +# policy.img_src :self, :https, :data +# policy.object_src :none +# policy.script_src :self, :https +# policy.style_src :self, :https + +# # Specify URI for violation reports +# # policy.report_uri "/csp-violation-report-endpoint" +# end + +# If you are using UJS then enable automatic nonce generation +# Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) } + +# Set the nonce only to specific directives +# Rails.application.config.content_security_policy_nonce_directives = %w(script-src) + +# Report CSP violations to a specified URI +# For further information see the following documentation: +# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only +# Rails.application.config.content_security_policy_report_only = true diff --git a/test/dummy/config/initializers/cookies_serializer.rb b/test/dummy/config/initializers/cookies_serializer.rb new file mode 100644 index 0000000..5a6a32d --- /dev/null +++ b/test/dummy/config/initializers/cookies_serializer.rb @@ -0,0 +1,5 @@ +# Be sure to restart your server when you modify this file. + +# Specify a serializer for the signed and encrypted cookie jars. +# Valid options are :json, :marshal, and :hybrid. +Rails.application.config.action_dispatch.cookies_serializer = :json diff --git a/test/dummy/config/initializers/filter_parameter_logging.rb b/test/dummy/config/initializers/filter_parameter_logging.rb new file mode 100644 index 0000000..4b34a03 --- /dev/null +++ b/test/dummy/config/initializers/filter_parameter_logging.rb @@ -0,0 +1,6 @@ +# Be sure to restart your server when you modify this file. + +# Configure sensitive parameters which will be filtered from the log file. +Rails.application.config.filter_parameters += [ + :passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn +] diff --git a/test/dummy/config/initializers/inflections.rb b/test/dummy/config/initializers/inflections.rb new file mode 100644 index 0000000..ac033bf --- /dev/null +++ b/test/dummy/config/initializers/inflections.rb @@ -0,0 +1,16 @@ +# Be sure to restart your server when you modify this file. + +# Add new inflection rules using the following format. Inflections +# are locale specific, and you may define rules for as many different +# locales as you wish. All of these examples are active by default: +# ActiveSupport::Inflector.inflections(:en) do |inflect| +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' +# inflect.uncountable %w( fish sheep ) +# end + +# These inflection rules are supported but not enabled by default: +# ActiveSupport::Inflector.inflections(:en) do |inflect| +# inflect.acronym 'RESTful' +# end diff --git a/test/dummy/config/initializers/mime_types.rb b/test/dummy/config/initializers/mime_types.rb new file mode 100644 index 0000000..dc18996 --- /dev/null +++ b/test/dummy/config/initializers/mime_types.rb @@ -0,0 +1,4 @@ +# Be sure to restart your server when you modify this file. + +# Add new mime types for use in respond_to blocks: +# Mime::Type.register "text/richtext", :rtf diff --git a/test/dummy/config/initializers/permissions_policy.rb b/test/dummy/config/initializers/permissions_policy.rb new file mode 100644 index 0000000..00f64d7 --- /dev/null +++ b/test/dummy/config/initializers/permissions_policy.rb @@ -0,0 +1,11 @@ +# Define an application-wide HTTP permissions policy. For further +# information see https://developers.google.com/web/updates/2018/06/feature-policy +# +# Rails.application.config.permissions_policy do |f| +# f.camera :none +# f.gyroscope :none +# f.microphone :none +# f.usb :none +# f.fullscreen :self +# f.payment :self, "https://secure.example.com" +# end diff --git a/test/dummy/config/initializers/wrap_parameters.rb b/test/dummy/config/initializers/wrap_parameters.rb new file mode 100644 index 0000000..bbfc396 --- /dev/null +++ b/test/dummy/config/initializers/wrap_parameters.rb @@ -0,0 +1,14 @@ +# Be sure to restart your server when you modify this file. + +# This file contains settings for ActionController::ParamsWrapper which +# is enabled by default. + +# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. +ActiveSupport.on_load(:action_controller) do + wrap_parameters format: [:json] +end + +# To enable root element in JSON for ActiveRecord objects. +# ActiveSupport.on_load(:active_record) do +# self.include_root_in_json = true +# end diff --git a/test/dummy/config/locales/en.yml b/test/dummy/config/locales/en.yml new file mode 100644 index 0000000..cf9b342 --- /dev/null +++ b/test/dummy/config/locales/en.yml @@ -0,0 +1,33 @@ +# Files in the config/locales directory are used for internationalization +# and are automatically loaded by Rails. If you want to use locales other +# than English, add the necessary files in this directory. +# +# To use the locales, use `I18n.t`: +# +# I18n.t 'hello' +# +# In views, this is aliased to just `t`: +# +# <%= t('hello') %> +# +# To use a different locale, set it with `I18n.locale`: +# +# I18n.locale = :es +# +# This would use the information in config/locales/es.yml. +# +# The following keys must be escaped otherwise they will not be retrieved by +# the default I18n backend: +# +# true, false, on, off, yes, no +# +# Instead, surround them with single quotes. +# +# en: +# 'true': 'foo' +# +# To learn more, please read the Rails Internationalization guide +# available at https://guides.rubyonrails.org/i18n.html. + +en: + hello: "Hello world" diff --git a/test/dummy/config/puma.rb b/test/dummy/config/puma.rb new file mode 100644 index 0000000..d9b3e83 --- /dev/null +++ b/test/dummy/config/puma.rb @@ -0,0 +1,43 @@ +# Puma can serve each request in a thread from an internal thread pool. +# The `threads` method setting takes two numbers: a minimum and maximum. +# Any libraries that use thread pools should be configured to match +# the maximum value specified for Puma. Default is set to 5 threads for minimum +# and maximum; this matches the default thread size of Active Record. +# +max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } +min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count } +threads min_threads_count, max_threads_count + +# Specifies the `worker_timeout` threshold that Puma will use to wait before +# terminating a worker in development environments. +# +worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development" + +# Specifies the `port` that Puma will listen on to receive requests; default is 3000. +# +port ENV.fetch("PORT") { 3000 } + +# Specifies the `environment` that Puma will run in. +# +environment ENV.fetch("RAILS_ENV") { "development" } + +# Specifies the `pidfile` that Puma will use. +pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" } + +# Specifies the number of `workers` to boot in clustered mode. +# Workers are forked web server processes. If using threads and workers together +# the concurrency of the application would be max `threads` * `workers`. +# Workers do not work on JRuby or Windows (both of which do not support +# processes). +# +# workers ENV.fetch("WEB_CONCURRENCY") { 2 } + +# Use the `preload_app!` method when specifying a `workers` number. +# This directive tells Puma to first boot the application and load code +# before forking the application. This takes advantage of Copy On Write +# process behavior so workers use less memory. +# +# preload_app! + +# Allow puma to be restarted by `rails restart` command. +plugin :tmp_restart diff --git a/test/dummy/config/routes.rb b/test/dummy/config/routes.rb new file mode 100644 index 0000000..3012469 --- /dev/null +++ b/test/dummy/config/routes.rb @@ -0,0 +1,7 @@ +Rails.application.routes.draw do + mount Clapton::Engine => "/clapton" + + get "/users", to: "users#index" + get "/chat", to: "chat#index" + get "/tasks", to: "tasks#index" +end diff --git a/test/dummy/config/storage.yml b/test/dummy/config/storage.yml new file mode 100644 index 0000000..d32f76e --- /dev/null +++ b/test/dummy/config/storage.yml @@ -0,0 +1,34 @@ +test: + service: Disk + root: <%= Rails.root.join("tmp/storage") %> + +local: + service: Disk + root: <%= Rails.root.join("storage") %> + +# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key) +# amazon: +# service: S3 +# access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> +# secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> +# region: us-east-1 +# bucket: your_own_bucket + +# Remember not to checkin your GCS keyfile to a repository +# google: +# service: GCS +# project: your_project +# credentials: <%= Rails.root.join("path/to/gcs.keyfile") %> +# bucket: your_own_bucket + +# Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key) +# microsoft: +# service: AzureStorage +# storage_account_name: your_account_name +# storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %> +# container: your_container_name + +# mirror: +# service: Mirror +# primary: local +# mirrors: [ amazon, google, microsoft ] diff --git a/test/dummy/db/migrate/20241011052828_create_users.rb b/test/dummy/db/migrate/20241011052828_create_users.rb new file mode 100644 index 0000000..9f06756 --- /dev/null +++ b/test/dummy/db/migrate/20241011052828_create_users.rb @@ -0,0 +1,9 @@ +class CreateUsers < ActiveRecord::Migration[6.1] + def change + create_table :users do |t| + t.string :name + + t.timestamps + end + end +end diff --git a/test/dummy/db/migrate/20241012031613_create_tasks.rb b/test/dummy/db/migrate/20241012031613_create_tasks.rb new file mode 100644 index 0000000..61d746e --- /dev/null +++ b/test/dummy/db/migrate/20241012031613_create_tasks.rb @@ -0,0 +1,11 @@ +class CreateTasks < ActiveRecord::Migration[6.1] + def change + create_table :tasks do |t| + t.string :title + t.datetime :due + t.boolean :done + + t.timestamps + end + end +end diff --git a/test/dummy/db/schema.rb b/test/dummy/db/schema.rb new file mode 100644 index 0000000..b712747 --- /dev/null +++ b/test/dummy/db/schema.rb @@ -0,0 +1,29 @@ +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# This file is the source Rails uses to define your schema when running `bin/rails +# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to +# be faster and is potentially less error prone than running all of your +# migrations from scratch. Old migrations may fail to apply correctly if those +# migrations use external dependencies or application code. +# +# It's strongly recommended that you check this file into your version control system. + +ActiveRecord::Schema.define(version: 2024_10_12_031613) do + + create_table "tasks", force: :cascade do |t| + t.string "title" + t.datetime "due" + t.boolean "done" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + end + + create_table "users", force: :cascade do |t| + t.string "name" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + end + +end diff --git a/test/dummy/lib/assets/.keep b/test/dummy/lib/assets/.keep new file mode 100644 index 0000000..e69de29 diff --git a/test/dummy/log/.keep b/test/dummy/log/.keep new file mode 100644 index 0000000..e69de29 diff --git a/test/dummy/public/404.html b/test/dummy/public/404.html new file mode 100644 index 0000000..2be3af2 --- /dev/null +++ b/test/dummy/public/404.html @@ -0,0 +1,67 @@ + + + + The page you were looking for doesn't exist (404) + + + + + + +
+
+

The page you were looking for doesn't exist.

+

You may have mistyped the address or the page may have moved.

+
+

If you are the application owner check the logs for more information.

+
+ + diff --git a/test/dummy/public/422.html b/test/dummy/public/422.html new file mode 100644 index 0000000..c08eac0 --- /dev/null +++ b/test/dummy/public/422.html @@ -0,0 +1,67 @@ + + + + The change you wanted was rejected (422) + + + + + + +
+
+

The change you wanted was rejected.

+

Maybe you tried to change something you didn't have access to.

+
+

If you are the application owner check the logs for more information.

+
+ + diff --git a/test/dummy/public/500.html b/test/dummy/public/500.html new file mode 100644 index 0000000..78a030a --- /dev/null +++ b/test/dummy/public/500.html @@ -0,0 +1,66 @@ + + + + We're sorry, but something went wrong (500) + + + + + + +
+
+

We're sorry, but something went wrong.

+
+

If you are the application owner check the logs for more information.

+
+ + diff --git a/test/dummy/public/apple-touch-icon-precomposed.png b/test/dummy/public/apple-touch-icon-precomposed.png new file mode 100644 index 0000000..e69de29 diff --git a/test/dummy/public/apple-touch-icon.png b/test/dummy/public/apple-touch-icon.png new file mode 100644 index 0000000..e69de29 diff --git a/test/dummy/public/favicon.ico b/test/dummy/public/favicon.ico new file mode 100644 index 0000000..e69de29 diff --git a/test/dummy/spec/components/task_list_component_spec.rb b/test/dummy/spec/components/task_list_component_spec.rb new file mode 100644 index 0000000..b06be76 --- /dev/null +++ b/test/dummy/spec/components/task_list_component_spec.rb @@ -0,0 +1,8 @@ +require "rails_helper" + +RSpec.describe :TaskListComponent, type: :component do + it "renders the component" do + rendered = render_component(:TaskListComponent, tasks: [{ id: 1, title: "Task 1", done: false, due: Time.current }]) + expect(rendered).to have_selector("input[type='text']") + end +end diff --git a/test/dummy/spec/features/tasks/index_spec.rb b/test/dummy/spec/features/tasks/index_spec.rb new file mode 100644 index 0000000..5672521 --- /dev/null +++ b/test/dummy/spec/features/tasks/index_spec.rb @@ -0,0 +1,39 @@ +require "rails_helper" + +describe "Tasks", :js do + it "displays a task" do + Task.create!(title: "Task 1", done: false, due: Time.current) + visit tasks_path + expect(page).to have_content("🟩") + expect(page).to have_selector("input[type='text'][value='Task 1']") + expect(page).to have_content("Add Task") + end + + it "creates a task" do + visit tasks_path + click_on "Add Task" + expect(page).to have_selector("input[type='text'][value='New Task']") + end + + it "updates a task done status" do + Task.create!(title: "Task 1", done: false, due: Time.current) + visit tasks_path + click_on "🟩", match: :first + sleep 1 + expect(page).to have_content("✅") + end + + it "updates a task title" do + Task.create!(title: "Task 1", done: false, due: Time.current) + visit tasks_path + find("input[type='text'][value='Task 1']").fill_in with: "Task 2" + sleep 1 + expect(page).to have_selector("input[type='text'][value='Task 2']") + end + + it "updates a task due date" do + Task.create!(title: "Task 1", done: false, due: Time.current) + visit tasks_path + find("input[type='datetime-local'][id='task-due-#{Task.last.id}']").fill_in with: "2024-10-14T10:00" + end +end diff --git a/test/dummy/spec/rails_helper.rb b/test/dummy/spec/rails_helper.rb new file mode 100644 index 0000000..8f2aa35 --- /dev/null +++ b/test/dummy/spec/rails_helper.rb @@ -0,0 +1,65 @@ +# This file is copied to spec/ when you run 'rails generate rspec:install' +require 'spec_helper' +ENV['RAILS_ENV'] ||= 'test' +require_relative '../config/environment' +# Prevent database truncation if the environment is production +abort("The Rails environment is running in production mode!") if Rails.env.production? +require 'rspec/rails' +# Add additional requires below this line. Rails is not loaded until this point! + +# Requires supporting ruby files with custom matchers and macros, etc, in +# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are +# run as spec files by default. This means that files in spec/support that end +# in _spec.rb will both be required and run as specs, causing the specs to be +# run twice. It is recommended that you do not name files matching this glob to +# end with _spec.rb. You can configure this pattern with the --pattern +# option on the command line or in ~/.rspec, .rspec or `.rspec-local`. +# +# The following line is provided for convenience purposes. It has the downside +# of increasing the boot-up time by auto-requiring all files in the support +# directory. Alternatively, in the individual `*_spec.rb` files, manually +# require only the support files necessary. +# +# Rails.root.glob('spec/support/**/*.rb').sort_by(&:to_s).each { |f| require f } + +# Checks for pending migrations and applies them before tests are run. +# If you are not using ActiveRecord, you can remove these lines. +begin + ActiveRecord::Migration.maintain_test_schema! +rescue ActiveRecord::PendingMigrationError => e + abort e.to_s.strip +end +RSpec.configure do |config| + # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures + config.fixture_path = Rails.root.join('spec/fixtures') + + # If you're not using ActiveRecord, or you'd prefer not to run each of your + # examples within a transaction, remove the following line or assign false + # instead of true. + config.use_transactional_fixtures = true + + # You can uncomment this line to turn off ActiveRecord support entirely. + # config.use_active_record = false + + # RSpec Rails can automatically mix in different behaviours to your tests + # based on their file location, for example enabling you to call `get` and + # `post` in specs under `spec/controllers`. + # + # You can disable this behaviour by removing the line below, and instead + # explicitly tag your specs with their type, e.g.: + # + # RSpec.describe UsersController, type: :controller do + # # ... + # end + # + # The different available types are documented in the features, such as in + # https://rspec.info/features/6-0/rspec-rails + config.infer_spec_type_from_file_location! + + # Filter lines from Rails gems in backtraces. + config.filter_rails_from_backtrace! + # arbitrary gems may also be filtered via: + # config.filter_gems_from_backtrace("gem name") + + config.include Clapton::TestHelper::RSpec, type: :component +end diff --git a/test/dummy/spec/spec_helper.rb b/test/dummy/spec/spec_helper.rb new file mode 100644 index 0000000..327b58e --- /dev/null +++ b/test/dummy/spec/spec_helper.rb @@ -0,0 +1,94 @@ +# This file was generated by the `rails generate rspec:install` command. Conventionally, all +# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. +# The generated `.rspec` file contains `--require spec_helper` which will cause +# this file to always be loaded, without a need to explicitly require it in any +# files. +# +# Given that it is always loaded, you are encouraged to keep this file as +# light-weight as possible. Requiring heavyweight dependencies from this file +# will add to the boot time of your test suite on EVERY test run, even for an +# individual file that may not need all of that loaded. Instead, consider making +# a separate helper file that requires the additional dependencies and performs +# the additional setup, and require it from the spec files that actually need +# it. +# +# See https://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration +RSpec.configure do |config| + # rspec-expectations config goes here. You can use an alternate + # assertion/expectation library such as wrong or the stdlib/minitest + # assertions if you prefer. + config.expect_with :rspec do |expectations| + # This option will default to `true` in RSpec 4. It makes the `description` + # and `failure_message` of custom matchers include text for helper methods + # defined using `chain`, e.g.: + # be_bigger_than(2).and_smaller_than(4).description + # # => "be bigger than 2 and smaller than 4" + # ...rather than: + # # => "be bigger than 2" + expectations.include_chain_clauses_in_custom_matcher_descriptions = true + end + + # rspec-mocks config goes here. You can use an alternate test double + # library (such as bogus or mocha) by changing the `mock_with` option here. + config.mock_with :rspec do |mocks| + # Prevents you from mocking or stubbing a method that does not exist on + # a real object. This is generally recommended, and will default to + # `true` in RSpec 4. + mocks.verify_partial_doubles = true + end + + # This option will default to `:apply_to_host_groups` in RSpec 4 (and will + # have no way to turn it off -- the option exists only for backwards + # compatibility in RSpec 3). It causes shared context metadata to be + # inherited by the metadata hash of host groups and examples, rather than + # triggering implicit auto-inclusion in groups with matching metadata. + config.shared_context_metadata_behavior = :apply_to_host_groups + +# The settings below are suggested to provide a good initial experience +# with RSpec, but feel free to customize to your heart's content. +=begin + # This allows you to limit a spec run to individual examples or groups + # you care about by tagging them with `:focus` metadata. When nothing + # is tagged with `:focus`, all examples get run. RSpec also provides + # aliases for `it`, `describe`, and `context` that include `:focus` + # metadata: `fit`, `fdescribe` and `fcontext`, respectively. + config.filter_run_when_matching :focus + + # Allows RSpec to persist some state between runs in order to support + # the `--only-failures` and `--next-failure` CLI options. We recommend + # you configure your source control system to ignore this file. + config.example_status_persistence_file_path = "spec/examples.txt" + + # Limits the available syntax to the non-monkey patched syntax that is + # recommended. For more details, see: + # https://rspec.info/features/3-12/rspec-core/configuration/zero-monkey-patching-mode/ + config.disable_monkey_patching! + + # Many RSpec users commonly either run the entire suite or an individual + # file, and it's useful to allow more verbose output when running an + # individual spec file. + if config.files_to_run.one? + # Use the documentation formatter for detailed output, + # unless a formatter has already been configured + # (e.g. via a command-line flag). + config.default_formatter = "doc" + end + + # Print the 10 slowest examples and example groups at the + # end of the spec run, to help surface which specs are running + # particularly slow. + config.profile_examples = 10 + + # Run specs in random order to surface order dependencies. If you find an + # order dependency and want to debug it, you can fix the order by providing + # the seed, which is printed after each run. + # --seed 1234 + config.order = :random + + # Seed global randomization in this process using the `--seed` CLI option. + # Setting this allows you to use `--seed` to deterministically reproduce + # test failures related to randomization by passing the same `--seed` value + # as the one that triggered the failure. + Kernel.srand config.seed +=end +end diff --git a/test/dummy/test/components/task_list_component_test.rb b/test/dummy/test/components/task_list_component_test.rb new file mode 100644 index 0000000..2d24cbc --- /dev/null +++ b/test/dummy/test/components/task_list_component_test.rb @@ -0,0 +1,10 @@ +require "test_helper" + +class TaskListComponentTest < ActiveSupport::TestCase + include Clapton::TestHelper::Minitest + + test "renders" do + render_component(:TaskListComponent, tasks: [{ id: 1, title: "Task 1", done: false, due: Time.current }]) + assert_selector "input[type='text']" + end +end diff --git a/test/dummy/test/test_helper.rb b/test/dummy/test/test_helper.rb new file mode 100644 index 0000000..47b598d --- /dev/null +++ b/test/dummy/test/test_helper.rb @@ -0,0 +1,13 @@ +ENV['RAILS_ENV'] ||= 'test' +require_relative "../config/environment" +require "rails/test_help" + +class ActiveSupport::TestCase + # Run tests in parallel with specified workers + parallelize(workers: :number_of_processors) + + # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. + fixtures :all + + # Add more helper methods to be used by all tests here... +end diff --git a/test/helpers/fuzzy_html_assertion.rb b/test/helpers/fuzzy_html_assertion.rb new file mode 100644 index 0000000..45c2357 --- /dev/null +++ b/test/helpers/fuzzy_html_assertion.rb @@ -0,0 +1,23 @@ +module FuzzyHtmlAssertion + def assert_fuzzy_html_equal(expected, actual, msg = nil) + expected_normalized = normalize_html(expected) + actual_normalized = normalize_html(actual) + + assert_equal(expected_normalized, actual_normalized, msg) + end + + private + + def normalize_html(html) + html + .gsub(/\s+/, ' ') + .gsub(/>\s+<') + .gsub(/"\s+/, '"') + .gsub(/'/, "\"") + .gsub(/\s+="/, '="') + .gsub(//m, '') + .gsub(/<([^>]+)>/) { |m| m.downcase } + .gsub(/\s\/>/, "/>") + .strip + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb new file mode 100644 index 0000000..9f348fb --- /dev/null +++ b/test/test_helper.rb @@ -0,0 +1,17 @@ +# Configure Rails Environment +ENV["RAILS_ENV"] = "test" + +require_relative "../test/dummy/config/environment" +ActiveRecord::Migrator.migrations_paths = [File.expand_path("../test/dummy/db/migrate", __dir__)] +require "rails/test_help" + +require "rails/test_unit/reporter" +Rails::TestUnitReporter.executable = 'bin/test' + +# Load fixtures from the engine +if ActiveSupport::TestCase.respond_to?(:fixture_path=) + ActiveSupport::TestCase.fixture_path = File.expand_path("fixtures", __dir__) + ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path + ActiveSupport::TestCase.file_fixture_path = ActiveSupport::TestCase.fixture_path + "/files" + ActiveSupport::TestCase.fixtures :all +end