From 62246f74e9a13a41e9b2a824141385ec8fcd12eb Mon Sep 17 00:00:00 2001 From: Georg Ledermann Date: Thu, 9 Jun 2022 09:01:00 +0200 Subject: [PATCH] Migrate to Inertia and Svelte.js --- .env.example | 2 +- .env.test | 2 +- .eslintignore | 5 + .eslintrc.js | 42 +- .prettierrc.json | 6 +- .rubocop.yml | 3 + .vscode/settings.json | 2 +- Dockerfile | 2 +- Gemfile | 6 + Gemfile.lock | 6 + README.md | 81 +- app/controllers/about_controller.rb | 5 + app/controllers/application_controller.rb | 1 + app/controllers/clicks_controller.rb | 9 +- app/controllers/concerns/inertia_errors.rb | 11 + app/controllers/exceptions_controller.rb | 14 + app/controllers/vue_controller.rb | 4 - app/helpers/application_helper.rb | 43 - app/javascript/channels/index.js | 3 +- .../components/AppBackground.svelte | 33 + app/javascript/components/AppFooter.svelte | 55 ++ app/javascript/components/AppHeader.svelte | 39 + app/javascript/components/ClickButton.svelte | 34 + app/javascript/components/ClickList.svelte | 44 + app/javascript/components/GitVersion.svelte | 20 + app/javascript/components/PageTitle.svelte | 5 + app/javascript/entrypoints/application.css | 6 +- app/javascript/entrypoints/application.ts | 66 +- app/javascript/images/logo.svg | 2 +- app/javascript/layouts/default.svelte | 23 + app/javascript/pages/About/Show.svelte | 74 ++ app/javascript/pages/Clicks/Index.svelte | 58 ++ app/javascript/pages/Error/Show.svelte | 22 + app/javascript/routes.d.ts | 118 +++ app/javascript/routes.js | 530 +++++++++++ app/javascript/src/App.vue | 25 - .../src/components/AppBackground.vue | 35 - app/javascript/src/components/AppFooter.vue | 68 -- app/javascript/src/components/AppHeader.vue | 44 - app/javascript/src/components/ClickButton.vue | 53 -- app/javascript/src/components/ClickList.vue | 51 - app/javascript/src/components/GitVersion.vue | 33 - .../src/components/LoadingAnimation.vue | 17 - app/javascript/src/components/PageTitle.vue | 7 - app/javascript/src/pages/AboutPage.vue | 244 ----- app/javascript/src/pages/HomePage.vue | 51 - app/javascript/src/pages/NotFound.vue | 11 - app/javascript/src/plugins/plausible.js | 13 - app/javascript/src/router.ts | 28 - app/javascript/src/shims-vue.d.ts | 12 - app/javascript/src/stores/click.ts | 61 -- app/javascript/src/use/online-offline.ts | 27 - app/javascript/stores/clicks.ts | 46 + app/javascript/{src => }/utils/metaContent.ts | 0 app/javascript/utils/setupHoneybadger.ts | 13 + app/javascript/utils/setupInertia.ts | 21 + app/javascript/utils/setupPlausible.ts | 17 + app/models/click.rb | 5 - app/services/features.rb | 45 + app/services/features/data.json | 128 +++ app/views/layouts/application.html.erb | 14 +- app/views/statics/manifest.webmanifest.erb | 4 +- app/views/vue/index.html.erb | 1 - config/application.rb | 6 +- config/database.yml | 6 +- .../initializers/content_security_policy.rb | 9 +- config/initializers/inertia_rails.rb | 3 + config/initializers/js_routes.rb | 23 + config/routes.rb | 5 +- config/vite.json | 2 +- cypress.config.ts | 4 +- docs/network.png | Bin 117445 -> 121086 bytes docs/web-page-test.png | Bin 35896 -> 36118 bytes jest.config.js | 20 +- package.json | 62 +- public/404.html | 69 -- public/422.html | 69 -- public/500.html | 68 -- public/android-chrome-192x192.png | Bin 1940 -> 2166 bytes public/android-chrome-512x512.png | Bin 5543 -> 7413 bytes public/apple-touch-icon.png | Bin 1817 -> 2086 bytes public/favicon-16x16.png | Bin 257 -> 266 bytes public/favicon-32x32.png | Bin 419 -> 426 bytes public/favicon.ico | Bin 1314 -> 15086 bytes public/maskable_icon_x384.png | Bin 4915 -> 4230 bytes public/mstile-144x144.png | Bin 1545 -> 1736 bytes public/mstile-150x150.png | Bin 1762 -> 1707 bytes public/mstile-310x150.png | Bin 1895 -> 1915 bytes public/mstile-310x310.png | Bin 3901 -> 4428 bytes public/mstile-70x70.png | Bin 1112 -> 1133 bytes public/safari-pinned-tab.svg | 2 +- public/sw.js | 11 - spec/javascript/components/GitVersion.test.ts | 21 + spec/javascript/src/App.test.ts | 45 - .../src/__snapshots__/App.test.ts.snap | 43 - .../src/components/GitVersion.test.ts | 17 - .../__snapshots__/GitVersion.test.ts.snap | 3 - spec/javascript/src/pages/About.test.ts | 27 - spec/javascript/src/pages/Home.test.ts | 60 -- spec/javascript/src/pages/NotFound.test.ts | 10 - .../pages/__snapshots__/About.test.ts.snap | 265 ------ .../src/pages/__snapshots__/Home.test.ts.snap | 23 - .../pages/__snapshots__/NotFound.test.ts.snap | 8 - spec/javascript/src/stores/click.test.ts | 60 -- spec/javascript/src/utils/metaContent.test.ts | 15 - spec/javascript/utils/metaContent.test.ts | 32 + spec/rails_helper.rb | 1 + spec/requests/about_spec.rb | 10 + spec/requests/clicks_spec.rb | 32 +- spec/requests/deflater_spec.rb | 2 +- spec/requests/exceptions_spec.rb | 41 + spec/support/error_responses.rb | 21 + svelte.config.js | 5 + tailwind.config.js | 6 +- tsconfig.json | 79 +- vite.config.ts | 16 +- yarn.lock | 900 ++++++++---------- 117 files changed, 2076 insertions(+), 2475 deletions(-) create mode 100644 app/controllers/about_controller.rb create mode 100644 app/controllers/concerns/inertia_errors.rb create mode 100644 app/controllers/exceptions_controller.rb delete mode 100644 app/controllers/vue_controller.rb create mode 100644 app/javascript/components/AppBackground.svelte create mode 100644 app/javascript/components/AppFooter.svelte create mode 100644 app/javascript/components/AppHeader.svelte create mode 100644 app/javascript/components/ClickButton.svelte create mode 100644 app/javascript/components/ClickList.svelte create mode 100644 app/javascript/components/GitVersion.svelte create mode 100644 app/javascript/components/PageTitle.svelte create mode 100644 app/javascript/layouts/default.svelte create mode 100644 app/javascript/pages/About/Show.svelte create mode 100644 app/javascript/pages/Clicks/Index.svelte create mode 100644 app/javascript/pages/Error/Show.svelte create mode 100644 app/javascript/routes.d.ts create mode 100644 app/javascript/routes.js delete mode 100644 app/javascript/src/App.vue delete mode 100644 app/javascript/src/components/AppBackground.vue delete mode 100644 app/javascript/src/components/AppFooter.vue delete mode 100644 app/javascript/src/components/AppHeader.vue delete mode 100644 app/javascript/src/components/ClickButton.vue delete mode 100644 app/javascript/src/components/ClickList.vue delete mode 100644 app/javascript/src/components/GitVersion.vue delete mode 100644 app/javascript/src/components/LoadingAnimation.vue delete mode 100644 app/javascript/src/components/PageTitle.vue delete mode 100644 app/javascript/src/pages/AboutPage.vue delete mode 100644 app/javascript/src/pages/HomePage.vue delete mode 100644 app/javascript/src/pages/NotFound.vue delete mode 100644 app/javascript/src/plugins/plausible.js delete mode 100644 app/javascript/src/router.ts delete mode 100644 app/javascript/src/shims-vue.d.ts delete mode 100644 app/javascript/src/stores/click.ts delete mode 100644 app/javascript/src/use/online-offline.ts create mode 100644 app/javascript/stores/clicks.ts rename app/javascript/{src => }/utils/metaContent.ts (100%) create mode 100644 app/javascript/utils/setupHoneybadger.ts create mode 100644 app/javascript/utils/setupInertia.ts create mode 100644 app/javascript/utils/setupPlausible.ts create mode 100644 app/services/features.rb create mode 100644 app/services/features/data.json delete mode 100644 app/views/vue/index.html.erb create mode 100644 config/initializers/inertia_rails.rb create mode 100644 config/initializers/js_routes.rb delete mode 100644 public/404.html delete mode 100644 public/422.html delete mode 100644 public/500.html delete mode 100644 public/sw.js create mode 100644 spec/javascript/components/GitVersion.test.ts delete mode 100644 spec/javascript/src/App.test.ts delete mode 100644 spec/javascript/src/__snapshots__/App.test.ts.snap delete mode 100644 spec/javascript/src/components/GitVersion.test.ts delete mode 100644 spec/javascript/src/components/__snapshots__/GitVersion.test.ts.snap delete mode 100644 spec/javascript/src/pages/About.test.ts delete mode 100644 spec/javascript/src/pages/Home.test.ts delete mode 100644 spec/javascript/src/pages/NotFound.test.ts delete mode 100644 spec/javascript/src/pages/__snapshots__/About.test.ts.snap delete mode 100644 spec/javascript/src/pages/__snapshots__/Home.test.ts.snap delete mode 100644 spec/javascript/src/pages/__snapshots__/NotFound.test.ts.snap delete mode 100644 spec/javascript/src/stores/click.test.ts delete mode 100644 spec/javascript/src/utils/metaContent.test.ts create mode 100644 spec/javascript/utils/metaContent.test.ts create mode 100644 spec/requests/about_spec.rb create mode 100644 spec/requests/exceptions_spec.rb create mode 100644 spec/support/error_responses.rb create mode 100644 svelte.config.js diff --git a/.env.example b/.env.example index 7ee505d9..8362fe62 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,5 @@ # Hostname of the application -APP_HOST=templatus.test +APP_HOST=templatus-inertia.test # Timezone TIME_ZONE=Berlin diff --git a/.env.test b/.env.test index 0194a966..00ef28f8 100644 --- a/.env.test +++ b/.env.test @@ -1 +1 @@ -APP_HOST=templatus.test +APP_HOST=templatus-inertia.test diff --git a/.eslintignore b/.eslintignore index 9dd10973..6b119bf6 100644 --- a/.eslintignore +++ b/.eslintignore @@ -6,3 +6,8 @@ /log /db /config +*.config.js +*.config.ts +.eslintrc.js +app/javascript/routes.js +app/javascript/routes.d.ts diff --git a/.eslintrc.js b/.eslintrc.js index c51507e3..6d27db93 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,44 +1,4 @@ module.exports = { root: true, - env: { - browser: true, - jest: true, - node: true, - }, - plugins: [], - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:jest/recommended', - 'plugin:vue/base', - 'plugin:vue/vue3-essential', - 'plugin:vue/vue3-recommended', - 'plugin:vue/vue3-strongly-recommended', - 'prettier', - 'plugin:prettier/recommended', - ], - globals: { - defineProps: 'readonly', - defineEmits: 'readonly', - defineExpose: 'readonly', - withDefaults: 'readonly', - }, - rules: { - '@typescript-eslint/no-unused-vars': [ - 'error', - { - argsIgnorePattern: '^_', - }, - ], - '@typescript-eslint/no-var-requires': 'off', - 'vue/no-v-html': 'off', - 'vue/script-setup-uses-vars': 'error', - 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', - }, - parserOptions: { - parser: '@typescript-eslint/parser', // the typescript-parser for eslint, instead of tslint - sourceType: 'module', // allow the use of imports statements - ecmaVersion: 2020, // allow the parsing of modern ecmascript - }, + extends: '@feltcoop', }; diff --git a/.prettierrc.json b/.prettierrc.json index 78d6b4db..0adfaa51 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -3,5 +3,9 @@ "singleQuote": true, "rubyPlugins": "plugin/single_quotes,plugin/trailing_comma", "printWidth": 80, - "tabWidth": 2 + "tabWidth": 2, + "svelteAllowShorthand": true, + "svelteSortOrder": "scripts-markup-styles", + "svelteStrictMode": false, + "plugins": ["prettier-plugin-svelte"] } diff --git a/.rubocop.yml b/.rubocop.yml index fbc8fe83..dfcc8189 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -89,6 +89,9 @@ Style/StringLiterals: Style/StringLiteralsInInterpolation: EnforcedStyle: single_quotes +Style/DisableCopsWithinSourceCodeDirective: + Enabled: false + ### Metrics Metrics/BlockLength: diff --git a/.vscode/settings.json b/.vscode/settings.json index eae324a0..39d68a60 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,7 +18,7 @@ "**/node_modules": true }, - "eslint.validate": ["javascript", "vue"], + "eslint.validate": ["javascript"], "ruby.lint": { "rubocop": { diff --git a/Dockerfile b/Dockerfile index 739ff074..41a2851b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM ghcr.io/ledermann/rails-base-builder:3.1.2-alpine AS Builder # Remove some files not needed in resulting image. # Because they are required for building the image, they can't be added to .dockerignore -RUN rm -r package.json yarn.lock tsconfig.json tailwind.config.js postcss.config.js vite.config.ts +RUN rm -r package.json yarn.lock tsconfig.json tailwind.config.js postcss.config.js vite.config.ts svelte.config.js cypress.config.ts FROM ghcr.io/ledermann/rails-base-final:3.1.2-alpine LABEL maintainer="georg@ledermann.dev" diff --git a/Gemfile b/Gemfile index 41a82777..b2964604 100644 --- a/Gemfile +++ b/Gemfile @@ -9,6 +9,9 @@ gem 'rails', '~> 7.0.3' # Use Vite in Rails and bring joy to your JavaScript experience (https://github.com/ElMassimo/vite_ruby) gem 'vite_rails' +# Inertia adapter for Rails (https://github.com/inertiajs/inertia-rails) +gem 'inertia_rails' + # Pg is the Ruby interface to the PostgreSQL RDBMS (https://github.com/ged/ruby-pg) gem 'pg', '~> 1.1' @@ -39,6 +42,9 @@ gem 'rack-brotli' # Simple, efficient background processing for Ruby (https://sidekiq.org) gem 'sidekiq' +# Brings Rails named routes to javascript (http://github.com/railsware/js-routes) +gem 'js-routes' + group :development, :test do # Debugging functionality for Ruby (https://github.com/ruby/debug) gem 'debug', platforms: %i[mri mingw x64_mingw] diff --git a/Gemfile.lock b/Gemfile.lock index 9c5caff8..d71185ce 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -114,9 +114,13 @@ GEM honeybadger (4.12.1) i18n (1.10.0) concurrent-ruby (~> 1.0) + inertia_rails (1.12.1) + rails (>= 5) io-console (0.5.11) irb (1.4.1) reline (>= 0.3.0) + js-routes (2.2.4) + railties (>= 4) listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) @@ -323,6 +327,8 @@ DEPENDENCIES dotenv-rails guard-rspec honeybadger + inertia_rails + js-routes lograge pg (~> 1.1) prettier_print diff --git a/README.md b/README.md index 096b2be7..0c8e6190 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,20 @@ -[![Build Status](https://github.com/ledermann/templatus/workflows/CI/badge.svg)](https://github.com/ledermann/templatus/actions) +[![Build Status](https://github.com/ledermann/templatus-inertia/workflows/CI/badge.svg)](https://github.com/ledermann/templatus-inertia/actions) [![Cypress](https://img.shields.io/endpoint?url=https://dashboard.cypress.io/badge/simple/5d6bqs&style=flat-square&logo=cypress)](https://dashboard.cypress.io/projects/5d6bqs/runs) -# Templatus (Vue edition) +# Templatus (Inertia edition) -Templatus is an opinionated template to build web applications with Ruby on Rails and Vue.js 3. It simplifies the process of setting up a new application while following best practices. +Templatus is an opinionated template to build web applications with Ruby on Rails and Inertia (using Svelte.js). It simplifies the process of setting up a new application while following best practices. -Live demo available at https://templatus.ledermann.dev +Live demo available at https://templatus-inertia.ledermann.dev -There is a sister repository that uses Hotwire instead of Vue.js: +There are two sister repositories: + +Using Hotwire instead of Inertia (the "DHH way"): https://github.com/ledermann/templatus-hotwire/ +Using API instead of Inertia and Svelte.js instead of Vue.js; +https://github.com/ledermann/templatus/ + ## Features / Technology stack ### Backend @@ -23,13 +28,10 @@ https://github.com/ledermann/templatus-hotwire/ ### Frontend -- [Vite](https://vitejs.dev/) for bundling JavaScript and CSS with Hot Module Replacement (HMR) in development -- [Vue 3](https://v3.vuejs.org/) as frontend framework -- [Vue Router 4](https://next.router.vuejs.org/) for frontend routing -- [Pinia](https://pinia.esm.dev/) for frontend state management +- [Inertia](https://inertiajs.com/) as a protocol for frontend/backend communication - [Tailwind CSS 3](https://tailwindcss.com/) to not have to write CSS at all -- [Heroicons](https://heroicons.com/) for SVG icons as Vue components -- [Rails Request.JS](https://github.com/rails/request.js) for AJAX requests with default headers +- [Tabler Icons](https://tablericons.com/) for free SVG icons +- [Vite](https://vitejs.dev/) for bundling JavaScript and CSS with Hot Module Replacement (HMR) in development ### Development @@ -44,7 +46,6 @@ https://github.com/ledermann/templatus-hotwire/ - [RuboCop](https://rubocop.org/) for Ruby static code analysis - [RSpec](https://rspec.info/) for Ruby testing - [ESLint](https://eslint.org/) for TypeScript static code analysis -- [Jest](https://jestjs.io/) for TypeScript unit testing - [Cypress](https://www.cypress.io/) for E2E testing ### Deployment @@ -62,7 +63,6 @@ https://github.com/ledermann/templatus-hotwire/ - [Lograge](https://github.com/roidrage/lograge) for single-line logging - Gzip and Brotli compression of dynamic responses (HTML, JSON) using [Rack::Deflater](https://github.com/rack/rack/blob/master/lib/rack/deflater.rb), [Rack::Brotli](https://github.com/marcotc/rack-brotli) - Fine-tuned Content Security Policy (CSP) -- Ready for PWA (manifest, service-worker) ## Metrics @@ -76,35 +76,30 @@ This template is developed with optimized performance and security in mind. The ### Security headers -[![Security headers](docs/security-headers.png)](https://securityheaders.com/?q=templatus.ledermann.dev&followRedirects=on) +[![Security headers](docs/security-headers.png)](https://securityheaders.com/?q=templatus-inertia.ledermann.dev&followRedirects=on) What's the red _Permissions-Policy_ badge? This seems to be fixed with one of the next Rails update: https://github.com/rails/rails/pull/41994 ### Mozilla Observatory -[![Mozilla Observatory](docs/mozilla-observatory.png)](https://observatory.mozilla.org/analyze/templatus.ledermann.dev) +[![Mozilla Observatory](docs/mozilla-observatory.png)](https://observatory.mozilla.org/analyze/templatus-inertia.ledermann.dev) ### WebPageTest -[![WebPageTest](docs/web-page-test.png)](https://www.webpagetest.org/result/220603_AiDcD6_63C/) +[![WebPageTest](docs/web-page-test.png)](https://www.webpagetest.org/result/220530_BiDcQQ_83b754931114d99469b521e72731eb4d/) ### GTmetrix -[![GTmetrix](docs/GTmetrix.png)](https://gtmetrix.com/reports/templatus.ledermann.dev/OsUlXu9V/) +[![GTmetrix](docs/GTmetrix.png)](https://gtmetrix.com/reports/templatus-inertia.ledermann.dev/OsUlXu9V/) ### Check-your-website -[![Check-your-website](docs/check-your-website.png)](https://check-your-website.server-daten.de/?q=templatus.ledermann.dev) +[![Check-your-website](docs/check-your-website.png)](https://check-your-website.server-daten.de/?q=templatus-inertia.ledermann.dev) ### JavaScript size -147 KB of compiled JavaScript (after tree-shaking, minified & uncompressed). The largest parts are: - -- Vue.js + Vue Router (75 KB) -- Honeybadger (23 KB) -- ActionCable (9 KB) -- Pinia (6 KB) +165 KB of compiled JavaScript (after tree-shaking, minified & uncompressed). ``` $ RAILS_ENV=production bin/rails assets:precompile @@ -115,41 +110,41 @@ success Already up-to-date. Building with Vite ⚡️ vite v2.9.10 building for production... transforming... -✓ 298 modules transformed. +✓ 155 modules transformed. rendering chunks... -../../public/vite/assets/logo.44ced38d.svg 0.48 KiB +../../public/vite/assets/logo.10f03a2b.svg 0.48 KiB ../../public/vite/manifest-assets.json 0.22 KiB ../../public/vite/manifest.json 0.32 KiB -../../public/vite/assets/application.46f860cd.js 16.18 KiB / gzip: 6.58 KiB -../../public/vite/assets/application.46f860cd.js.map 25.15 KiB -../../public/vite/assets/application.97255384.css 19.66 KiB / gzip: 4.69 KiB -../../public/vite/assets/vendor.bc768583.js 130.42 KiB / gzip: 48.90 KiB -../../public/vite/assets/vendor.bc768583.js.map 979.48 KiB -Build with Vite complete: /Users/ledermann/Projects/templatus/public/vite +../../public/vite/assets/application.5e23928d.js 27.28 KiB / gzip: 10.26 KiB +../../public/vite/assets/application.5e23928d.js.map 49.74 KiB +../../public/vite/assets/application.a344bc09.css 18.45 KiB / gzip: 4.47 KiB +../../public/vite/assets/vendor.b59622b9.js 137.75 KiB / gzip: 48.35 KiB +../../public/vite/assets/vendor.b59622b9.js.map 555.30 KiB +Build with Vite complete: /Users/ledermann/Projects/templatus-inertia/public/vite ``` ### Network transfer -Small footprint: The demo application transfers only **62 KB** of data on the first visit. +Small footprint: The demo application transfers only **72 KB** of data on the first visit. ![Network](docs/network.png) ### Docker build time -With multi-stage building and using [DockerRailsBase](https://github.com/ledermann/docker-rails-base) the build of the Docker image takes very little time. Currently, the build job requires about 1,5 minutes on GitHub Actions (see https://github.com/ledermann/templatus/actions) +With multi-stage building and using [DockerRailsBase](https://github.com/ledermann/docker-rails-base) the build of the Docker image takes very little time. Currently, the `deploy` job requires about 1,5 minutes on GitHub Actions (see https://github.com/ledermann/templatus-inertia/actions) ### Docker image size -The Docker image is based on Alpine Linux and is optimized for minimal size (currently **113 MB** uncompressed disk size). It includes just the bare minimum - no build tools like Node.js, no JS sources (just the compiled assets), no tests. +The Docker image is based on Alpine Linux and is optimized for minimal size (currently **115 MB** uncompressed disk size). It includes just the bare minimum - no build tools like Node.js, no JS sources (just the compiled assets), no tests. ``` -$ container-diff analyze ghcr.io/ledermann/templatus -n +$ container-diff analyze ghcr.io/ledermann/templatus-inertia -n -----Size----- -Analysis for ghcr.io/ledermann/templatus: -IMAGE DIGEST SIZE -ghcr.io/ledermann/templatus sha256:... 114.9M +Analysis for ghcr.io/ledermann/templatus-inertia: +IMAGE DIGEST SIZE +ghcr.io/ledermann/templatus-inertia sha256:... 114.7M ``` ## Getting started @@ -159,8 +154,8 @@ ghcr.io/ledermann/templatus sha256:... 114.9M 1. Clone the repo locally: ```bash -git clone git@github.com:ledermann/templatus.git -cd templatus +git clone git@github.com:ledermann/templatus-inertia.git +cd templatus-inertia ``` 2. Install PostgreSQL, Redis, and puma-dev (if not already present). On a Mac with Homebrew, run this to install from the `Brewfile`: @@ -178,7 +173,7 @@ puma-dev link # Use Vite via puma-dev proxy # Adopted from https://github.com/puma/puma-dev#webpack-dev-server -echo 3036 > ~/.puma-dev/vite.templatus +echo 3036 > ~/.puma-dev/vite.templatus-inertia ``` 4. Setup the application to install gems and NPM packages and create the database: @@ -193,7 +188,7 @@ bin/setup bin/dev ``` -Then open https://templatus.test in your browser. +Then open https://templatus-inertia.test in your browser. ### Running linters diff --git a/app/controllers/about_controller.rb b/app/controllers/about_controller.rb new file mode 100644 index 00000000..7e208521 --- /dev/null +++ b/app/controllers/about_controller.rb @@ -0,0 +1,5 @@ +class AboutController < ApplicationController + def show + render inertia: 'About/Show', props: { features: Features.new.data } + end +end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 09705d12..79e252bf 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,2 +1,3 @@ class ApplicationController < ActionController::Base + include InertiaErrors end diff --git a/app/controllers/clicks_controller.rb b/app/controllers/clicks_controller.rb index d03e354a..0f326304 100644 --- a/app/controllers/clicks_controller.rb +++ b/app/controllers/clicks_controller.rb @@ -1,13 +1,8 @@ class ClicksController < ApplicationController def index clicks = Click.order(created_at: :desc).limit(5).to_a - return unless stale?(clicks, template: false, public: true) - expires_in 0, must_revalidate: true - - respond_to do |format| - format.json { render json: { total: Click.count, items: clicks } } - end + render inertia: 'Clicks/Index', props: { total: Click.count, items: clicks } end def create @@ -15,6 +10,8 @@ def create Click.create! user_agent: request.user_agent, ip: anonymize(request.remote_ip) ActionCable.server.broadcast 'clicks_channel', click + + render inertia: 'Clicks/Index' end private diff --git a/app/controllers/concerns/inertia_errors.rb b/app/controllers/concerns/inertia_errors.rb new file mode 100644 index 00000000..0755448c --- /dev/null +++ b/app/controllers/concerns/inertia_errors.rb @@ -0,0 +1,11 @@ +require 'active_support/concern' + +module InertiaErrors + extend ActiveSupport::Concern + + included do + rescue_from ActiveRecord::RecordNotFound do + render inertia: 'Error/Show', props: { status: 404 }, status: :not_found + end + end +end diff --git a/app/controllers/exceptions_controller.rb b/app/controllers/exceptions_controller.rb new file mode 100644 index 00000000..bdf812f1 --- /dev/null +++ b/app/controllers/exceptions_controller.rb @@ -0,0 +1,14 @@ +class ExceptionsController < ActionController::Base + # Don't raise InvalidCrossOriginRequest for requesting not existing JavaScript file + skip_after_action :verify_same_origin_request + + def show + status = request.path_info.delete_prefix('/').to_i + + if request.format.html? || request.inertia? + render inertia: 'Error/Show', props: { status: }, status: status + else + head status + end + end +end diff --git a/app/controllers/vue_controller.rb b/app/controllers/vue_controller.rb deleted file mode 100644 index f8726c9e..00000000 --- a/app/controllers/vue_controller.rb +++ /dev/null @@ -1,4 +0,0 @@ -class VueController < ApplicationController - def index - end -end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 25619933..de6be794 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,45 +1,2 @@ module ApplicationHelper - def versions - { - alpine: alpine_version, - ruby: ruby_version, - rails: rails_version, - puma: puma_version, - postgres: postgres_version, - redis: redis_version, - sidekiq: sidekiq_version, - } - end - - private - - def alpine_version - return unless RUBY_PLATFORM.include?('linux') - - `cat /etc/alpine-release 2>/dev/null`.chomp - end - - def ruby_version - RUBY_VERSION - end - - def rails_version - Rails.version - end - - def puma_version - Puma::Const::PUMA_VERSION - end - - def postgres_version - ActiveRecord::Base.connection.select_value('SHOW server_version;') - end - - def redis_version - Redis.new.info['redis_version'] - end - - def sidekiq_version - Sidekiq::VERSION - end end diff --git a/app/javascript/channels/index.js b/app/javascript/channels/index.js index 298a304d..43b3652f 100644 --- a/app/javascript/channels/index.js +++ b/app/javascript/channels/index.js @@ -1,5 +1,4 @@ // Load all the channels within this directory and all subdirectories. // Channel files must be named *_channel.js. -const channels = require.context('.', true, /_channel\.js$/); -channels.keys().forEach(channels); +import.meta.globEager('./**/*_channel.js'); diff --git a/app/javascript/components/AppBackground.svelte b/app/javascript/components/AppBackground.svelte new file mode 100644 index 00000000..21e633ca --- /dev/null +++ b/app/javascript/components/AppBackground.svelte @@ -0,0 +1,33 @@ + + + diff --git a/app/javascript/components/AppFooter.svelte b/app/javascript/components/AppFooter.svelte new file mode 100644 index 00000000..c0ac2056 --- /dev/null +++ b/app/javascript/components/AppFooter.svelte @@ -0,0 +1,55 @@ + + + diff --git a/app/javascript/components/AppHeader.svelte b/app/javascript/components/AppHeader.svelte new file mode 100644 index 00000000..e0270dd6 --- /dev/null +++ b/app/javascript/components/AppHeader.svelte @@ -0,0 +1,39 @@ + + +
+ Logo + + +
diff --git a/app/javascript/components/ClickButton.svelte b/app/javascript/components/ClickButton.svelte new file mode 100644 index 00000000..c67ea765 --- /dev/null +++ b/app/javascript/components/ClickButton.svelte @@ -0,0 +1,34 @@ + + +
+
+ {#key count} +
+ {count.toLocaleString()} +
+ {/key} +
Clicks
+
+ + + + +
diff --git a/app/javascript/components/ClickList.svelte b/app/javascript/components/ClickList.svelte new file mode 100644 index 00000000..69a3b6c3 --- /dev/null +++ b/app/javascript/components/ClickList.svelte @@ -0,0 +1,44 @@ + + + diff --git a/app/javascript/components/GitVersion.svelte b/app/javascript/components/GitVersion.svelte new file mode 100644 index 00000000..9a60d0eb --- /dev/null +++ b/app/javascript/components/GitVersion.svelte @@ -0,0 +1,20 @@ + + +
+ {commitVersion} + +
diff --git a/app/javascript/components/PageTitle.svelte b/app/javascript/components/PageTitle.svelte new file mode 100644 index 00000000..016a9e2e --- /dev/null +++ b/app/javascript/components/PageTitle.svelte @@ -0,0 +1,5 @@ +

+ +

diff --git a/app/javascript/entrypoints/application.css b/app/javascript/entrypoints/application.css index 9eab8194..55710b0b 100644 --- a/app/javascript/entrypoints/application.css +++ b/app/javascript/entrypoints/application.css @@ -5,7 +5,7 @@ :root { --color-rails-light: theme('colors.rails.light'); --color-rails-dark: theme('colors.rails.dark'); - --color-vue: theme('colors.vue.DEFAULT'); + --color-inertia: theme('colors.inertia.DEFAULT'); } .gradient__rails-light { @@ -16,6 +16,6 @@ stop-color: var(--color-rails-dark); } -.gradient__vue { - stop-color: var(--color-vue); +.gradient__inertia { + stop-color: var(--color-inertia); } diff --git a/app/javascript/entrypoints/application.ts b/app/javascript/entrypoints/application.ts index e28f2dc6..b4393e71 100644 --- a/app/javascript/entrypoints/application.ts +++ b/app/javascript/entrypoints/application.ts @@ -1,63 +1,3 @@ -import { createApp } from 'vue'; -import { createPinia } from 'pinia'; -import { metaContent } from '@/utils/metaContent'; -import router from '@/router'; -import App from '@/App.vue'; -import HoneybadgerVue from '@honeybadger-io/vue'; -import plausible from '@/plugins/plausible'; -import { register } from 'register-service-worker'; - -register('/sw.js', { - registrationOptions: { scope: './' }, - ready(_registration: ServiceWorkerRegistration) { - console.log('Service worker is active.'); - }, - registered(_registration: ServiceWorkerRegistration) { - console.log('Service worker has been registered.'); - }, - cached(_registration: ServiceWorkerRegistration) { - console.log('Content has been cached for offline use.'); - }, - updatefound(_registration: ServiceWorkerRegistration) { - console.log('New content is downloading.'); - }, - updated(_registration: ServiceWorkerRegistration) { - console.log('New content is available; please refresh.'); - }, - offline() { - console.log( - 'No internet connection found. App is running in offline mode.', - ); - }, - error(error) { - console.error('Error during service worker registration:', error); - }, -}); - -document.addEventListener('DOMContentLoaded', () => { - const app = createApp(App); - - const honeybadgerApiKey = metaContent('honeybadger-api-key'); - if (honeybadgerApiKey) { - const gitCommitVersion = metaContent('git-commit-version'); - - app.use(HoneybadgerVue, { - apiKey: honeybadgerApiKey, - environment: 'production', - revision: gitCommitVersion, - }); - } - - app.use(router); - app.use(createPinia()); - - const plausibleUrl = metaContent('plausible-url'); - if (plausibleUrl) - app.use(plausible, { - domain: metaContent('app-host'), - hashMode: true, - apiHost: plausibleUrl, - }); - - app.mount('#vue-app'); -}); +import '../utils/setupHoneybadger.ts'; +import '../utils/setupInertia.ts'; +import '../utils/setupPlausible.ts'; diff --git a/app/javascript/images/logo.svg b/app/javascript/images/logo.svg index 9762c8e9..cf3b07de 100644 --- a/app/javascript/images/logo.svg +++ b/app/javascript/images/logo.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/app/javascript/layouts/default.svelte b/app/javascript/layouts/default.svelte new file mode 100644 index 00000000..e48cbf74 --- /dev/null +++ b/app/javascript/layouts/default.svelte @@ -0,0 +1,23 @@ + + +
+ + + + +
+ +
+ + +
diff --git a/app/javascript/pages/About/Show.svelte b/app/javascript/pages/About/Show.svelte new file mode 100644 index 00000000..ad590be1 --- /dev/null +++ b/app/javascript/pages/About/Show.svelte @@ -0,0 +1,74 @@ + + + + +About + +

+ Templatus is an opinionated template for web applications with + Ruby on Rails and Inertia +

+ +
+ {#each features as group} +
+
+

+ {group.slogan} +

+

+ {group.name} +

+
+
+
+ {#each group.items as feature} +
+
+ + +

+ + {feature.name} + + + {#if feature.version} + + {feature.version} + + {/if} +

+
+
+ {@html feature.description} +
+
+ {/each} +
+
+
+ {/each} +
diff --git a/app/javascript/pages/Clicks/Index.svelte b/app/javascript/pages/Clicks/Index.svelte new file mode 100644 index 00000000..32f8554a --- /dev/null +++ b/app/javascript/pages/Clicks/Index.svelte @@ -0,0 +1,58 @@ + + + + +
+ Hello, Templatus! + +

+ Templatus is an opinionated template for web applications with + Ruby on Rails and Inertia +

+
+ + + +{#if $currentItems.length} +

+ Latest clicks +

+ + +{/if} diff --git a/app/javascript/pages/Error/Show.svelte b/app/javascript/pages/Error/Show.svelte new file mode 100644 index 00000000..38742607 --- /dev/null +++ b/app/javascript/pages/Error/Show.svelte @@ -0,0 +1,22 @@ + + + + +Error {status} + +

+ {ERROR_MESSAGES[status] || 'Unknown Error'} +

diff --git a/app/javascript/routes.d.ts b/app/javascript/routes.d.ts new file mode 100644 index 00000000..42d29a35 --- /dev/null +++ b/app/javascript/routes.d.ts @@ -0,0 +1,118 @@ +/** + * File generated by js-routes RubyVariables.GEM_VERSION + * Based on Rails RubyVariables.RAILS_VERSION routes of RubyVariables.APP_CLASS + */ +declare type Optional = { + [P in keyof T]?: T[P] | null; +}; +declare type BaseRouteParameter = string | boolean | Date | number; +declare type MethodRouteParameter = BaseRouteParameter | (() => BaseRouteParameter); +declare type ModelRouteParameter = { + id: MethodRouteParameter; +} | { + to_param: MethodRouteParameter; +} | { + toParam: MethodRouteParameter; +}; +declare type RequiredRouteParameter = BaseRouteParameter | ModelRouteParameter; +declare type OptionalRouteParameter = undefined | null | RequiredRouteParameter; +declare type QueryRouteParameter = OptionalRouteParameter | QueryRouteParameter[] | { + [k: string]: QueryRouteParameter; +}; +declare type RouteParameters = Record; +declare type Serializable = Record; +declare type Serializer = (value: Serializable) => string; +declare type RouteHelperExtras = { + requiredParams(): string[]; + toString(): string; +}; +declare type RequiredParameters = T extends 1 ? [RequiredRouteParameter] : T extends 2 ? [RequiredRouteParameter, RequiredRouteParameter] : T extends 3 ? [RequiredRouteParameter, RequiredRouteParameter, RequiredRouteParameter] : T extends 4 ? [ + RequiredRouteParameter, + RequiredRouteParameter, + RequiredRouteParameter, + RequiredRouteParameter +] : RequiredRouteParameter[]; +declare type RouteHelperOptions = RouteOptions & Optional>; +declare type RouteHelper = ((...args: [...RequiredParameters, RouteHelperOptions]) => string) & RouteHelperExtras; +declare type RouteHelpers = Record; +declare type Configuration = { + prefix: string; + default_url_options: RouteParameters; + special_options_key: string; + serializer: Serializer; +}; +interface RouterExposedMethods { + config(): Configuration; + configure(arg: Partial): Configuration; + serialize: Serializer; +} +declare type KeywordUrlOptions = Optional<{ + host: string; + protocol: string; + subdomain: string; + port: string | number; + anchor: string; + trailing_slash: boolean; + params: RouteParameters; +}>; +declare type RouteOptions = KeywordUrlOptions & RouteParameters; +declare type PartsTable = Record; +declare type ModuleType = "CJS" | "AMD" | "UMD" | "ESM" | "DTS" | "NIL"; +declare const RubyVariables: { + PREFIX: string; + DEPRECATED_GLOBBING_BEHAVIOR: boolean; + SPECIAL_OPTIONS_KEY: string; + DEFAULT_URL_OPTIONS: RouteParameters; + SERIALIZER: Serializer; + ROUTES_OBJECT: RouteHelpers; + MODULE_TYPE: ModuleType; + WRAPPER: (callback: T) => T; +}; +declare const define: undefined | (((arg: unknown[], callback: () => unknown) => void) & { + amd?: unknown; +}); +declare const module: { + exports: any; +} | undefined; +export const configure: RouterExposedMethods['configure']; + +export const config: RouterExposedMethods['config']; + +export const serialize: RouterExposedMethods['serialize']; + +/** + * Generates rails route to + * /about(.:format) + * @param {object | undefined} options + * @returns {string} route path + */ +export const about: (( + options?: {format?: OptionalRouteParameter} & RouteOptions +) => string) & RouteHelperExtras; + +/** + * Generates rails route to + * / + * @param {object | undefined} options + * @returns {string} route path + */ +export const clicks: (( + options?: {} & RouteOptions +) => string) & RouteHelperExtras; + +/** + * Generates rails route to + * / + * @param {object | undefined} options + * @returns {string} route path + */ +export const root: (( + options?: {} & RouteOptions +) => string) & RouteHelperExtras; + +// By some reason this line prevents all types in a file +// from being automatically exported +export {}; diff --git a/app/javascript/routes.js b/app/javascript/routes.js new file mode 100644 index 00000000..7f6e0139 --- /dev/null +++ b/app/javascript/routes.js @@ -0,0 +1,530 @@ +/** + * File generated by js-routes 2.2.4 + * Based on Rails 7.0.3 routes of Templatus::Application + */ +const __jsr = (() => { + const hasProp = (value, key) => Object.prototype.hasOwnProperty.call(value, key); + let NodeTypes; + (function (NodeTypes) { + NodeTypes[NodeTypes["GROUP"] = 1] = "GROUP"; + NodeTypes[NodeTypes["CAT"] = 2] = "CAT"; + NodeTypes[NodeTypes["SYMBOL"] = 3] = "SYMBOL"; + NodeTypes[NodeTypes["OR"] = 4] = "OR"; + NodeTypes[NodeTypes["STAR"] = 5] = "STAR"; + NodeTypes[NodeTypes["LITERAL"] = 6] = "LITERAL"; + NodeTypes[NodeTypes["SLASH"] = 7] = "SLASH"; + NodeTypes[NodeTypes["DOT"] = 8] = "DOT"; + })(NodeTypes || (NodeTypes = {})); + const isBrowser = typeof window !== "undefined"; + const ModuleReferences = { + CJS: { + define(routes) { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + module.exports = routes; + }, + isSupported() { + return typeof module === "object"; + }, + }, + AMD: { + define(routes) { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + define([], function () { + return routes; + }); + }, + isSupported() { + return typeof define === "function" && !!define.amd; + }, + }, + UMD: { + define(routes) { + if (ModuleReferences.AMD.isSupported()) { + ModuleReferences.AMD.define(routes); + } + else { + if (ModuleReferences.CJS.isSupported()) { + try { + ModuleReferences.CJS.define(routes); + } + catch (error) { + if (error.name !== "TypeError") + throw error; + } + } + } + }, + isSupported() { + return (ModuleReferences.AMD.isSupported() || + ModuleReferences.CJS.isSupported()); + }, + }, + ESM: { + define() { + // Module can only be defined using ruby code generation + }, + isSupported() { + // Its impossible to check if "export" keyword is supported + return true; + }, + }, + NIL: { + define() { + // Defined using const __jsr = + }, + isSupported() { + return true; + }, + }, + DTS: { + // Acts the same as ESM + define(routes) { + ModuleReferences.ESM.define(routes); + }, + isSupported() { + return ModuleReferences.ESM.isSupported(); + }, + }, + }; + class ParametersMissing extends Error { + constructor(...keys) { + super(`Route missing required keys: ${keys.join(", ")}`); + this.keys = keys; + Object.setPrototypeOf(this, Object.getPrototypeOf(this)); + this.name = ParametersMissing.name; + } + } + const UriEncoderSegmentRegex = /[^a-zA-Z0-9\-._~!$&'()*+,;=:@]/g; + const ReservedOptions = [ + "anchor", + "trailing_slash", + "subdomain", + "host", + "port", + "protocol", + ]; + class UtilsClass { + constructor() { + this.configuration = { + prefix: "", + default_url_options: {}, + special_options_key: "_options", + serializer: null || this.default_serializer.bind(this), + }; + } + default_serializer(value, prefix) { + if (this.is_nullable(value)) { + return ""; + } + if (!prefix && !this.is_object(value)) { + throw new Error("Url parameters should be a javascript hash"); + } + prefix = prefix || ""; + const result = []; + if (this.is_array(value)) { + for (const element of value) { + result.push(this.default_serializer(element, prefix + "[]")); + } + } + else if (this.is_object(value)) { + for (let key in value) { + if (!hasProp(value, key)) + continue; + let prop = value[key]; + if (this.is_nullable(prop) && prefix) { + prop = ""; + } + if (this.is_not_nullable(prop)) { + if (prefix) { + key = prefix + "[" + key + "]"; + } + result.push(this.default_serializer(prop, key)); + } + } + } + else { + if (this.is_not_nullable(value)) { + result.push(encodeURIComponent(prefix) + "=" + encodeURIComponent("" + value)); + } + } + return result.join("&"); + } + serialize(object) { + return this.configuration.serializer(object); + } + extract_options(number_of_params, args) { + const last_el = args[args.length - 1]; + if ((args.length > number_of_params && last_el === 0) || + (this.is_object(last_el) && + !this.looks_like_serialized_model(last_el))) { + if (this.is_object(last_el)) { + delete last_el[this.configuration.special_options_key]; + } + return { + args: args.slice(0, args.length - 1), + options: last_el, + }; + } + else { + return { args, options: {} }; + } + } + looks_like_serialized_model(object) { + return (this.is_object(object) && + !(this.configuration.special_options_key in object) && + ("id" in object || "to_param" in object || "toParam" in object)); + } + path_identifier(object) { + const result = this.unwrap_path_identifier(object); + return this.is_nullable(result) || result === false ? "" : "" + result; + } + unwrap_path_identifier(object) { + let result = object; + if (!this.is_object(object)) { + return object; + } + if ("to_param" in object) { + result = object.to_param; + } + else if ("toParam" in object) { + result = object.toParam; + } + else if ("id" in object) { + result = object.id; + } + else { + result = object; + } + return this.is_callable(result) ? result.call(object) : result; + } + partition_parameters(parts, required_params, default_options, call_arguments) { + // eslint-disable-next-line prefer-const + let { args, options } = this.extract_options(parts.length, call_arguments); + if (args.length > parts.length) { + throw new Error("Too many parameters provided for path"); + } + let use_all_parts = args.length > required_params.length; + const parts_options = { + ...this.configuration.default_url_options, + }; + for (const key in options) { + const value = options[key]; + if (!hasProp(options, key)) + continue; + use_all_parts = true; + if (parts.includes(key)) { + parts_options[key] = value; + } + } + options = { + ...this.configuration.default_url_options, + ...default_options, + ...options, + }; + const keyword_parameters = {}; + let query_parameters = {}; + for (const key in options) { + if (!hasProp(options, key)) + continue; + const value = options[key]; + if (key === "params") { + if (this.is_object(value)) { + query_parameters = { + ...query_parameters, + ...value, + }; + } + else { + throw new Error("params value should always be an object"); + } + } + else if (this.is_reserved_option(key)) { + keyword_parameters[key] = value; + } + else { + if (!this.is_nullable(value) && + (value !== default_options[key] || required_params.includes(key))) { + query_parameters[key] = value; + } + } + } + const route_parts = use_all_parts ? parts : required_params; + let i = 0; + for (const part of route_parts) { + if (i < args.length) { + const value = args[i]; + if (!hasProp(parts_options, part)) { + query_parameters[part] = value; + ++i; + } + } + } + return { keyword_parameters, query_parameters }; + } + build_route(parts, required_params, default_options, route, absolute, args) { + const { keyword_parameters, query_parameters, } = this.partition_parameters(parts, required_params, default_options, args); + const missing_params = required_params.filter((param) => !hasProp(query_parameters, param) || + this.is_nullable(query_parameters[param])); + if (missing_params.length) { + throw new ParametersMissing(...missing_params); + } + let result = this.get_prefix() + this.visit(route, query_parameters); + if (keyword_parameters.trailing_slash) { + result = result.replace(/(.*?)[/]?$/, "$1/"); + } + const url_params = this.serialize(query_parameters); + if (url_params.length) { + result += "?" + url_params; + } + result += keyword_parameters.anchor + ? "#" + keyword_parameters.anchor + : ""; + if (absolute) { + result = this.route_url(keyword_parameters) + result; + } + return result; + } + visit(route, parameters, optional = false) { + switch (route[0]) { + case NodeTypes.GROUP: + return this.visit(route[1], parameters, true); + case NodeTypes.CAT: + return this.visit_cat(route, parameters, optional); + case NodeTypes.SYMBOL: + return this.visit_symbol(route, parameters, optional); + case NodeTypes.STAR: + return this.visit_globbing(route[1], parameters, true); + case NodeTypes.LITERAL: + case NodeTypes.SLASH: + case NodeTypes.DOT: + return route[1]; + default: + throw new Error("Unknown Rails node type"); + } + } + is_not_nullable(object) { + return !this.is_nullable(object); + } + is_nullable(object) { + return object === undefined || object === null; + } + visit_cat( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [_type, left, right], parameters, optional) { + const left_part = this.visit(left, parameters, optional); + let right_part = this.visit(right, parameters, optional); + if (optional && + ((this.is_optional_node(left[0]) && !left_part) || + (this.is_optional_node(right[0]) && !right_part))) { + return ""; + } + // if left_part ends on '/' and right_part starts on '/' + if (left_part[left_part.length - 1] === "/" && right_part[0] === "/") { + // strip slash from right_part + // to prevent double slash + right_part = right_part.substring(1); + } + return left_part + right_part; + } + visit_symbol( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [_type, key], parameters, optional) { + const value = this.path_identifier(parameters[key]); + delete parameters[key]; + if (value.length) { + return this.encode_segment(value); + } + if (optional) { + return ""; + } + else { + throw new ParametersMissing(key); + } + } + encode_segment(segment) { + return segment.replace(UriEncoderSegmentRegex, (str) => encodeURIComponent(str)); + } + is_optional_node(node) { + return [NodeTypes.STAR, NodeTypes.SYMBOL, NodeTypes.CAT].includes(node); + } + build_path_spec(route, wildcard = false) { + let key; + switch (route[0]) { + case NodeTypes.GROUP: + return "(" + this.build_path_spec(route[1]) + ")"; + case NodeTypes.CAT: + return (this.build_path_spec(route[1]) + this.build_path_spec(route[2])); + case NodeTypes.STAR: + return this.build_path_spec(route[1], true); + case NodeTypes.SYMBOL: + key = route[1]; + if (wildcard) { + return (key.startsWith("*") ? "" : "*") + key; + } + else { + return ":" + key; + } + break; + case NodeTypes.SLASH: + case NodeTypes.DOT: + case NodeTypes.LITERAL: + return route[1]; + default: + throw new Error("Unknown Rails node type"); + } + } + visit_globbing(route, parameters, optional) { + const key = route[1]; + let value = parameters[key]; + delete parameters[key]; + if (this.is_nullable(value)) { + return this.visit(route, parameters, optional); + } + if (this.is_array(value)) { + value = value.join("/"); + } + const result = this.path_identifier(value); + return false + ? result + : encodeURI(result); + } + get_prefix() { + const prefix = this.configuration.prefix; + return prefix.match("/$") + ? prefix.substring(0, prefix.length - 1) + : prefix; + } + route(parts_table, route_spec, absolute = false) { + const required_params = []; + const parts = []; + const default_options = {}; + for (const [part, { r: required, d: value }] of Object.entries(parts_table)) { + parts.push(part); + if (required) { + required_params.push(part); + } + if (this.is_not_nullable(value)) { + default_options[part] = value; + } + } + const result = (...args) => { + return this.build_route(parts, required_params, default_options, route_spec, absolute, args); + }; + result.requiredParams = () => required_params; + result.toString = () => { + return this.build_path_spec(route_spec); + }; + return result; + } + route_url(route_defaults) { + const hostname = route_defaults.host || this.current_host(); + if (!hostname) { + return ""; + } + const subdomain = route_defaults.subdomain + ? route_defaults.subdomain + "." + : ""; + const protocol = route_defaults.protocol || this.current_protocol(); + let port = route_defaults.port || + (!route_defaults.host ? this.current_port() : undefined); + port = port ? ":" + port : ""; + return protocol + "://" + subdomain + hostname + port; + } + current_host() { + var _a; + return (isBrowser && ((_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.hostname)) || ""; + } + current_protocol() { + var _a, _b; + return ((isBrowser && ((_b = (_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.protocol) === null || _b === void 0 ? void 0 : _b.replace(/:$/, ""))) || "http"); + } + current_port() { + var _a; + return (isBrowser && ((_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.port)) || ""; + } + is_object(value) { + return (typeof value === "object" && + Object.prototype.toString.call(value) === "[object Object]"); + } + is_array(object) { + return object instanceof Array; + } + is_callable(object) { + return typeof object === "function" && !!object.call; + } + is_reserved_option(key) { + return ReservedOptions.includes(key); + } + configure(new_config) { + this.configuration = { ...this.configuration, ...new_config }; + return this.configuration; + } + config() { + return { ...this.configuration }; + } + is_module_supported(name) { + return ModuleReferences[name].isSupported(); + } + ensure_module_supported(name) { + if (!this.is_module_supported(name)) { + throw new Error(`${name} is not supported by runtime`); + } + } + define_module(name, module) { + this.ensure_module_supported(name); + ModuleReferences[name].define(module); + } + } + const Utils = new UtilsClass(); + // We want this helper name to be short + const __jsr = { + r(parts_table, route_spec, absolute) { + return Utils.route(parts_table, route_spec, absolute); + }, + }; + const result = { + ...__jsr, + configure: (config) => { + return Utils.configure(config); + }, + config: () => { + return Utils.config(); + }, + serialize: (object) => { + return Utils.serialize(object); + }, + ...{}, + }; + Utils.define_module("ESM", result); + return result; +})(); +export const configure = __jsr.configure; + +export const config = __jsr.config; + +export const serialize = __jsr.serialize; + +/** + * Generates rails route to + * /about(.:format) + * @param {object | undefined} options + * @returns {string} route path + */ +export const about = __jsr.r({"format":{}}, [2,[7,"/"],[2,[6,"about"],[1,[2,[8,"."],[3,"format"]]]]]); + +/** + * Generates rails route to + * / + * @param {object | undefined} options + * @returns {string} route path + */ +export const clicks = __jsr.r({}, [7,"/"]); + +/** + * Generates rails route to + * / + * @param {object | undefined} options + * @returns {string} route path + */ +export const root = __jsr.r({}, [7,"/"]); + diff --git a/app/javascript/src/App.vue b/app/javascript/src/App.vue deleted file mode 100644 index c04a2d5b..00000000 --- a/app/javascript/src/App.vue +++ /dev/null @@ -1,25 +0,0 @@ - - - diff --git a/app/javascript/src/components/AppBackground.vue b/app/javascript/src/components/AppBackground.vue deleted file mode 100644 index 030a2538..00000000 --- a/app/javascript/src/components/AppBackground.vue +++ /dev/null @@ -1,35 +0,0 @@ - diff --git a/app/javascript/src/components/AppFooter.vue b/app/javascript/src/components/AppFooter.vue deleted file mode 100644 index 0a64e768..00000000 --- a/app/javascript/src/components/AppFooter.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - diff --git a/app/javascript/src/components/AppHeader.vue b/app/javascript/src/components/AppHeader.vue deleted file mode 100644 index 8654c417..00000000 --- a/app/javascript/src/components/AppHeader.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - diff --git a/app/javascript/src/components/ClickButton.vue b/app/javascript/src/components/ClickButton.vue deleted file mode 100644 index 9987408f..00000000 --- a/app/javascript/src/components/ClickButton.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - diff --git a/app/javascript/src/components/ClickList.vue b/app/javascript/src/components/ClickList.vue deleted file mode 100644 index f3a19c43..00000000 --- a/app/javascript/src/components/ClickList.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - diff --git a/app/javascript/src/components/GitVersion.vue b/app/javascript/src/components/GitVersion.vue deleted file mode 100644 index b25d0f72..00000000 --- a/app/javascript/src/components/GitVersion.vue +++ /dev/null @@ -1,33 +0,0 @@ - - - diff --git a/app/javascript/src/components/LoadingAnimation.vue b/app/javascript/src/components/LoadingAnimation.vue deleted file mode 100644 index e288e2d8..00000000 --- a/app/javascript/src/components/LoadingAnimation.vue +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/app/javascript/src/components/PageTitle.vue b/app/javascript/src/components/PageTitle.vue deleted file mode 100644 index 2bcaa17b..00000000 --- a/app/javascript/src/components/PageTitle.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/app/javascript/src/pages/AboutPage.vue b/app/javascript/src/pages/AboutPage.vue deleted file mode 100644 index faf22904..00000000 --- a/app/javascript/src/pages/AboutPage.vue +++ /dev/null @@ -1,244 +0,0 @@ - - - diff --git a/app/javascript/src/pages/HomePage.vue b/app/javascript/src/pages/HomePage.vue deleted file mode 100644 index 472a5491..00000000 --- a/app/javascript/src/pages/HomePage.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - diff --git a/app/javascript/src/pages/NotFound.vue b/app/javascript/src/pages/NotFound.vue deleted file mode 100644 index e537f31e..00000000 --- a/app/javascript/src/pages/NotFound.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/app/javascript/src/plugins/plausible.js b/app/javascript/src/plugins/plausible.js deleted file mode 100644 index 31c4b1b5..00000000 --- a/app/javascript/src/plugins/plausible.js +++ /dev/null @@ -1,13 +0,0 @@ -import Plausible from 'plausible-tracker'; - -export default { - install: (app, options) => { - const { enableAutoPageviews, enableAutoOutboundTracking } = - Plausible(options); - - enableAutoPageviews(); - enableAutoOutboundTracking(); - - app.provide('plausible'); - }, -}; diff --git a/app/javascript/src/router.ts b/app/javascript/src/router.ts deleted file mode 100644 index 878a94e4..00000000 --- a/app/javascript/src/router.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { createWebHashHistory, createRouter, RouteRecordRaw } from 'vue-router'; -import HomePage from '@/pages/HomePage.vue'; -import AboutPage from '@/pages/AboutPage.vue'; -import NotFound from '@/pages/NotFound.vue'; - -const routes: Array = [ - { - path: '/', - name: 'Home', - component: HomePage, - props: { - name: 'Templatus', - }, - }, - { - path: '/about', - name: 'About', - component: AboutPage, - }, - { path: '/:pathMatch(.*)', component: NotFound }, -]; - -const router = createRouter({ - history: createWebHashHistory(), - routes, -}); - -export default router; diff --git a/app/javascript/src/shims-vue.d.ts b/app/javascript/src/shims-vue.d.ts deleted file mode 100644 index 64388a32..00000000 --- a/app/javascript/src/shims-vue.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -declare module '*.vue' { - import { defineComponent } from 'vue'; - const Component: ReturnType; - export default Component; -} - -declare module '@rails/request.js'; -declare module '@/plugins/plausible'; - -declare module '*.svg' { - export default '' as string; -} diff --git a/app/javascript/src/stores/click.ts b/app/javascript/src/stores/click.ts deleted file mode 100644 index cfc24b97..00000000 --- a/app/javascript/src/stores/click.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { defineStore } from 'pinia'; -import { createConsumer, Subscription } from '@rails/actioncable'; -import { get, post } from '@rails/request.js'; - -export type Click = { - id: number; - created_at: string; - ip: string; - user_agent: string; -}; - -let channel: Subscription | null = null; - -export const useClickStore = defineStore('click', { - state: () => ({ - loaded: false, - subscribed: false, - total: 0, - items: [] as Click[], - }), - - actions: { - sendClick() { - post('/clicks'); - }, - - async getClicks() { - const response = await get('/clicks', { - responseKind: 'json', - }); - const json = await response.json; - - this.total = json.total; - this.items = json.items; - this.loaded = true; - }, - - subscribe() { - channel = createConsumer().subscriptions.create( - { - channel: 'ClicksChannel', - }, - { - received: (click: Click) => { - this.total += 1; - this.items.unshift(click); - }, - }, - ); - this.subscribed = true; - }, - - unsubscribe() { - if (channel) { - channel.unsubscribe(); - channel.consumer.disconnect(); - } - this.subscribed = false; - }, - }, -}); diff --git a/app/javascript/src/use/online-offline.ts b/app/javascript/src/use/online-offline.ts deleted file mode 100644 index a86d5728..00000000 --- a/app/javascript/src/use/online-offline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Ref, ref, onMounted, onUnmounted } from 'vue'; - -export default function useOnlineOffline(): { online: Ref } { - const online = ref(navigator.onLine); - - function setOnline() { - online.value = true; - } - - function setOffline() { - online.value = false; - } - - onMounted(() => { - window.addEventListener('online', setOnline); - window.addEventListener('offline', setOffline); - }); - - onUnmounted(() => { - window.removeEventListener('online', setOnline); - window.removeEventListener('offline', setOffline); - }); - - return { - online, - }; -} diff --git a/app/javascript/stores/clicks.ts b/app/javascript/stores/clicks.ts new file mode 100644 index 00000000..2e932fd3 --- /dev/null +++ b/app/javascript/stores/clicks.ts @@ -0,0 +1,46 @@ +import { writable } from 'svelte/store'; +import { createConsumer } from '@rails/actioncable'; +import { Inertia } from '@inertiajs/inertia'; +import * as Routes from '@/routes'; + +import type { Subscription } from 'rails__actioncable'; + +let subscription: Subscription; + +export type Click = { + id: number; + created_at: string; + ip: string; + user_agent: string; +}; + +export const currentItems = writable([] as Click[]); +export const currentTotal = writable(0); +export const subscribed = writable(false); + +export function sendClick(): void { + Inertia.post(Routes.clicks()); +} + +export function startCable(): void { + subscription = createConsumer().subscriptions.create( + { + channel: 'ClicksChannel', + }, + { + received: (click: Click) => { + currentTotal.update((n) => n + 1); + currentItems.update((items) => [click, ...items]); + }, + }, + ); + subscribed.set(true); +} + +export function stopCable(): void { + if (subscription) { + subscription.unsubscribe(); + subscription.consumer.disconnect(); + } + subscribed.set(false); +} diff --git a/app/javascript/src/utils/metaContent.ts b/app/javascript/utils/metaContent.ts similarity index 100% rename from app/javascript/src/utils/metaContent.ts rename to app/javascript/utils/metaContent.ts diff --git a/app/javascript/utils/setupHoneybadger.ts b/app/javascript/utils/setupHoneybadger.ts new file mode 100644 index 00000000..784488ed --- /dev/null +++ b/app/javascript/utils/setupHoneybadger.ts @@ -0,0 +1,13 @@ +import Honeybadger from '@honeybadger-io/js'; +import { metaContent } from './metaContent'; + +const honeybadgerApiKey = metaContent('honeybadger-api-key'); +if (honeybadgerApiKey) { + const gitCommitVersion = metaContent('git-commit-version'); + + Honeybadger.configure({ + apiKey: honeybadgerApiKey, + environment: 'production', + revision: gitCommitVersion, + }); +} diff --git a/app/javascript/utils/setupInertia.ts b/app/javascript/utils/setupInertia.ts new file mode 100644 index 00000000..b71c8d2c --- /dev/null +++ b/app/javascript/utils/setupInertia.ts @@ -0,0 +1,21 @@ +import axios from 'axios'; +import { createInertiaApp } from '@inertiajs/inertia-svelte'; +import { InertiaProgress } from '@inertiajs/progress'; +import { metaContent } from '@/utils/metaContent'; + +const pages = import.meta.globEager('../pages/**/*.svelte'); + +axios.defaults.headers.common['X-CSRF-Token'] = metaContent('csrf-token'); + +InertiaProgress.init({ + showSpinner: true, +}); + +createInertiaApp({ + resolve: (name: string) => pages[`../pages/${name}.svelte`], + + setup({ el, App, props }) { + // eslint-disable-next-line no-new + new App({ target: el, props }); + }, +}); diff --git a/app/javascript/utils/setupPlausible.ts b/app/javascript/utils/setupPlausible.ts new file mode 100644 index 00000000..27f9feee --- /dev/null +++ b/app/javascript/utils/setupPlausible.ts @@ -0,0 +1,17 @@ +import { metaContent } from '@/utils/metaContent'; +import { Inertia } from '@inertiajs/inertia'; +import Plausible from 'plausible-tracker'; + +const plausibleUrl = metaContent('plausible-url'); +if (plausibleUrl) { + const plausible = Plausible({ + domain: metaContent('app-host'), + apiHost: plausibleUrl, + }); + + plausible.enableAutoOutboundTracking(); + + Inertia.on('navigate', () => { + plausible.trackPageview(); + }); +} diff --git a/app/models/click.rb b/app/models/click.rb index 273ab221..19c253e8 100644 --- a/app/models/click.rb +++ b/app/models/click.rb @@ -1,9 +1,4 @@ class Click < ApplicationRecord validates :ip, presence: true validates :user_agent, presence: true - - # There is no `updated_at` in the database - def updated_at - created_at - end end diff --git a/app/services/features.rb b/app/services/features.rb new file mode 100644 index 00000000..e10fa2d8 --- /dev/null +++ b/app/services/features.rb @@ -0,0 +1,45 @@ +class Features + def data + file = File.read("#{__dir__}/features/data.json") + json = JSON.parse(file) + + json.each do |group| + # Replace `version` placeholders (containing the method name) with the actual version + group['items'].each do |item| + item['version'] = __send__(item['version']) if item.key?('version') + end + end + end + + private + + def alpine_version + return unless RUBY_PLATFORM.include?('linux') + + `cat /etc/alpine-release 2>/dev/null`.chomp + end + + def ruby_version + RUBY_VERSION + end + + def rails_version + Rails.version + end + + def puma_version + Puma::Const::PUMA_VERSION + end + + def postgresql_version + ActiveRecord::Base.connection.select_value('SHOW server_version;') + end + + def redis_version + Redis.new.info['redis_version'] + end + + def sidekiq_version + Sidekiq::VERSION + end +end diff --git a/app/services/features/data.json b/app/services/features/data.json new file mode 100644 index 00000000..17be9951 --- /dev/null +++ b/app/services/features/data.json @@ -0,0 +1,128 @@ +[ + { + "name": "The backend", + "slogan": "Server side", + "items": [ + { + "name": "Ruby", + "version": "ruby_version", + "href": "https://www.ruby-lang.org/", + "description": "A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write." + }, + { + "name": "Ruby on Rails", + "version": "rails_version", + "href": "https://rubyonrails.org/", + "description": "Rails is a web application development framework written in the Ruby programming language. It is designed to make programming web applications easier by making assumptions about what every developer needs to get started." + }, + { + "name": "PostgreSQL", + "version": "postgresql_version", + "href": "https://www.postgresql.org/", + "description": "PostgreSQL is a powerful, open source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance." + }, + { + "name": "Puma", + "version": "puma_version", + "href": "https://puma.io/", + "description": "Puma is a simple, fast, multi-threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications." + }, + { + "name": "Redis", + "version": "redis_version", + "href": "https://redis.io/", + "description": "Redis is an open source, in-memory data structure store, used as a database, cache, and message broker." + }, + { + "name": "Sidekiq", + "version": "sidekiq_version", + "href": "https://sidekiq.org/", + "description": "Simple, efficient background processing for Ruby

Admin frontend

" + } + ] + }, + { + "name": "The frontend", + "slogan": "Client side", + "items": [ + { + "name": "Inertia.js", + "href": "https://inertiajs.com/", + "description": "Build single-page apps, without building an API. Inertia.js lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers." + }, + { + "name": "Svelte", + "href": "https://svelte.dev/", + "description": "Svelte is a radical new approach to building user interfaces. Whereas traditional frameworks like React and Vue do the bulk of their work in the browser, Svelte shifts that work into a compile step that happens when you build your app." + }, + { + "name": "Tailwind CSS 3", + "href": "https://tailwindcss.com/", + "description": "A utility-first CSS framework packed with classes that can be composed to build any design, directly in your markup." + }, + { + "name": "Tabler Icons", + "href": "https://tablericons.com/", + "description": "1424 Open source free SVG icons. Highly customizable. No attribution required. For commercial use." + }, + { + "name": "Vite", + "href": "https://vitejs.dev/", + "description": "Next generation frontend tooling. It's fast!" + } + ] + }, + { + "name": "Continuous integration", + "slogan": "Quality insurance", + "items": [ + { + "name": "GitHub Actions", + "href": "https://github.com/features/actions", + "description": "Test, build and deliver on every push to GitHub" + }, + { + "name": "RSpec", + "href": "https://rspec.info/", + "description": "Behaviour Driven Development for Ruby. Making TDD Productive and Fun." + }, + { + "name": "RuboCop", + "href": "https://rubocop.org/", + "description": "The Ruby Linter/Formatter that Serves and Protects" + }, + { + "name": "ESLint", + "href": "https://eslint.org/", + "description": "ESLint statically analyzes your code to quickly find problems" + }, + { + "name": "Cypress", + "href": "https://cypress.io/", + "description": "Fast, easy and reliable testing for anything that runs in a browser." + } + ] + }, + { + "name": "Deployment", + "slogan": "Ship it!", + "items": [ + { + "name": "Alpine Linux", + "version": "alpine_version", + "href": "https://alpinelinux.org/", + "description": "Alpine Linux is an independent, non-commercial, general purpose Linux distribution designed for power users who appreciate security, simplicity and resource efficiency." + }, + { + "name": "Docker", + "href": "https://www.docker.com/", + "description": "Dockerized using an optimized base image." + }, + { + "name": "Plausible", + "href": "https://plausible.io/", + "description": "Plausible is lightweight and open source web analytics. No cookies and fully compliant with GDPR, CCPA and PECR." + } + ] + } +] diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index a55fb9df..a2c8ff46 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -3,16 +3,16 @@ - Templatus + Templatus-Inertia - + - + - + @@ -32,12 +32,6 @@ <% end %> - <% cache Rails.configuration.x.git.commit_version do %> - <% versions.each do |name, version| %> - <%= tag.meta name: "version-#{name}", content: version %> - <% end %> - <% end %> - <%= csrf_meta_tags %> <%= action_cable_meta_tag %> diff --git a/app/views/statics/manifest.webmanifest.erb b/app/views/statics/manifest.webmanifest.erb index 6784b53d..fca874b0 100644 --- a/app/views/statics/manifest.webmanifest.erb +++ b/app/views/statics/manifest.webmanifest.erb @@ -1,6 +1,6 @@ { - "name": "Templatus (Vue edition)", - "short_name": "Templatus", + "name": "Templatus (Inertia edition)", + "short_name": "Templatus-I", "start_url": "/", "display": "standalone", "orientation": "portrait", diff --git a/app/views/vue/index.html.erb b/app/views/vue/index.html.erb deleted file mode 100644 index 55efda8e..00000000 --- a/app/views/vue/index.html.erb +++ /dev/null @@ -1 +0,0 @@ -
diff --git a/config/application.rb b/config/application.rb index b2124f4b..e8fb1a9f 100644 --- a/config/application.rb +++ b/config/application.rb @@ -30,9 +30,13 @@ class Application < Rails::Application # config.time_zone = "Central Time (US & Canada)" # config.eager_load_paths << Rails.root.join("extras") + config.exceptions_app = ->(env) do + ExceptionsController.action(:show).call(env) + end + config.time_zone = ENV.fetch('TIME_ZONE', 'Berlin') - config.x.app_host = ENV.fetch('APP_HOST', 'templatus.test') + config.x.app_host = ENV.fetch('APP_HOST', 'templatus-inertia.test') config.x.git.commit_version = ENV.fetch('COMMIT_VERSION') { `git describe --always`.chomp } diff --git a/config/database.yml b/config/database.yml index 47e00028..a760ada1 100644 --- a/config/database.yml +++ b/config/database.yml @@ -51,14 +51,14 @@ default: &default development: <<: *default # Use test database in Cypress mode. This allows writing Cypress tests without having to restart the server - database: "<%= Rails.configuration.x.cypress ? 'templatus_test' : 'templatus_development' %>" + database: "<%= Rails.configuration.x.cypress ? 'templatus-inertia_test' : 'templatus-inertia_development' %>" # Warning: The database defined as "test" will be erased and # re-generated from your development database when you run "rake". # Do not set this db to the same as development or production. test: <<: *default - database: templatus_test + database: templatus-inertia_test # As with config/credentials.yml, you never want to store sensitive information, # like your database password, in your source code. If your source code is @@ -82,4 +82,4 @@ test: # production: <<: *default - database: templatus_production + database: templatus-inertia_production diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb index 42b00daf..f630f95e 100644 --- a/config/initializers/content_security_policy.rb +++ b/config/initializers/content_security_policy.rb @@ -32,7 +32,14 @@ *[:self, Rails.configuration.asset_host.presence].compact, ) policy.style_src( - *[:self, Rails.configuration.asset_host.presence].compact, + *[ + :self, + Rails.configuration.asset_host.presence, + # Allow @inertiajs/progress to display progress bar + "'sha256-kCeyw5rRT2DINADvWYmAhXLhQs4dKZrnn2sofIDmprs='", + # Allow Sevelte to display animations, see https://github.com/sveltejs/svelte/issues/6662#issuecomment-917492365 + "'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='", + ].compact, ) policy.frame_src( *[:self, Rails.configuration.asset_host.presence].compact, diff --git a/config/initializers/inertia_rails.rb b/config/initializers/inertia_rails.rb new file mode 100644 index 00000000..86f5e633 --- /dev/null +++ b/config/initializers/inertia_rails.rb @@ -0,0 +1,3 @@ +InertiaRails.configure do |config| + config.version = Rails.configuration.x.git.commit_version +end diff --git a/config/initializers/js_routes.rb b/config/initializers/js_routes.rb new file mode 100644 index 00000000..b71c7312 --- /dev/null +++ b/config/initializers/js_routes.rb @@ -0,0 +1,23 @@ +JsRoutes.setup do |config| + # Setup your JS module system: + # ESM, CJS, AMD, UMD or nil + config.module_type = 'ESM' + + config.exclude = [ + # Default Rails routes not required from Inertia.js + /rails_blob/, + /rails_disk/, + /rails_info/, + /rails_mailers/, + /rails_service/, + /rails_conductor/, + /rails_direct_uploads/, + /rails_.+_inbound/, + # Sidekiq admin UI + /sidekiq/, + # Other + /webmanifest/, + ] + + config.compact = true +end diff --git a/config/routes.rb b/config/routes.rb index 2af04000..513a505a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -11,9 +11,10 @@ end end - resources :clicks, only: %i[index create] + resources :clicks, only: %i[index create], path: '/' + resource :about, controller: 'about', only: %i[show] get '/manifest.v1.webmanifest', to: 'statics#manifest', as: :webmanifest - root to: 'vue#index' + root to: 'clicks#index' end diff --git a/config/vite.json b/config/vite.json index 7539d8eb..31fbbb51 100644 --- a/config/vite.json +++ b/config/vite.json @@ -6,7 +6,7 @@ "development": { "autoBuild": true, "publicOutputDir": "vite-dev", - "host": "vite.templatus.test", + "host": "vite.templatus-inertia.test", "port": 3036 }, "test": { diff --git a/cypress.config.ts b/cypress.config.ts index deface80..5747ec3c 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -1,7 +1,7 @@ import { defineConfig } from 'cypress'; export default defineConfig({ - projectId: '5d6bqs', + projectId: '6g6s4z', screenshotsFolder: 'tmp/cypress_screenshots', trashAssetsBeforeRuns: false, videosFolder: 'tmp/cypress_videos', @@ -13,7 +13,7 @@ export default defineConfig({ setupNodeEvents(on, config) { return require('./spec/cypress/plugins/index.js')(on, config); }, - baseUrl: 'https://templatus.test', + baseUrl: 'https://templatus-inertia.test', specPattern: 'spec/cypress/integration/**/*.{js,jsx,ts,tsx}', supportFile: 'spec/cypress/support/index.js', }, diff --git a/docs/network.png b/docs/network.png index 084a692b97127675f513a5ddc6ae24a4da091e54..0d6435bfc300a6b99852a0b3b5c0852056d6d987 100644 GIT binary patch literal 121086 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ⅇ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 literal 117445 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

-Nzz3t350A=0 zb{b}#AAv@)1GpJOy65Ox5VJG=?=eVpXx|lngzNld+ts}Te1N3feR)BoqL1Z_2g0;J zd;lnfs-C1c;b~EJC!aR)&X9?$F+iQH{j3})m z{QP(s>QXh0nJs9)(lxiBPiID&1g+6CiX#U;`+XH-`9z8$y-DuqD-&RUi|M74py_7Z|aI%ZY%Q*dp<} zZF?(5YJBQA=`OwW{l!pJ*VskP1rqi5^l~%|1 zbuFR;L1q#b&{`Jeqi;XNj`N7$n2`fGoEl-o^Vsw&FLSnKYTCxcADO_ws}1_99$JPQ zPxq5-OKXQ*>vu%an=rU<(c6!a1`nKX0e2ROy9G*PG0E)|qsXo_Uf_F+1S%M9NLnm^ zv&~oA@X3qSP>VO#U5==KfJj91Ge>1sEUT{u;gwXJscWK=VKq_%HgRrtH=mttGdp@A zC_9>7M;_;y_GN>d=2zf8b|$Gyt0H^@dV--BfYj%%i;S|zwQa zZ7=BW-bsk#2>5n8+w=t`-uynubrn+ywFo5H-JI!&v?=TcCOUf`OgRx{jDy#CY@haWl6NZd+-swzH`^H}#JVbjT-d+TKPAbGMCv6S z%F;L_5U(%l!LUbxod~C!?fhYRcQcCLc?v&6nYbC(W9xlVv7Up((1lAjZ@TKB;s|Jz zZ53$Z$a?AYh~nrf#0*2HpK=8k(w*p`S}nM%JN2?d);%%KG~Tep#ox~W^{9_)aH0a8 zz}x7}FOMHpG#?LVIP|(azP%(iddiNuT}r?$;V%4g8t^42tUarP)AZh*hpeMchcFo< zRn?At*~vW(H38{yv3Jm03nDDTrcjo_r?8FsF4babLFY}NZb%fJa~+-GlJ`^{ zYM(?4G_0-gtj!4ib#^T`m|v>pB%YxlIB2}_>xyCd9pt$UL%0XAYq-v~!T44n2Q zBE2*B#CjoH2)TKj*G7=Pv-IXJ!R^tjISo_&ghM~NHZz+7r; zzbB_wXtO$OJM;hhU&c5Z{@QPN?kLZmR@(qV_Nq~@c>Kai>^7_YU8!bK)%31c(_q+y z>0V36zcYzK|DO;e;D#|tZ=r%2G5hO($F)V{#a4?emkOUp`m0>R;O`5+4{PlSyAR3! z4KNX44PNzV(01DVn{QG(II&lQg{+)EE^+^x%zC6dA8u@;(t~igc8dBtH2_ebtKiK= z{tK6~RrC%w>}QUK^JdWg9ik)DNiq6aDtyMr?{8RYMo@R$oEm0{+VeNy<^JJvZ82X2 zubZQR_3^}g+egA>u5Ql8+Y_Q7?46c>qiFhrJvs-|Be2iw%Sd%+BtWz-gtfZ;N8C4l z_x*_kn^?AQ1@5g*mum=Ic?kRT5s3B|?v_{I_%vO2FPh+})~-=7sf|4d9G(7|A|*YQ zBAtf&U$KBB{@?da`hR~@+n?&`$^Ely(?5=5|MB{^e*_T!7lG%X0<4?oyc7h(_Zhzy MmlyjkqVM;A0Ku{d3jhEB literal 35896 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 VE`NI/app/javascript/src/$1', - '^@test/(.*)$': '/spec/javascript/src/$1', + '^@/(.*)$': '/app/javascript/$1', + '^@test/(.*)$': '/spec/javascript/$1', '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': 'jest-transform-stub', }, - moduleFileExtensions: ['js', 'ts', 'json', 'vue'], + moduleFileExtensions: ['js', 'ts', 'svelte'], preset: 'ts-jest', testMatch: ['**/?(*.)+(spec|test).+(ts|tsx)'], transform: { - '^.+\\.tsx?$': 'ts-jest', - '^.+\\.vue$': '@vue/vue3-jest', + '^.+\\.ts$': 'ts-jest', + '^.+\\.svelte$': [ + 'svelte-jester', + { + preprocess: true, + }, + ], + '.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$': + 'jest-transform-stub', }, testEnvironment: 'jsdom', testEnvironmentOptions: { - url: 'https://templatus.test/', + url: 'https://templatus-inertia.test/', customExportConditions: ['node', 'node-addons'], }, - snapshotSerializers: ['/node_modules/jest-serializer-vue'], }; diff --git a/package.json b/package.json index b00cb128..49ef5e4b 100644 --- a/package.json +++ b/package.json @@ -1,67 +1,69 @@ { "name": "templatus", + "version": "0.1.0", "private": true, "scripts": { - "test": "TZ=UTC jest --coverage", - "lint": "eslint --ext .js,.ts,.vue --cache .", - "tsc": "vue-tsc --noEmit" + "test": "jest --coverage", + "lint": "eslint --ext .js,.ts,.svelte --cache .", + "tsc": "tsc --noEmit" }, "dependencies": { - "@heroicons/vue": "^1.0.6", - "@honeybadger-io/vue": "^3.1.0", + "@honeybadger-io/js": "^4.0.3", + "@inertiajs/inertia": "^0.11.0", + "@inertiajs/inertia-svelte": "^0.8.0", + "@inertiajs/progress": "^0.2.7", "@rails/actioncable": "^7.0.3", - "@rails/request.js": "^0.0.6", - "@tailwindcss/forms": "^0.5.2", - "@types/rails__actioncable": "^6.1.6", - "@vue/compiler-sfc": "^3.2.37", - "autoprefixer": "^10.4.7", - "pinia": "^2.0.14", "plausible-tracker": "^0.3.8", - "postcss": "^8.4.14", - "register-service-worker": "^1.7.2", - "tailwindcss": "^3.0.24", - "timeago.js": "^4.0.2", - "typescript": "^4.7.3", - "vue": "^3.2.37", - "vue-router": "^4.0.15" + "tabler-icons-svelte": "^1.8.0", + "timeago.js": "^4.0.2" }, - "version": "0.1.0", "devDependencies": { - "@babel/core": "^7.18.2", + "@feltcoop/eslint-config": "^0.1.7", "@prettier/plugin-ruby": "^3.1.2", "@size-limit/file": "^7.0.8", + "@sveltejs/vite-plugin-svelte": "^1.0.0-next.48", + "@tailwindcss/forms": "^0.5.2", + "@testing-library/dom": "^8.13.0", + "@testing-library/jest-dom": "^5.16.4", + "@testing-library/svelte": "^3.1.3", + "@testing-library/user-event": "^14.2.0", + "@tsconfig/svelte": "^3.0.0", "@types/jest": "^28.1.1", + "@types/rails__actioncable": "^6.1.6", "@typescript-eslint/eslint-plugin": "^5.27.1", "@typescript-eslint/parser": "^5.27.1", - "@vitejs/plugin-vue": "^2.3.3", - "@vue/test-utils": "2.0.0", - "@vue/vue3-jest": "^28.0.0", - "babel-jest": "^28.1.1", + "acorn": "^8.7.1", + "autoprefixer": "^10.4.7", "cypress": "^10.0.3", "eslint": "^8.17.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-cypress": "^2.12.1", - "eslint-plugin-jest": "^26.5.3", "eslint-plugin-prettier": "^4.0.0", - "eslint-plugin-vue": "^9.1.0", + "eslint-plugin-svelte3": "^4.0.0", "jest": "^28.1.1", "jest-environment-jsdom": "^28.1.1", - "jest-serializer-vue": "^2.0.2", "jest-transform-stub": "^2.0.0", + "postcss": "^8.4.14", "prettier": "^2.6.2", + "prettier-plugin-svelte": "^2.7.0", "prettier-plugin-tailwindcss": "^0.1.11", "rollup": "^2.75.6", "rollup-plugin-gzip": "^3.0.1", "size-limit": "^7.0.8", + "svelte": "^3.48.0", + "svelte-jester": "^2.3.2", + "svelte-preprocess": "^4.10.7", + "tailwindcss": "^3.0.24", + "test-jest": "^1.0.1", "ts-jest": "^28.0.4", + "typescript": "^4.7.3", "vite": "^2.9.10", "vite-plugin-full-reload": "^1.0.0", - "vite-plugin-ruby": "^3.0.12", - "vue-tsc": "^0.37.3" + "vite-plugin-ruby": "^3.0.12" }, "size-limit": [ { - "limit": "65 kB", + "limit": "75 kB", "path": "public/{vite,vite-dev,vite-test}/assets/*.js" } ] diff --git a/public/404.html b/public/404.html deleted file mode 100644 index 8d884591..00000000 --- a/public/404.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - 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/public/422.html b/public/422.html deleted file mode 100644 index 845c5328..00000000 --- a/public/422.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - 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/public/500.html b/public/500.html deleted file mode 100644 index 21fe4eca..00000000 --- a/public/500.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - 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/public/android-chrome-192x192.png b/public/android-chrome-192x192.png index 0bfb68a32c7d00c637db43c9b3f953b65e55403f..1499a98682694ac85f9b0532d70804f7ee17d186 100644 GIT binary patch literal 2166 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 K%dN(hl==^^7ld&D diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png index 04cc005d4a5e7898ec1f449c7f9313f605b05de0..5dee46c2433329d116dd04c554f29d6746eee788 100644 GIT binary patch literal 7413 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 diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png index 33312cafe6531ee497989c48117541279ebfbd7c..1c4d541e1575832b0a7672bdccb0756821d9afa6 100644 GIT binary patch delta 238 zcmVKk1a%#}asZ)Yq&V=D%o)Y|A8*1}AB>ZHh?mTF|1ff_wwasy)kFvL9u)_^Mv4DNI{AclMc5Qc;UHGhQ|!r(?${s7vne}#eZ oKG*80K0*$-9~n;3;+NC07*qoM6N<$f-j|NRR910 delta 229 zcmV_0)YaMB!9?BL_t(|0b`&lu-e%s>A0(Ps^gB9e@}#6DA`+@! zjchYeqbDpt2gU$kh81Dq00000NkvXXu0mjfkQ!k- diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png index 1cc1543faf1368aac2bda488fef9c901d835fac0..2c2a561dc6459e93f483a704b0aa909c72d6b8ac 100644 GIT binary patch delta 400 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 literal 1314 zcmZQzU}Rus5D;Jh(h3Y5j0_BB3=9kk3K0GpAm0v%4GbWB3nm7JS3uku;OEZECB+3) z%IoRj5(K1yCNKzaumMT=&;JvF)Ok-A$B+uftY4i9PPy86l#-_U?t^F-8m!EZ19<%8m_e1v0;$o_?X$dx*NB&Rzu-}`9 zr?ud$-tO6^ja~AKGyl!9u(V}c@xy4=GyCb15|bXxk}WsMbk40~KW;sHzDT&c8ocA$uI3H@9wcm*+ zu|Qe7o+036J5GOkyl?l8I^*^G-miTiFWC8vt9H*`6{jgG#hwBkiU;ahIwp9^FL-$RZE71! z^h?23&P|guw0))77P&8sSZ?6x=iVsuVS$sf=zOme*B{BMPE>Ya6MgS-qW^e9&W8n; zY`7+$@S3yOX3CS9A$#-{?Il<@ebDLAT(QM7XkX1g`(q5uqVk?6%8xag*tpNx?jf76 z`*!N&=|0PDoMv)kgczEUp)ybT?xjVGlO{ho`FpXhXq~ddz21iTR|^$H&I?|=zSeWY z)UPTLr=PWMoEkA{PUybH0c8a((o=q}{=&~#wa5I={dGBv?e>NXey(Q!!=Lf%HnZD; zoIjtLrT%?uFw}Vc{}6-7q&H7avk6ErUh>@Wt)gWU-~6L20v?w>vNLCWoaw`8r(#xn zlRKxaTU(= zvmF>${~>Ypb}I83IY$Y$=j*oR-rn}sA~nLr_08$>&=42j!?(8Oeh;|4?eD+DrF(rh z9rgQkWQOINq>T}E^RGqkee?F(&&#*hd^T5$y#4iGQ`zie&zw0DLOM1ZJ~U&wAS60# zz0~yOZ>{RLzezrHH*2$A=xb#Q!FLrCf6OS5cam85?MZlbtLuXqZGV>XN&n%>{G|9U zh4<%nL7t$=@volem%CcHnx6~8#Pev|&IrBoRD_@sQ+#ws&M0OsZY0eulZPXY=Z5fn@bey?c3b4K4k~3b$L)2^t0@B z(CS$_GbX6E?O{A;$NN*7@rpxh+3UaWitg;aQ1PkwmF%op4_QP68v~sGIdMDt}QMs3G^YbHzVF-7@y6hA37Mwo=7XFRe zUwX@TX33`~?g}#PyOchBFn5iwsXe?*cJpyX>17=WEr%xCwMXV0h?HK?&TG-^nB&k= zEY*C2;il%9Bxb)`47NE3IDxDro+M_bIWPQqBvwc!%wu5delYuf2glFg&V@TU?p@+A zIA5rtH;LVZ=}fVpQTvX|^#TGPwhJ685Ug7+m@tpSs`E?pd8WS4+XbC}GN>ELFA$#? k`(*lwzK`2K3EpA&wXpYS(oYuSC9>V>*Ea)mJ0gz*0F(YEJOBUy diff --git a/public/maskable_icon_x384.png b/public/maskable_icon_x384.png index bce715ce51021e0f4e3c640d453520a6e0051033..575a2d10e48c1ec30e0ee119e609833589a7a44d 100644 GIT binary patch literal 4230 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 literal 4915 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 diff --git a/public/mstile-144x144.png b/public/mstile-144x144.png index d11506b7abc8a5b6142bd0e2344407221ee1f25e..27dcb2647714f111e547bf4f5ea2ad54e3853c49 100644 GIT binary patch literal 1736 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 eNs=T(17 z001Q?M~CwOAg8=D6ri9I`*iCO06>XO4nJIsm0K7~$%$|p?-oU_7jF0p8t{T~-blm2 z%K|bx98bwD|A-DTCN20A+AwIB3_L6_&-M>DCq}f~ME|ccpN&4b{ zd7+E+owoV;0uz68N5*4L+({-Q3UeORY zeN9X=o9YHF>4!Lmkg9Ed$MoPW$gr7eR@-kuzfE#A2lN@0$hJsb_%@ld2B{Jx#!X%i z2loR{@2atBNazjjnm4WXxxn_$KF4??IKjGJLOO8=Gag8)NQ#9FY;vks7@7RvFV`^V z1?}#W+3`oc6zZ;#L_KGeV3KlZ>2jfO+iK?U)zM}qf(IJP<~aHgtS)>*OIf@RrIVHV zX(p!S0!^(&>~0nu&3iE5vb9LzoP|_jvHaLo!ZD9RX<=7a8cdU(S)hMKS_B$F$^-mw{dhXAywWvbHxO~tqrk)&nS}N#{J)# z#W}lKMz8C5OphPr@8{i%X>Fz0zpmwJkZr7StF&*1=%3B2G_QxGlRYJmzgrgyZB5;= z-n0E7nMQGm5OibFpnkt%-QwKK6nrOMRtEMc1MC%y+9dKpZL~s5qkP;n$NIu>8dj>-^uetJSF>{9C-8jHNEHph{Xk-|_g?Rm#V zc<9(j4z+3Yot=yfMwh&hy&%-pi#ft5N1`Ki;g}dsl{|I=3->ytET%%WJ$U4#)#*Xh z-%Fg}aBieldY9ZBM+pqO2bbNvNI15!)5AV=Rj*D=D%i!J!nkPg%|D=N;d^`Xv<6D46ANnRZKDMJ8X5Ium(V%_Gqio>JO!s^KWX z7dzi}9L&goM@NCY70#jyW}G~fRMh*y$9ooShWnL+GD-)R<$8p3vt@!oePd1p!0t`l zy1}=8Y#=Lk0y>r%VwnjR5CJzKs>(|N?W_A>x`-1F|lEUepm)j%11GHkEg zVV6O3&3DLj;O$XFGNAzBKLRdI&5_^51SaR{fieiR+XYfpc7aj<0nK+Y-9bdq_38tL zIGO)!W(z@m0I9+lO-SExj$3%mO`xx?GrKGoL7-cSc=o&?sSyG8x1Y zg6kgs8CD=e@)ntjLt)k5uLL#v&S-a>I#qJiqXJo0lqTZmRjJIOoFAIy0JEnFZEAS^#WufY}sZ2Fmh;Yw<@;|B0MaPlfo`h|jmsm#7CY3}P(s zsgu=h392P7_rkeOGq<|~8!g$wVnTse*xw+0V)6h literal 1762 zcmb`F2~bl<7{?ca5N;vX3sa=XEl7*Dk|5+H1U11(Wl%)a)+!1(8VRLSX)XarkOJB$ zM9dJ-fZ#C|au~r@EGQy}2$~2{Do22*s02Y`mpC#^ZKpFG-~8UbZ~y!DJNDbm2pYxK zYM~VXz?K?DVgO)bH}xVBP@yMT{sMq$X~ddHGMuiwbU5&G21a%$xQZQI%@3BcgB6E@ zYuO>y+z=^m3K@3>aLNmjb8*!?ob(-hoQ!LPhm(DDp!4^@pmN?c_^Ncglxu{KmvQhi zE?&la4<9e*;^jQNoR3$g6RNlbDUTrK6J$KX6-Xvg!6wNeJd&JGk{=<<*pcOs@@4>9 zjI;vqjy3@P2X_JZxU>WCZ`=c5nhpRUYS`4bZ(#?g+d-+$W3$~=??Wz-i z`$irZ9clo84sXBr@ZsM7RNns6nZStUM!nWJzWWC!}{KX61JUxaP{%?P+J7zxdmY`kS{~+B(&bdY%jn4h=tjKJr38 zHa_uY^OdWr%3Z~+qwXtW_TkSZiF$=Uui1j~#RZYP>=({;L0dbTBW63fyDVMl@R_G? zK;YMLTX*b9;U3MuSbujO+7Cxw&4@aZTPPHXD=x`u>i%fB)!5wnK(%be+UVVTi>`Ff zU*i3xvzwiXO~$0b!qhsLTK*)ay`!sV=z_UT5XyGp91En`ESB=mzWxF2pzi52nAqsp z>xnm}y~8hG>Bln=lV%1J#lwe+((1a`S^yB%R1!Wi#boFj8x{_JIz1_wCo!EeXFP(5 zRGi(c!y=Gclc1_fP@PJe8mkgEt;iEDPqJWjQt$ZDw1Hdv*^$BXI14hxgL+L<+af~Q zeJA(C(pnRvIWhSq(P5T9$;+nMZ^aL|l35`|)9p7ZZX^xidzkmgk!&)FEnKk;k> zb$3y%FtLJ{uMcXhqla%qBUt-7`mCLn8p_1cH5%G}`Gw)xLz!W>_`}Dp$MY7KpyfAC znwlekfZO_5*Hw&;jCicm>1rx|NaPT6lAL{)1yBSf!$EaQ1Ko!)>&EvdS4+NV!|M7y z2bvuQ`WXtLSvZB18_0p@_~M&vP0zhl9rwwK}^qX-h{@4W40wR z`;oqITWST7vNIOSg?4CB6o#44ydJBCvWQ6OmqF<}43l^2-b2y$mivne*0u-AH&7() zLt4*-B72OV*c%;mu9(>qYbfxLFodPqTMA?A(^3kxms3J11LN{H1r*7SuULa)bt9pE ztJWOD8p0^MdOk&$Z1;F!Z||s73}51+?uy|B{c&(o5^Ru9EB#5Czq t-3geeAT;v~|S z3Oi(D8`sK7M2i`cnS?NmaWD6n{e9mUe>UfL=6v7tKJW9s&ojTd?(ONSzE*E71VQTL zpPZ-=geO4|Zk?(EKr&jwTmX>g?Ll`2uL%iKm_Ed!iNRq~#5@Skhj8GugOa@z#&ERC z7?wiNYLy2;OtO$gN4r2NAA;JjM(_*}&;?T@LI_%wy36Q8nc#R00A(583YMWtWOzDd z2xtNveBWjau`zN6V@yWoLAVbP1k(m(6G5X)p#y?g)IpiTDsu&)irX++8-(kIAU0Lz zaYzbD`77=C8h~Siz``;zAHuU}s0Hi{$(X_S#BRR zrhCim55tsxxi4G`;8R4Hh2bnu$$L4!6X-J}Kp&=yvrl%*)&_GywkVFdUIk^h0<0}Z z@UjeLQ@~9C_W?B}kM1^oP!mnxkmt8m1-6|yJPDtb*+{vNg2SpUI5 ztwLn3%X_z3%Z-dl{{7bp|3{WZt}t2;S!G-_{b#Ux8Oblenp+5TuYxc5ON-8oie%Ja$)&JH~RFU++A=0YvrPPeMdj zoYC~iCWER)qv=s?3r8uA!JDlnmU4(N@_SNlkd7_lrgzXhq}CNi(w4xxb-A0~UYn4< zx^!fX=7XR+R$RBtJ=P)oymUm@?gqQp)sDmbZHoVRX=Kp&NwZ~c(A+>#J`yN338`5M zATKNt6WQ~9+4+cFYO)}3*^jwAGn*5%JlSk24orG5GcJV@sVBitbX8i!WDgTdAExgj zHxtIyuzkjbCUw@=JLl+c&1l^vsfa?&;c_ZoE1N zVHnjoyxcb`tlGJuGqNBj=$N3~O%N;``oJ*?uW@{)c4&-lJX-1ARvv9Zt{B~FQM)zn z7&&g#ptN@pMy|}Juun-9@)3pg$%2>HV8n5K3cGh=M?SIxtljzsMoy;!U`{h1(ez3d zG(3Wlj7Khw7X)GkPxp+=XyHHZyuwSlLHlPbO~u~`xzWAO#^TTJxk1mrmY9mC%yOd# z7{=n^Pyo!7n~E2fDHXkS%qV_j>z6$C1lVm!8!ftCSQ3w8V7Nm}6Cz zet$0VwZAH~PWCuK*+fCoOc)7Bv`6W*5e^2!mA@Y>QV2Pg< zj%%3S+p5@~=s%WXVyNBE+tlJjsyDVL)&Jpqw~>vDbRe03_AgUCyIs4#D=5Cvx> zaF2)g#glOQoPg^7x&&_AIhP~abG3~F1d(D><8z-Wu43ha_k3XoUes51VBWuHdfycH zMe8-#Ym5Hws{z9Bv}PsccO+t_MzQ_*|K1MbJIqfU{FJOXB#1yK&Qw4AwllIPD+6?n nkN>>Mw^$H|`|dyGJH=w1SmINyq9??>a*RcG_H^R>crx*Sd#GK% literal 1895 zcma)53pA8@6#p|G9nI91P9xQ-gi@hHPc^SbcF2@h#MsEGBg?6j)b5&$F?yV&rbgIA znaT-?Wz0)#XA2FPCZtg)&mpNy5AVHvyVjo0>Fjszx!>>qyT5z?_ul#D^bV#o!N}AI zAw*#OK=(jM*9IY-8PjmUq$tC-0&#Q4HZLbQK1GNuiK|73BIbb~L#PZP0NE41ZokH0oC^`iV(4}W-^3&9klTH%A zoGmi&Ji0WFB<4_x_P8I*H{5M@Wu{~HXEC<^O0N68Z2{r>B!$4xc4rl;OlGsYIPXb#kCIbwH;YkL> zmk3fR3r>_9|R z!Ug`Nw2W(+Id}5%CHL>iA67i7exiC>*U1(XIEg*zMsMl9^;-(s%q7Z&1&|{ zXoPU*8FZ@GF`eG$TTCo{jANddHj2XiOT!yQ^8hr8dSCo#rFe63bPwLzB=Yg|yzb+& zJY87PH=n>Q$s)HQA&xz7RdJE4Uy(ydGP}`-;XJxFbYb5zMoE$(!9KXtTBF=e&sCII z?5|a21l=so<&!>M%&Hz?F}e>OQrb1Yl(}r|GIaM>URxSTwhc+n>)mb9J5-XD_TeBS zH0r3*j=V|eq8@2aqA7QIT_(93vRhG&N!p}({Bws36wIdyxmiz+%THh!S-w704%L~=WdA^kmAX*ZVY z-Ci{sRhX0P%a`iA^*38^Pj?D$s^vSphQaUU`v|o8X3pWGw_H^% z{oMG0Znn3I)10WToGB32?Z%sSI2-yfhJLjQy|vk$zmvT@Bsra3;G%Brad&Lh@U;!s zVbDllL1E9j%%g8p`P#DkKty>73WH0t0vvLdM(<-P?M`eIxu}o&)g~p_Fg`~anRet^ z$z@huE6N2z*`NWTzea1UJ#oEVO1hdsmb07J_Vhi8h<;Y^Jz*egkc3BLzmXgpWUOQh=(M5 zvzkub{#!}U2&*7v%wVNweNXrfWAnt?%&(lTWtm`p9`SAd&CH3kJyitWDFp@;{ n9d1dD$zc{hocqnc$G3tl7JE}QHh90)U&d7oCno(4Eim>kx4t!; diff --git a/public/mstile-310x310.png b/public/mstile-310x310.png index 84aefa29d1d53b265a081a58fda41b9a2a071835..c3d070f9dadc85ba85ba932fb005af6672ae930d 100644 GIT binary patch literal 4428 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 LhFUqN9j^ZeoIKnJ literal 3901 zcmeHKdo z|M_bb@L8BaS!N%nyj-lVqYOoyVe^(NC_{dhwOK9j{i*xu$E1AP4>PrtZM2Dn_=KK+ zoJoHtid7I-&g)MJ^|xxit^H`%L_sFy%FtUSCGw@3Z`3LFb>Vb+mI*Mco;IC`yU~C0 zns%UF()m$VdW@S*vfxT4`SUcJWDK}kSMC-45N*nhu9@VBRriH%wkRoz9g-)67j=9G zud^50BJS%}Z43G-&a^EwssX<|~#iM4@6tT-8S*Prpg}IV-!ONUMifFz(9Qn`HpZ#F+rQ5;}g- zuH~{rrQ$cXq}FT>yjX3>5^GTa^)lB}e@JBX_DOLF#;Vgrh%D>*4JhPa@ssxcBYYr{@=w4OImI6%%9l@|}%fpDQhMpAr%{nwGv?c6xaiV2E$E#8rkJ*we$kIUH z{O(1JNPX%_@h!YT{+&B=wR1}`)i6qMs{_gYku;cDH$4^?`xJ_BKj^ocfnV$=3hZ@y zV2s8vTaq0O?eL>5*_jnVzX#_8B zgRwV3#H@~7p!Fn7gp$8R0akWxvT6elyGfpqC1MU@db7eBmi(RXWQcTtnZWZ45iidB z_*b01wW1=UUToUE+2M417@R-9oC!cg!)$lL1gWt*x`zBUQE(RkYcccmkm@m$!M-jI zqfLXE$=Y2T##r)yI&3XS0)V{SndOE{PhdYoTA;x9SG>h5YpuhqDMv%=aSgohVd6%r=6sMN*PyC99w!dm+P2U{zV7P86kTsw`m1=6JWWN;s& z#c{A!^aB$!~qv z`rF``;>~Q4f9z)(c34u{r4tlouxB)jT!0*+yf(x^O6_rc`a)E=0h|*yVK3 zv&GKe;*8)_yRz=WLbX^6%7Oq`6;F$<9x$m4;S;jvoP~P)j(;;=$BxLj%I`$rXZT9=3l`fZ6 zL(&-uG~vues84?mOWqpd+!~EvRDglp-Dht&!g>bl*uh4Mq;nr5S-=JIL*Q}~qSP|;GcmGQi=qKBsvaelXQEB}VL@v6Gv} zGECD}WM9}^GdEbx@|IG|xt7Ll(@`ISiyd5hs2} z+&vtYyEBYV*P673Wj>cRXNLlx4v0T%N5@`U@^L=-VnaC;Gyvw_!?zUcf=AM460?Kq zgy)c1tgf1W`D2qg+@Z$s71^OOz;fu1cBs@`-J{ z|K|>Uv08BWP{UunL4$5$0|5BB30jQ;NSl}bY94mkU5VL+fMz0K8Cks;h@3Ix)A%GONdxBK7F3jSq=kI{mdIF+2`Q73QRt{61&+rFRV@LE)hcCF!)MtR^@r<Nqi6@ z12<8Ubk7FwGXMmBCar?2Jz7;x zL4g9pqtEvRXm}O_@VaauMbNuTE{6fl+`EzYZ$+dvIyBg#z!CPu!4Z9Oa}c=&faJ*D z5_6{S8qj{QCA6>_G32I zM)jTVeF7=Go&;die4gW8d&DV+-9(%|m)$XjG2Q^cI(8uO`fdbsrTS=1xoS$I*uBAZ zZmEzA0Ie>ik&*;e87z6HJM|;}Y}u>R#vTAH3>09)I~AdBArUQS-A&KRz8I@EhSP9x zS~>h7V%Oteq~UHLL>BrzHikcTmdoj#^OTkdIYow@?Bm#Ua6~BM{a6?VK=0}1=&(Ll zXQ+F7Nqt%)FO)gv%#cE~bxjsbtVSw7T3Iqen~93|u(%P_4}dn`nHHS88ltc1AjODx z_{rxaR{)mzd%6TSAZfpXsHG#YD?Iap&;PZ58~zrzl~2m2q7kODOCAp2o>+bSTM+-R bB-?jfmwDjzv&#b+{y@ckpSXVkxKOb_ diff --git a/public/mstile-70x70.png b/public/mstile-70x70.png index 81be9d260fc4921df4d3a57dbddc21504a3cdfe2..95c332130d72ebb3139443e332c752ec306cbdb4 100644 GIT binary patch delta 1112 zcmV-e1gHDh2<-@vB!4tXL_t(|0qntn00000fS~=U7pVdO0000000000005Xgdw{Xr zi{d!`dt?7?+yAv~tL%Aa&T;4_C}obZ`-75G6MeAyhV$t;(T^?%MsVaAMBtOUGr05zPj zCGfEbCffmYg(&HYImQD)H1}uA=5O%I2{h#hsYLkcPC$YPS+H!HY)+%YH?Cq()p;Pq0oyJ@{C`8&fp9?%c%J>EDeMUmey%35 z(eUaL@F52{PKdwt9uNc((xhkQI6^cLezq>N-gypqzTg0t=4E@E!0`Ex-pNq)SF~j*v!#pRUWSWuAZhKRLofDts4w#zB;HnRVm{ zSw#3rs()hCfmc_6(j37g!q0UABLu=X2XKTOqA&dzRW>T*!LP;<;;A-zPN0X78$E(~ zI;)lOZ=T0~W5SJIh8s|X+32Y!|QmiJehfJ%9eBfQ?=*5x(I9NTIb%s3j799;vZa}>-MNJRO5O2jRR)4U7Q$guU9Dqi42CrG@09Mfn9||}alvjxZ z&|laTRIV;m0N0_4R+l~~BYOvTCk{ZL;Y?8K<`cjwKj=wc;80LLCk{a0V0%#R%rSt1 z*3^4JPvQXd2`&buVWt6~wI|?6P<|&4K%ZexQ0^rTK-ZxOX# z0Q4D-2jzd_0Q4622j%gE0D4d^pJ78#xncmm7hDcXE6P2|gykklk|arzBuSDaNs=T< ek|arzB=rM!ny7R;%f&nZ0000n9)@>jl~pt zm_DiIaV0Ta+yW~4fW;Krz{1-=E{K9;8pC*mNUlTR8;NP9;D5pkNH*}5>kt_31$qc{ z=j-FS4v|l4AJPlJg$*>}1`@>&=C*03`?RFi@$Pw+%?_>j^MDhK+Kpltx zf8WNJOnnvMoqxIN!HF5*!Uqhpfe51bpKbz`Ap-Re&Q0X8v>k-;Pt-rCq>OgwkGBDb z$X8yVgeZ4@a({{Ghp6JqOxss+>&zthjRVB7fvJS?A93?R1nM#+t!(M%$nJbo-&p#} zk_7n8Rv?}YEG3NZy8&c_2vlVgvUn{0CRu!DEL0RFuInE^p%2(X82{ouAU#B&j-}_} z5gyRR*C)Yo;@~$|fTUjFAYuGtcYzcT0f}kFcz~Bg;eR7#W{iW2>p*H7I87LT&l4aq zL_jvR3OvFGqWIyGrS*dg8_2}HMi_tXaUi}J@tG>~2;Yd}hsu`GKH9l{P9JcWD!vz( z=Kyg9IoH>l@d!ag@q=YcZxQVuzpxEFql)hXCP5TrQ|rPbgb~H}lT5WXT-*f8+Q2)a z_>tVv;(x?v`d}U*f++q+$FF>N|ke2M9gY8_GXMjLfH5H5QD+CSlxeXM6 zDAci(jFP35qw;%u_W-JA90pMQ%r@fka&vaGGMBY%TUs_3mz%Q2cy#8bE?87S6@N^gd+~+m$c&%Rp++hEx243%00M&4tybPcMZXp9m$^e?+CNhAe z41d5od@ukRKvD)!2iK7SBxL|Ka19wiQU*{7SCIiEWdLPx1sOn62G9bRkpaj6GBSWh zxP%NKFTVv`LfF}Xti38B$%HUl)9e=flvC_jUp}Y*9Wa0o+3-1GZHyQv( zj{@!mv?dNfb#Oi4mjNX96;9N`r?qzeL@B-|eh3&cfW+$HVL+z=Bvt{p0{*WGU_27# zQU|94J{y4d1s?;3Q0_q{NRlK;k|arzBuSDaNs=T \ No newline at end of file + \ No newline at end of file diff --git a/public/sw.js b/public/sw.js deleted file mode 100644 index 67c65b47..00000000 --- a/public/sw.js +++ /dev/null @@ -1,11 +0,0 @@ -self.addEventListener('install', (_event) => { - // console.log('sw.js: Service worker has been installed.', event); -}); - -self.addEventListener('activate', (_event) => { - // console.log('sw.js: Service worker has been activated.', event); -}); - -self.addEventListener('fetch', (_event) => { - // console.log('sw.js: Service worker is fetching', event); -}); diff --git a/spec/javascript/components/GitVersion.test.ts b/spec/javascript/components/GitVersion.test.ts new file mode 100644 index 00000000..ff01f3c1 --- /dev/null +++ b/spec/javascript/components/GitVersion.test.ts @@ -0,0 +1,21 @@ +import { waitFor, render, screen } from '@testing-library/svelte'; +import '@testing-library/jest-dom'; +import GitVersion from '@/components/GitVersion.svelte'; + +describe('GitVersion', () => { + test('renders version', async () => { + const { getByText } = render(GitVersion, { + target: document.body, + props: { + commitVersion: 'v0.0.1-123-7654321', + commitTime: '2021-06-01T12:00:00+02:00', + }, + }); + + await waitFor(() => + expect(getByText('v0.0.1-123-7654321')).toBeInTheDocument(), + ); + + expect(getByText('v0.0.1-123-7654321')).toBeInTheDocument(); + }); +}); diff --git a/spec/javascript/src/App.test.ts b/spec/javascript/src/App.test.ts deleted file mode 100644 index 5c26505a..00000000 --- a/spec/javascript/src/App.test.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { mount } from '@vue/test-utils'; - -import App from '@/App.vue'; - -import { createRouter, createWebHistory } from 'vue-router'; - -const router = createRouter({ - history: createWebHistory(), - routes: [ - { - path: '/', - component: { template: 'Home page' }, - }, - { - path: '/about', - component: { template: 'About page' }, - }, - ], -}); - -describe('App', () => { - const wrapper = mount(App, { - global: { - plugins: [router], - }, - }); - - afterAll(() => { - wrapper.unmount(); - }); - - test('matches snapshot', () => { - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('recognizes online/offline', async () => { - window.dispatchEvent(new window.Event('offline')); - await wrapper.vm.$nextTick(); - expect(wrapper.html()).toContain('offline'); - - window.dispatchEvent(new window.Event('online')); - await wrapper.vm.$nextTick(); - expect(wrapper.html()).not.toContain('offline'); - }); -}); diff --git a/spec/javascript/src/__snapshots__/App.test.ts.snap b/spec/javascript/src/__snapshots__/App.test.ts.snap deleted file mode 100644 index 14d95abe..00000000 --- a/spec/javascript/src/__snapshots__/App.test.ts.snap +++ /dev/null @@ -1,43 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`App matches snapshot 1`] = ` - -`; diff --git a/spec/javascript/src/components/GitVersion.test.ts b/spec/javascript/src/components/GitVersion.test.ts deleted file mode 100644 index 65edd4e5..00000000 --- a/spec/javascript/src/components/GitVersion.test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { mount } from '@vue/test-utils'; -import GitVersion from '@/components/GitVersion.vue'; - -describe('GitVersion', () => { - test('matches snapshot', () => { - const wrapper = mount(GitVersion, { - props: { - commitVersion: 'v0.0.1-123-7654321', - commitTime: '2021-06-01T12:00:00+02:00', - }, - }); - - expect(wrapper.html()).toMatchSnapshot(); - - wrapper.unmount(); - }); -}); diff --git a/spec/javascript/src/components/__snapshots__/GitVersion.test.ts.snap b/spec/javascript/src/components/__snapshots__/GitVersion.test.ts.snap deleted file mode 100644 index ac7ce976..00000000 --- a/spec/javascript/src/components/__snapshots__/GitVersion.test.ts.snap +++ /dev/null @@ -1,3 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`GitVersion matches snapshot 1`] = `
v0.0.1-123-7654321
`; diff --git a/spec/javascript/src/pages/About.test.ts b/spec/javascript/src/pages/About.test.ts deleted file mode 100644 index 1b06a9ad..00000000 --- a/spec/javascript/src/pages/About.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { mount } from '@vue/test-utils'; -import AboutPage from '@/pages/AboutPage.vue'; -import * as Vue from 'vue'; - -describe('About', () => { - const savedVersion = Object.getOwnPropertyDescriptor( - Vue, - 'version', - ) as PropertyDescriptor; - - beforeAll(() => { - // Mock `Vue.version` to have a stable snapshot - Object.defineProperty(Vue, 'version', { - value: '3.x.y', - }); - }); - - afterAll(() => { - Object.defineProperty(Vue, 'version', savedVersion); - }); - - test('matches snapshot', () => { - const wrapper = mount(AboutPage, {}); - - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/spec/javascript/src/pages/Home.test.ts b/spec/javascript/src/pages/Home.test.ts deleted file mode 100644 index 9ea60df7..00000000 --- a/spec/javascript/src/pages/Home.test.ts +++ /dev/null @@ -1,60 +0,0 @@ -const mockSendClick = jest.fn(); -const mockUnsubscribe = jest.fn(); -const mockGetClicks = jest.fn(); -const mockSubscribe = jest.fn(); - -jest.mock('@/stores/click', () => ({ - __esModule: true, - useClickStore: () => ({ - loaded: true, - total: 42, - items: [ - { - created_at: '2021-05-23T09:27:21.497Z', - ip: '1.2.3.4', - user_agent: 'Jest', - }, - ], - getClicks: mockGetClicks, - subscribe: mockSubscribe, - unsubscribe: mockUnsubscribe, - sendClick: mockSendClick, - }), -})); - -import { mount } from '@vue/test-utils'; -import Home from '@/pages/HomePage.vue'; - -describe('Home', () => { - const wrapper = mount(Home, { - props: { - name: 'World', - }, - }); - - test('load clicks and subscribes', () => { - expect(mockSubscribe).toHaveBeenCalled(); - expect(mockGetClicks).toHaveBeenCalled(); - }); - - test('renders name', () => { - const title = wrapper.find('h1')?.element?.textContent?.trim(); - expect(title).toEqual('Hello, World!'); - }); - - test('matches snapshot', () => { - expect(wrapper.html()).toMatchSnapshot(); - }); - - test('executes sendClick', () => { - const button = wrapper.find('button'); - button.trigger('click'); - - expect(mockSendClick).toHaveBeenCalled(); - }); - - test('unsubscribes on unmount', () => { - wrapper.unmount(); - expect(mockUnsubscribe).toHaveBeenCalled(); - }); -}); diff --git a/spec/javascript/src/pages/NotFound.test.ts b/spec/javascript/src/pages/NotFound.test.ts deleted file mode 100644 index dd552ecb..00000000 --- a/spec/javascript/src/pages/NotFound.test.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { mount } from '@vue/test-utils'; -import NotFound from '@/pages/NotFound.vue'; - -describe('NotFound', () => { - test('matches snapshot', () => { - const wrapper = mount(NotFound, {}); - - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/spec/javascript/src/pages/__snapshots__/About.test.ts.snap b/spec/javascript/src/pages/__snapshots__/About.test.ts.snap deleted file mode 100644 index 962ad832..00000000 --- a/spec/javascript/src/pages/__snapshots__/About.test.ts.snap +++ /dev/null @@ -1,265 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`About matches snapshot 1`] = ` -

About

-

Templatus is an opinionated template for web applications with Ruby on Rails and Vue.js 3

-
-
-
-
-

Server side

-

The backend

-
-
-
-
-
-

Ruby - -

-
-
A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.
-
-
-
-

Ruby on Rails - -

-
-
Rails is a web application development framework written in the Ruby programming language. It is designed to make programming web applications easier by making assumptions about what every developer needs to get started.
-
-
-
-

PostgreSQL - -

-
-
PostgreSQL is a powerful, open source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.
-
-
-
-

Puma - -

-
-
Puma is a simple, fast, multi-threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications.
-
-
-
-

Redis - -

-
-
Redis is an open source, in-memory data structure store, used as a database, cache, and message broker.
-
-
-
-

Sidekiq - -

-
-
Simple, efficient background processing for Ruby

Admin frontend

-
-
-
-
-
-
-
-
-
-

Client side

-

The frontend

-
-
-
-
-
-

Vue3.x.y

-
-
Vue is a progressive framework for building user interfaces.
-
-
-
-

Tailwind CSS 3 - -

-
-
A utility-first CSS framework packed with classes that can be composed to build any design, directly in your markup.
-
-
-
-

TypeScript - -

-
-
TypeScript is an open-source language which builds on JavaScript, one of the world’s most used tools, by adding static type definitions.
-
-
-
-

Pinia - -

-
-
Intuitive, type safe, light and flexible Store for Vue using the composition api with DevTools support
-
-
-
-

Heroicons - -

-
-
Beautiful hand-crafted SVG icons, by the makers of Tailwind CSS.
-
-
-
-

Vite - -

-
-
Next generation frontend tooling. It's fast!
-
-
-
-
-
-
-
-
-

Quality insurance

-

Continuous integration

-
-
-
-
-
-

GitHub Actions - -

-
-
Test, build and deliver on every push to GitHub
-
-
-
-

RSpec - -

-
-
Behaviour Driven Development for Ruby. Making TDD Productive and Fun.
-
-
-
-

RuboCop - -

-
-
The Ruby Linter/Formatter that Serves and Protects
-
-
-
-

Jest - -

-
-
Jest is a delightful JavaScript Testing Framework with a focus on simplicity
-
-
-
-

ESLint - -

-
-
ESLint statically analyzes your code to quickly find problems
-
-
-
-

Cypress - -

-
-
Fast, easy and reliable testing for anything that runs in a browser.
-
-
-
-
-
-
-
-
-

Ship it!

-

Deployment

-
-
-
-
-
-

Alpine Linux - -

-
-
Alpine Linux is an independent, non-commercial, general purpose Linux distribution designed for power users who appreciate security, simplicity and resource efficiency.
-
-
-
-

Docker - -

-
-
Dockerized using an optimized base image.
-
-
-
-

Plausible - -

-
-
Plausible is lightweight and open source web analytics. No cookies and fully compliant with GDPR, CCPA and PECR.
-
-
-
-
-
-
-`; diff --git a/spec/javascript/src/pages/__snapshots__/Home.test.ts.snap b/spec/javascript/src/pages/__snapshots__/Home.test.ts.snap deleted file mode 100644 index 94c9ceb5..00000000 --- a/spec/javascript/src/pages/__snapshots__/Home.test.ts.snap +++ /dev/null @@ -1,23 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Home matches snapshot 1`] = ` -
-

Hello, World!

-

Templatus is an opinionated template for web applications with Ruby on Rails and Vue.js 3

-
-
-
- -
42
-
-
Clicks
-
- -
-

Latest clicks

- -
  • -

    1.2.3.4May 23, 2021, 09:27:21

    Jest -
  • -
    -`; diff --git a/spec/javascript/src/pages/__snapshots__/NotFound.test.ts.snap b/spec/javascript/src/pages/__snapshots__/NotFound.test.ts.snap deleted file mode 100644 index 06d1ce45..00000000 --- a/spec/javascript/src/pages/__snapshots__/NotFound.test.ts.snap +++ /dev/null @@ -1,8 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`NotFound matches snapshot 1`] = ` -

    Error 404

    -
    -

    Page not found

    -
    -`; diff --git a/spec/javascript/src/stores/click.test.ts b/spec/javascript/src/stores/click.test.ts deleted file mode 100644 index 508d2fbb..00000000 --- a/spec/javascript/src/stores/click.test.ts +++ /dev/null @@ -1,60 +0,0 @@ -const mockGet = jest.fn().mockResolvedValue({ - json: { - total: 500, - items: [ - { - id: 1, - created_at: '1990-12-25', - ip: '1.2.3.4', - user_agent: 'World Wide Web', - }, - { - id: 2, - created_at: '1994-12-15', - ip: '5.6.7.8', - user_agent: 'Netscape Navigator', - }, - ], - }, -}); - -const mockPost = jest.fn().mockResolvedValue(43); - -jest.mock('@rails/request.js', () => ({ - __esModule: true, - get: mockGet, - post: mockPost, -})); - -import { setActivePinia, createPinia } from 'pinia'; -import { useClickStore } from '@/stores/click'; - -describe('CounterStore', () => { - beforeEach(() => setActivePinia(createPinia())); - - it('can send click', async () => { - const store = useClickStore(); - await store.sendClick(); - - expect(mockPost).toHaveBeenCalled(); - }); - - it('can get clicks', async () => { - const store = useClickStore(); - await store.getClicks(); - - expect(store.total).toEqual(500); - }); - - it('can subscribe', () => { - const store = useClickStore(); - store.subscribe(); - expect(store.subscribed).toEqual(true); - }); - - it('can unsubscribe', () => { - const store = useClickStore(); - store.unsubscribe(); - expect(store.subscribed).toEqual(false); - }); -}); diff --git a/spec/javascript/src/utils/metaContent.test.ts b/spec/javascript/src/utils/metaContent.test.ts deleted file mode 100644 index 5aae0aa2..00000000 --- a/spec/javascript/src/utils/metaContent.test.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { metaContent } from '@/utils/metaContent'; - -describe('metaContent', () => { - beforeAll(() => { - document.head.innerHTML = ''; - }); - - test('returns content when exists', () => { - expect(metaContent('the-name')).toEqual('the-content'); - }); - - test('returns undefined when missing', () => { - expect(metaContent('this-does-not-exist')).toBeUndefined(); - }); -}); diff --git a/spec/javascript/utils/metaContent.test.ts b/spec/javascript/utils/metaContent.test.ts new file mode 100644 index 00000000..57e6b94e --- /dev/null +++ b/spec/javascript/utils/metaContent.test.ts @@ -0,0 +1,32 @@ +import { metaContent, assetUrl } from '@/utils/metaContent'; + +describe('metaContent', () => { + beforeAll(() => { + document.head.innerHTML = ''; + }); + + test('returns content when exists', () => { + expect(metaContent('the-name')).toEqual('the-content'); + }); + + test('returns undefined when missing', () => { + expect(metaContent('this-does-not-exist')).toBeUndefined(); + }); +}); + +describe('assetUrl', () => { + test('adds asset host when exists', () => { + document.head.innerHTML = + ''; + + expect(assetUrl('/assets/logo.svg')).toEqual( + 'https://cdn.example.com/assets/logo.svg', + ); + }); + + test('returns unchanged when missing', () => { + document.head.innerHTML = ''; + + expect(assetUrl('/assets/logo.svg')).toEqual('/assets/logo.svg'); + }); +}); diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 73ccae55..bd75bc73 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -18,6 +18,7 @@ end require 'rspec/rails' # Add additional requires below this line. Rails is not loaded until this point! +require 'inertia_rails/rspec' # Requires supporting ruby files with custom matchers and macros, etc, in # spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are diff --git a/spec/requests/about_spec.rb b/spec/requests/about_spec.rb new file mode 100644 index 00000000..6498948e --- /dev/null +++ b/spec/requests/about_spec.rb @@ -0,0 +1,10 @@ +describe 'About', inertia: true do + describe 'GET /show' do + it 'render features' do + get '/about' + + expect_inertia.to render_component('About/Show') + expect_inertia.to include_props(:features) + end + end +end diff --git a/spec/requests/clicks_spec.rb b/spec/requests/clicks_spec.rb index ca912687..6fb072bd 100644 --- a/spec/requests/clicks_spec.rb +++ b/spec/requests/clicks_spec.rb @@ -1,4 +1,4 @@ -describe 'Clicks' do +describe 'Clicks', inertia: true do include ActiveSupport::Testing::TimeHelpers let(:user_agent) { 'Netscape Navigator' } @@ -12,10 +12,11 @@ def call(ip) headers: { HTTP_USER_AGENT: user_agent, REMOTE_ADDR: ip, - ACCEPT: 'application/json', } - expect(response).to have_http_status(:no_content) + expect_inertia.to render_component('Clicks/Index') + expect_inertia.to have_exact_props({}) + expect(Click.last.user_agent).to eq(user_agent) end @@ -40,27 +41,14 @@ def call(ip) end end - describe 'GET /index' do - around { |example| freeze_time(&example) } - - before { Click.create! ip:, user_agent: } + describe 'GET /' do + let!(:click) { Click.create! ip:, user_agent: } - it 'save click and returns http success' do - get '/clicks', headers: { ACCEPT: 'application/json' } + it 'renders existing clicks' do + get '/' - expect(response).to have_http_status(:success) - expect(JSON.parse(response.body)).to match( - 'total' => 1, - 'items' => [ - hash_including( - { - 'created_at' => Time.current.as_json, - 'ip' => ip, - 'user_agent' => user_agent, - }, - ), - ], - ) + expect_inertia.to render_component('Clicks/Index') + expect_inertia.to have_exact_props(total: 1, items: [click]) end end end diff --git a/spec/requests/deflater_spec.rb b/spec/requests/deflater_spec.rb index 7659a8ba..78a8be63 100644 --- a/spec/requests/deflater_spec.rb +++ b/spec/requests/deflater_spec.rb @@ -1,4 +1,4 @@ -describe 'Rack::Deflater', type: :request do +describe 'Rack::Deflater' do it 'compresses with gzip if requested' do ['gzip', 'deflate, gzip', 'gzip, deflate'].each do |compression_method| get root_path, headers: { HTTP_ACCEPT_ENCODING: compression_method } diff --git a/spec/requests/exceptions_spec.rb b/spec/requests/exceptions_spec.rb new file mode 100644 index 00000000..48a44c00 --- /dev/null +++ b/spec/requests/exceptions_spec.rb @@ -0,0 +1,41 @@ +describe 'Exception handling', type: :request do + describe 'requesting URL which does NOT exist' do + %w[ + /this-does-not-exist + /this/does/not/exist + /index.html + /contribute.json + /docker-compose.yml + /jquery.js + /babel.config.js + /bootstrap.css + /sitemap.xml + /password.txt + /picture.png + /picture.gif + /picture.jpg + /picture.jpeg + /wp-login.php + /.git/config + /../root + ].each do |url| + context "for #{url}" do + it 'returns a 404 status code' do + rails_respond_without_detailed_exceptions { get(url) } + expect(response).to have_http_status(:not_found) + end + end + end + end + + # describe 'requesting URL with unknown format' do + # %w[?format=xml /.env /.git].each do |url| + # context "for #{url}" do + # it 'returns a 406 status code' do + # rails_respond_without_detailed_exceptions { get(url) } + # expect(response).to have_http_status(:not_acceptable) + # end + # end + # end + # end +end diff --git a/spec/support/error_responses.rb b/spec/support/error_responses.rb new file mode 100644 index 00000000..1c5d1dfb --- /dev/null +++ b/spec/support/error_responses.rb @@ -0,0 +1,21 @@ +# How to have Rails request specs handling errors like production +# https://medium.com/@edgar/rspec-how-to-have-rails-request-specs-handling-errors-like-production-a8c21ed0308a + +module ErrorResponses + def rails_respond_without_detailed_exceptions # rubocop:disable Metrics/MethodLength + env_config = Rails.application.env_config + original_show_exceptions = env_config['action_dispatch.show_exceptions'] + original_show_detailed_exceptions = + env_config['action_dispatch.show_detailed_exceptions'] + env_config['action_dispatch.show_exceptions'] = true + env_config['action_dispatch.show_detailed_exceptions'] = false + yield + ensure + env_config['action_dispatch.show_exceptions'] = original_show_exceptions + env_config[ + 'action_dispatch.show_detailed_exceptions' + ] = original_show_detailed_exceptions + end +end + +RSpec.configure { |config| config.include ErrorResponses } diff --git a/svelte.config.js b/svelte.config.js new file mode 100644 index 00000000..2dd36643 --- /dev/null +++ b/svelte.config.js @@ -0,0 +1,5 @@ +const sveltePreprocess = require('svelte-preprocess'); + +module.exports = { + preprocess: sveltePreprocess(), +}; diff --git a/tailwind.config.js b/tailwind.config.js index 984b7d81..3f4a88e5 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -6,8 +6,8 @@ module.exports = { light: '#D30001', dark: '#690000', }, - vue: { - DEFAULT: '#42b883', + inertia: { + DEFAULT: '#9553e9', }, rose: { DEFAULT: '#F0E7E9', @@ -18,7 +18,7 @@ module.exports = { content: [ './app/**/*.{html,rb}', './app/**/*.html.erb', - './app/javascript/**/*.{vue,js,ts}', + './app/javascript/**/*.{svelte,js,ts}', ], plugins: [require('@tailwindcss/forms')], }; diff --git a/tsconfig.json b/tsconfig.json index 856fc13d..a2d2426d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,77 +1,16 @@ { + "extends": "@tsconfig/svelte/tsconfig.json", "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Basic Options */ - // "incremental": true, /* Enable incremental compilation */ - "target": "esnext", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ - "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ - // "lib": [], /* Specify library files to be included in the compilation. */ - // "allowJs": true, /* Allow javascript files to be compiled. */ - // "checkJs": true, /* Report errors in .js files. */ - "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */ - // "declaration": true, /* Generates corresponding '.d.ts' file. */ - // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ - "sourceMap": true, /* Generates corresponding '.map' file. */ - // "outFile": "./", /* Concatenate and emit output to single file. */ - // "outDir": "./", /* Redirect output structure to the directory. */ - // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - "removeComments": true, /* Do not emit comments to output. */ - "noEmit": true, /* Do not emit outputs. */ - "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* Enable strict null checks. */ - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ - - /* Additional Checks */ - // "noUnusedLocals": true, /* Report errors on unused locals. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - // "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ - - /* Module Resolution Options */ - // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + "target": "esNext", + "module": "esNext", + "types": ["vite/client", "jest", "@testing-library/jest-dom"], "paths": { - "@/*": ["./app/javascript/src/*"], - "@test/*": ["./spec/javascript/src/*"] + "@/*": ["./app/javascript/*"], + "@test/*": ["./spec/javascript/*"] }, - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - // "types": [], /* Type declaration files to be included in compilation. */ - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "skipLibCheck": true, /* Skip type checking of declaration files. */ - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + "strict": true, + "noImplicitAny": false, }, - "include": ["app/javascript/**/*.ts", "app/javascript/**/*.vue", "spec/javascript/**/*.ts"], + "include": [ "app/javascript/**/*", "spec/javascript/**/*" ], "exclude": ["node_modules", "public"] } diff --git a/vite.config.ts b/vite.config.ts index 44e62a04..2765b63a 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -2,24 +2,32 @@ import { defineConfig } from 'vite'; import { splitVendorChunkPlugin } from 'vite'; import RubyPlugin from 'vite-plugin-ruby'; import FullReload from 'vite-plugin-full-reload'; -import vue from '@vitejs/plugin-vue'; +import { svelte } from '@sveltejs/vite-plugin-svelte'; import { fileURLToPath, URL } from 'url'; +import preprocess from 'svelte-preprocess'; export default defineConfig({ plugins: [ splitVendorChunkPlugin(), RubyPlugin(), FullReload(['config/routes.rb', 'app/views/**/*']), - vue(), + svelte({ + experimental: { + prebundleSvelteLibraries: true, + }, + preprocess: preprocess({ + postcss: true, + }), + }), ], resolve: { alias: { - '@': fileURLToPath(new URL('./app/javascript/src', import.meta.url)), + '@': fileURLToPath(new URL('./app/javascript', import.meta.url)), }, }, server: { hmr: { - host: 'vite.templatus.test', + host: 'vite.templatus-inertia.test', clientPort: 443, }, }, diff --git a/yarn.lock b/yarn.lock index 94227d94..d58af251 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,7 +10,7 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== @@ -22,7 +22,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.2": +"@babel/core@^7.11.6", "@babel/core@^7.12.3": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.2.tgz#87b2fcd7cce9becaa7f5acebdc4f09f3dd19d876" integrity sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ== @@ -108,7 +108,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== -"@babel/helper-simple-access@^7.17.7", "@babel/helper-simple-access@^7.18.2": +"@babel/helper-simple-access@^7.17.7": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9" integrity sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ== @@ -150,7 +150,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.16.7", "@babel/parser@^7.18.0": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.18.0": version "7.18.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== @@ -246,15 +246,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-transform-modules-commonjs@^7.2.0": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz#1aa8efa2e2a6e818b6a7f2235fceaf09bdb31e9e" - integrity sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ== +"@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2": + version "7.18.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" + integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== dependencies: - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-simple-access" "^7.18.2" - babel-plugin-dynamic-import-node "^2.3.3" + regenerator-runtime "^0.13.4" "@babel/template@^7.16.7", "@babel/template@^7.3.3": version "7.16.7" @@ -346,25 +343,18 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@heroicons/vue@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@heroicons/vue/-/vue-1.0.6.tgz#d8b90734b436eb5a87f40cc300b64a0fb0031f7f" - integrity sha512-ng2YcCQrdoQWEFpw+ipFl2rZo8mZ56v0T5+MyfQQvNqfKChwgP6DMloZLW+rl17GEcHkE3H82UTAMKBKZr4+WA== +"@feltcoop/eslint-config@^0.1.7": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@feltcoop/eslint-config/-/eslint-config-0.1.7.tgz#1fbdac20232f0c1cb3686635da0d7a973d4d9a5e" + integrity sha512-NYbSlDVlDY/oPTIwyKNfp8Znouf3Mi2rAYMxphB1jtS9DYJAjvxOfj51ZB+eOo8Gsp3YRdNBr6bULQeKyTAn5g== -"@honeybadger-io/js@^4.0.1": +"@honeybadger-io/js@^4.0.3": version "4.0.3" resolved "https://registry.yarnpkg.com/@honeybadger-io/js/-/js-4.0.3.tgz#56eb7d26ee19aa5ff84942080a1cee0299ad784a" integrity sha512-v1NVtM+vGO6Xe8ZbHs45V8INCasuQK6xSjgPPVNvaL2xgcAKfJhfMnqIqQWtBeu9cGvfAJusiMUiIge68jkQAA== dependencies: stacktrace-parser "^0.1.10" -"@honeybadger-io/vue@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@honeybadger-io/vue/-/vue-3.1.0.tgz#83e12d22e82a3eacc4b28df8731a4af235352f14" - integrity sha512-sSRrw6w64pwhDCTQwYPZl1plM3sFEBfGiDr3cwuNVCzquSZ5niRQI4MkMC+UH21+cO2S6H7ube8UUJ9gazbpTg== - dependencies: - "@honeybadger-io/js" "^4.0.1" - "@humanwhocodes/config-array@^0.9.2": version "0.9.5" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" @@ -379,6 +369,29 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@inertiajs/inertia-svelte@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@inertiajs/inertia-svelte/-/inertia-svelte-0.8.0.tgz#cb3c1443e354536ad8e92cb3b0e1c839cafd3d4f" + integrity sha512-kitWdsYNUddJlhBKPjOpJPhzOZgcAD4DkIVS2eSPKgCdrbincHHYnj8KlPsIJm8H6frQsB1Wf2sWzblJKS6Mmg== + dependencies: + lodash.isequal "^4.5.0" + +"@inertiajs/inertia@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@inertiajs/inertia/-/inertia-0.11.0.tgz#873ec1283ad4db33b87b4c0e3011c2e5fc3e6cc1" + integrity sha512-QF4hctgFC+B/t/WClCwfOla+WoDE9iTltQJ0u+DCfjl0KdGoCvIxYiNtuH8h8oM+RQMb8orjbpW3pHapjYI5Vw== + dependencies: + axios "^0.21.1" + deepmerge "^4.0.0" + qs "^6.9.0" + +"@inertiajs/progress@^0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@inertiajs/progress/-/progress-0.2.7.tgz#b42ac849b6f227fe8a45a91d663719c5bd362131" + integrity sha512-zxadfLlBPIUvTE9g5k71V/Ayzo8P9kEp4hV4UKywCC2kURufxV7bycbZqU1GeMCFGDT+VRrjXNl676Pwwa1HoQ== + dependencies: + nprogress "^0.2.0" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -661,10 +674,13 @@ resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-7.0.3.tgz#71f08e958883af64f6a20489318b5e95d2c6dc5b" integrity sha512-Iefl21FZD+ck1di6xSHMYzSzRiNJTHV4NrAzCfDfqc/wPz4xncrP8f2/fJ+2jzwKIaDn76UVMsALh7R5OzsF8Q== -"@rails/request.js@^0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@rails/request.js/-/request.js-0.0.6.tgz#5f0347a9f363e50ec45118c7134080490cda81d8" - integrity sha512-dfFWaQXitYJ4kxrgGJNhDNXX54/v10YgoJqBMVe6lhqs6a4N9WD7goZJEvwin82TtK8MqUNhwfyisgKwM6dMdg== +"@rollup/pluginutils@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" + integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" "@sinclair/typebox@^0.23.3": version "0.23.5" @@ -692,6 +708,18 @@ dependencies: semver "7.3.5" +"@sveltejs/vite-plugin-svelte@^1.0.0-next.48": + version "1.0.0-next.48" + resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.48.tgz#6ab566d56c842d45a988cf73c119d0038d4ce893" + integrity sha512-hjCEww6FKSuHVMe56vZLClUDuRqK4A/ZC5hPUIx/o2fQ7HmRydp4ztEopjMMnl/YYyEceGBKgY781I9PGEYvAw== + dependencies: + "@rollup/pluginutils" "^4.2.1" + debug "^4.3.4" + deepmerge "^4.2.2" + kleur "^4.1.4" + magic-string "^0.26.2" + svelte-hmr "^0.14.12" + "@tailwindcss/forms@^0.5.2": version "0.5.2" resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.2.tgz#4ef45f9916dcb37838cbe7fecdcc4ba7a7c2ab59" @@ -699,11 +727,62 @@ dependencies: mini-svg-data-uri "^1.2.3" +"@testing-library/dom@^8.1.0", "@testing-library/dom@^8.13.0": + version "8.13.0" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.13.0.tgz#bc00bdd64c7d8b40841e27a70211399ad3af46f5" + integrity sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^4.2.0" + aria-query "^5.0.0" + chalk "^4.1.0" + dom-accessibility-api "^0.5.9" + lz-string "^1.4.4" + pretty-format "^27.0.2" + +"@testing-library/jest-dom@^5.16.4": + version "5.16.4" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.4.tgz#938302d7b8b483963a3ae821f1c0808f872245cd" + integrity sha512-Gy+IoFutbMQcky0k+bqqumXZ1cTGswLsFqmNLzNdSKkU9KGV2u9oXhukCbbJ9/LRPKiqwxEE8VpV/+YZlfkPUA== + dependencies: + "@babel/runtime" "^7.9.2" + "@types/testing-library__jest-dom" "^5.9.1" + aria-query "^5.0.0" + chalk "^3.0.0" + css "^3.0.0" + css.escape "^1.5.1" + dom-accessibility-api "^0.5.6" + lodash "^4.17.15" + redent "^3.0.0" + +"@testing-library/svelte@^3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@testing-library/svelte/-/svelte-3.1.3.tgz#a3605a0e98ea04f9ba58ec3d554a9e1a81a4a577" + integrity sha512-pyed3yMnTu7wG9Z4XKoIxdrx52hSEFDC8qUaiSsiSh8tBVj3ZjqEKnV2Nfc0IF2llEkT0B7QOXnOVTLJ3O5RCw== + dependencies: + "@testing-library/dom" "^8.1.0" + +"@testing-library/user-event@^14.2.0": + version "14.2.0" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.2.0.tgz#8293560f8f80a00383d6c755ec3e0b918acb1683" + integrity sha512-+hIlG4nJS6ivZrKnOP7OGsDu9Fxmryj9vCl8x0ZINtTJcCHs2zLsYif5GzuRiBF2ck5GZG2aQr7Msg+EHlnYVQ== + "@tootallnate/once@2": version "2.0.0" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== +"@tsconfig/svelte@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@tsconfig/svelte/-/svelte-3.0.0.tgz#b06e059209f04c414de0069f2f0e2796d979fc6f" + integrity sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg== + +"@types/aria-query@^4.2.0": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" + integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== + "@types/babel__core@^7.1.14": version "7.1.19" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" @@ -763,7 +842,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^28.1.1": +"@types/jest@*", "@types/jest@^28.1.1": version "28.1.1" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.1.tgz#8c9ba63702a11f8c386ee211280e8b68cb093cd1" integrity sha512-C2p7yqleUKtCkVjlOur9BWVA4HgUQmEj/HWCt5WzZ5mLXrWnyIfl0wGuArc+kBXsy0ZZfLp+7dywB4HtSVYGVA== @@ -805,11 +884,23 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.3.tgz#68ada76827b0010d0db071f739314fa429943d0a" integrity sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg== +"@types/pug@^2.0.4": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.6.tgz#f830323c88172e66826d0bde413498b61054b5a6" + integrity sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg== + "@types/rails__actioncable@^6.1.6": version "6.1.6" resolved "https://registry.yarnpkg.com/@types/rails__actioncable/-/rails__actioncable-6.1.6.tgz#c5427f7ba5a41e41e1237bc943c81d7f44b46167" integrity sha512-/whIczf4uhpac/X19vMRTHOF4reN92I6C4uOmTTtbT1xdesjrStLNQq9v+jexHehc8RENUHk4sXVzwm5PBy2fA== +"@types/sass@^1.16.0": + version "1.43.1" + resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.43.1.tgz#86bb0168e9e881d7dade6eba16c9ed6d25dc2f68" + integrity sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g== + dependencies: + "@types/node" "*" + "@types/sinonjs__fake-timers@8.1.1": version "8.1.1" resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" @@ -825,15 +916,12 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== -"@types/strip-bom@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" - integrity sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ== - -"@types/strip-json-comments@0.0.30": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" - integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== +"@types/testing-library__jest-dom@^5.9.1": + version "5.14.3" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz#ee6c7ffe9f8595882ee7bda8af33ae7b8789ef17" + integrity sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw== + dependencies: + "@types/jest" "*" "@types/tough-cookie@*": version "4.0.2" @@ -919,7 +1007,7 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.27.1", "@typescript-eslint/utils@^5.10.0": +"@typescript-eslint/utils@5.27.1": version "5.27.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.27.1.tgz#b4678b68a94bc3b85bf08f243812a6868ac5128f" integrity sha512-mZ9WEn1ZLDaVrhRaYgzbkXBkTPghPFsup8zDbbsYTxC5OmqrFE7skkKS/sraVsLP3TcT3Ki5CSyEFBRkLH/H/w== @@ -939,175 +1027,11 @@ "@typescript-eslint/types" "5.27.1" eslint-visitor-keys "^3.3.0" -"@vitejs/plugin-vue@^2.3.3": - version "2.3.3" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-2.3.3.tgz#fbf80cc039b82ac21a1acb0f0478de8f61fbf600" - integrity sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw== - -"@volar/code-gen@0.37.3": - version "0.37.3" - resolved "https://registry.yarnpkg.com/@volar/code-gen/-/code-gen-0.37.3.tgz#d76c0a112a7fcba90436f7ab0f2149fae02d66b8" - integrity sha512-+XXfbkjVoDPxECkAOtRmHKnKnSWMOeThqlVSm9XwIVSdyiBN8Gi4xDUWmPH/WxK+D8bGLCm4Vkjk3rge+KOVaQ== - dependencies: - "@volar/source-map" "0.37.3" - -"@volar/source-map@0.37.3": - version "0.37.3" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-0.37.3.tgz#15c6fa6642c001aff0468a007f9be263e23acb78" - integrity sha512-vedJWjcjKY2u8EnYMQyDjab2+S1tzUqvzJAY3PqVeN7nwJMyP5X2C/OMB2qZqJPxM0EYIR5ExVaJyVxWNkCgYA== - -"@volar/typescript-faster@0.37.3": - version "0.37.3" - resolved "https://registry.yarnpkg.com/@volar/typescript-faster/-/typescript-faster-0.37.3.tgz#b234ea6ff4c134988fcb308d3cb5dc99a9376aca" - integrity sha512-WlEv38Uga/VnstM2cdCedaH8eZsO/DwDr5GDNoJk+lLcpCHbmWgccajUaiLhXfgqBZld0hxQwlgwIqOsKrSgig== - dependencies: - semver "^7.3.7" - -"@volar/vue-code-gen@0.37.3": - version "0.37.3" - resolved "https://registry.yarnpkg.com/@volar/vue-code-gen/-/vue-code-gen-0.37.3.tgz#e872dbf2080aed215d34b58cc41bfb8288b2ddda" - integrity sha512-+V+XUItSKve98W7m+WM1iUHyEe5JixTmILsMqZNJ/Ob0UFci2YD3tCTlMC9/o/CdKlxBCgUerQZ61q/YLWKgkg== - dependencies: - "@volar/code-gen" "0.37.3" - "@volar/source-map" "0.37.3" - "@vue/compiler-core" "^3.2.37" - "@vue/compiler-dom" "^3.2.37" - "@vue/shared" "^3.2.37" - -"@volar/vue-typescript@0.37.3": - version "0.37.3" - resolved "https://registry.yarnpkg.com/@volar/vue-typescript/-/vue-typescript-0.37.3.tgz#b84ebee5604c1d41aa7c89cd71451a4b48438afe" - integrity sha512-klMYVD4a3M+PhjNfreOFjgdGWTFSOM7fIJ5yebrwt8UD9HV2Bhfz0YNTYBL6SkGDTRCgeNPdGTgh1RbIWjsQJA== - dependencies: - "@volar/code-gen" "0.37.3" - "@volar/source-map" "0.37.3" - "@volar/typescript-faster" "0.37.3" - "@volar/vue-code-gen" "0.37.3" - "@vue/compiler-sfc" "^3.2.37" - "@vue/reactivity" "^3.2.37" - -"@vue/compiler-core@3.2.37", "@vue/compiler-core@^3.2.37": - version "3.2.37" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.37.tgz#b3c42e04c0e0f2c496ff1784e543fbefe91e215a" - integrity sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg== - dependencies: - "@babel/parser" "^7.16.4" - "@vue/shared" "3.2.37" - estree-walker "^2.0.2" - source-map "^0.6.1" - -"@vue/compiler-dom@3.2.37", "@vue/compiler-dom@^3.2.37": - version "3.2.37" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz#10d2427a789e7c707c872da9d678c82a0c6582b5" - integrity sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ== - dependencies: - "@vue/compiler-core" "3.2.37" - "@vue/shared" "3.2.37" - -"@vue/compiler-sfc@3.2.37", "@vue/compiler-sfc@^3.2.37": - version "3.2.37" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz#3103af3da2f40286edcd85ea495dcb35bc7f5ff4" - integrity sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg== - dependencies: - "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.37" - "@vue/compiler-dom" "3.2.37" - "@vue/compiler-ssr" "3.2.37" - "@vue/reactivity-transform" "3.2.37" - "@vue/shared" "3.2.37" - estree-walker "^2.0.2" - magic-string "^0.25.7" - postcss "^8.1.10" - source-map "^0.6.1" - -"@vue/compiler-ssr@3.2.37": - version "3.2.37" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz#4899d19f3a5fafd61524a9d1aee8eb0505313cff" - integrity sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw== - dependencies: - "@vue/compiler-dom" "3.2.37" - "@vue/shared" "3.2.37" - -"@vue/devtools-api@^6.0.0", "@vue/devtools-api@^6.1.4": - version "6.1.4" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.1.4.tgz#b4aec2f4b4599e11ba774a50c67fa378c9824e53" - integrity sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ== - -"@vue/reactivity-transform@3.2.37": - version "3.2.37" - resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz#0caa47c4344df4ae59f5a05dde2a8758829f8eca" - integrity sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg== - dependencies: - "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.37" - "@vue/shared" "3.2.37" - estree-walker "^2.0.2" - magic-string "^0.25.7" - -"@vue/reactivity@3.2.37", "@vue/reactivity@^3.2.37": - version "3.2.37" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.37.tgz#5bc3847ac58828e2b78526e08219e0a1089f8848" - integrity sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A== - dependencies: - "@vue/shared" "3.2.37" - -"@vue/runtime-core@3.2.37": - version "3.2.37" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.37.tgz#7ba7c54bb56e5d70edfc2f05766e1ca8519966e3" - integrity sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ== - dependencies: - "@vue/reactivity" "3.2.37" - "@vue/shared" "3.2.37" - -"@vue/runtime-dom@3.2.37": - version "3.2.37" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz#002bdc8228fa63949317756fb1e92cdd3f9f4bbd" - integrity sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw== - dependencies: - "@vue/runtime-core" "3.2.37" - "@vue/shared" "3.2.37" - csstype "^2.6.8" - -"@vue/server-renderer@3.2.37": - version "3.2.37" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.37.tgz#840a29c8dcc29bddd9b5f5ffa22b95c0e72afdfc" - integrity sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA== - dependencies: - "@vue/compiler-ssr" "3.2.37" - "@vue/shared" "3.2.37" - -"@vue/shared@3.2.37", "@vue/shared@^3.2.37": - version "3.2.37" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.37.tgz#8e6adc3f2759af52f0e85863dfb0b711ecc5c702" - integrity sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw== - -"@vue/test-utils@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-2.0.0.tgz#06455934091d237d71d81bac6617485de38b1c58" - integrity sha512-zL5kygNq7hONrO1CzaUGprEAklAX+pH8J1MPMCU3Rd2xtSYkZ+PmKU3oEDRg8VAGdL5lNJHzDgrud5amFPtirw== - -"@vue/vue3-jest@^28.0.0": - version "28.0.0" - resolved "https://registry.yarnpkg.com/@vue/vue3-jest/-/vue3-jest-28.0.0.tgz#e1b5d37992dd611a798a0fd0e18b4252aa722c47" - integrity sha512-X5ZgZuG4d9N6x5lZAWWtTCSo4lO6+ytV5IekoyWVQYC9sKbYenrGUrCvy/kSftK6kPe8K/LeSsYj2VMJAUdeww== - dependencies: - "@babel/plugin-transform-modules-commonjs" "^7.2.0" - chalk "^2.1.0" - convert-source-map "^1.6.0" - css-tree "^2.0.1" - source-map "0.5.6" - tsconfig "^7.0.0" - abab@^2.0.5, abab@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - acorn-globals@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" @@ -1236,6 +1160,11 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +aria-query@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c" + integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg== + array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -1273,6 +1202,11 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + autoprefixer@^10.4.7: version "10.4.7" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.7.tgz#1db8d195f41a52ca5069b7593be167618edbbedf" @@ -1295,6 +1229,13 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== +axios@^0.21.1: + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.0" + babel-jest@^28.1.1: version "28.1.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.1.tgz#2a3a4ae50964695b2d694ccffe4bec537c5a3586" @@ -1308,13 +1249,6 @@ babel-jest@^28.1.1: graceful-fs "^4.2.9" slash "^3.0.0" -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - babel-plugin-istanbul@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" @@ -1394,11 +1328,6 @@ bluebird@^3.7.2: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1444,7 +1373,7 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -buffer-crc32@~0.2.3: +buffer-crc32@^0.2.5, buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== @@ -1501,16 +1430,16 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001335, caniuse-lite@^1.0.30001349: - version "1.0.30001350" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001350.tgz#f0acc6472469d066a4357765eb73be5973eda918" - integrity sha512-NZBql38Pzd+rAu5SPXv+qmTWGQuFsRiemHCJCAPvkoDxWV19/xqL2YHF32fDJ9SDLdLqfax8+S0CO3ncDCp9Iw== + version "1.0.30001351" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001351.tgz#fd38e07c0ab75921169bac5076b0e0c5f58f9b50" + integrity sha512-u+Ll+RDaiQEproTQjZLjZwyfNgNezA1fERMT7/54npcz+PkbVJUAHXMUz4bkXQYRPWrcFNO0Fbi1mwjfXg6N5g== caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -chalk@^2.0.0, chalk@^2.1.0: +chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1519,6 +1448,14 @@ chalk@^2.0.0, chalk@^2.1.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -1651,11 +1588,6 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.19.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" @@ -1671,23 +1603,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -condense-newlines@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" - integrity sha512-P7X+QL9Hb9B/c8HI5BFFKmjgBu2XpQuF98WZ9XkO+dBGgk5XgwiQz7o1SmpglNWId3581UcS0SFAWfoIhMHPfg== - dependencies: - extend-shallow "^2.0.1" - is-whitespace "^0.3.0" - kind-of "^3.0.2" - -config-chain@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" @@ -1709,13 +1624,19 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -css-tree@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.1.0.tgz#170e27ccf94e7c5facb183765c25898be843d1d2" - integrity sha512-PcysZRzToBbrpoUrZ9qfblRIRf8zbEAkU0AIpQFtgkFK0vSbzOmBCvdSAx2Zg7Xx5wiYJKUKk0NMP7kxevie/A== +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== + +css@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" + integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== dependencies: - mdn-data "2.0.27" - source-map-js "^1.0.1" + inherits "^2.0.4" + source-map "^0.6.1" + source-map-resolve "^0.6.0" cssesc@^3.0.0: version "3.0.0" @@ -1739,11 +1660,6 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" -csstype@^2.6.8: - version "2.6.20" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda" - integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA== - cypress@^10.0.3: version "10.0.3" resolved "https://registry.yarnpkg.com/cypress/-/cypress-10.0.3.tgz#889b4bef863b7d1ef1b608b85b964394ad350c5f" @@ -1832,6 +1748,11 @@ decimal.js@^10.3.1: resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== + dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -1842,19 +1763,11 @@ deep-is@^0.1.3, deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@^4.2.2: +deepmerge@^4.0.0, deepmerge@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -define-properties@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" @@ -1865,6 +1778,11 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +detect-indent@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -1913,6 +1831,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: + version "0.5.14" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz#56082f71b1dc7aac69d83c4285eef39c15d93f56" + integrity sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg== + domexception@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" @@ -1928,20 +1851,10 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -editorconfig@^0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" - integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== - dependencies: - commander "^2.19.0" - lru-cache "^4.1.5" - semver "^5.6.0" - sigmund "^1.0.1" - electron-to-chromium@^1.4.147: - version "1.4.148" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.148.tgz#437430e03c58ccd1d05701f66980afe54d2253ec" - integrity sha512-8MJk1bcQUAYkuvCyWZxaldiwoDG0E0AMzBGA6cv3WfuvJySiPgfidEPBFCRRH3cZm6SVZwo/oRlK1ehi1QNEIQ== + version "1.4.150" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.150.tgz#89f0e12505462d5df7e56c5b91aff7e1dfdd33ec" + integrity sha512-MP3oBer0X7ZeS9GJ0H6lmkn561UxiwOIY9TTkdxVY7lI9G6GVCKfgJaHaDcakwdKxBXA4T3ybeswH/WBIN/KTA== emittery@^0.10.2: version "0.10.2" @@ -1974,6 +1887,11 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +es6-promise@^3.1.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + integrity sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg== + esbuild-android-64@0.14.43: version "0.14.43" resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.43.tgz#59bf3edad6863c27aa92bbb5c1d83a9a5c981495" @@ -2144,13 +2062,6 @@ eslint-plugin-cypress@^2.12.1: dependencies: globals "^11.12.0" -eslint-plugin-jest@^26.5.3: - version "26.5.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-26.5.3.tgz#a3ceeaf4a757878342b8b00eca92379b246e5505" - integrity sha512-sICclUqJQnR1bFRZGLN2jnSVsYOsmPYYnroGCIMVSvTS3y8XR3yjzy1EcTQmk6typ5pRgyIWzbjqxK6cZHEZuQ== - dependencies: - "@typescript-eslint/utils" "^5.10.0" - eslint-plugin-prettier@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz#8b99d1e4b8b24a762472b4567992023619cb98e0" @@ -2158,18 +2069,10 @@ eslint-plugin-prettier@^4.0.0: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-vue@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.1.0.tgz#b528941325e26a24bc5d5c5030c0a8996c36659c" - integrity sha512-EPCeInPicQ/YyfOWJDr1yfEeSNoFCMzUus107lZyYi37xejdOolNzS5MXGXp8+9bkoKZMdv/1AcZzQebME6r+g== - dependencies: - eslint-utils "^3.0.0" - natural-compare "^1.4.0" - nth-check "^2.0.1" - postcss-selector-parser "^6.0.9" - semver "^7.3.5" - vue-eslint-parser "^9.0.1" - xml-name-validator "^4.0.0" +eslint-plugin-svelte3@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-svelte3/-/eslint-plugin-svelte3-4.0.0.tgz#3d4f3dcaec5761dac8bc697f81de3613b485b4e3" + integrity sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g== eslint-scope@^5.1.1: version "5.1.1" @@ -2245,7 +2148,7 @@ eslint@^8.17.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^9.3.1, espree@^9.3.2: +espree@^9.3.2: version "9.3.2" resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== @@ -2283,7 +2186,7 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -estree-walker@^2.0.2: +estree-walker@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== @@ -2351,13 +2254,6 @@ expect@^28.1.1: jest-message-util "^28.1.1" jest-util "^28.1.1" -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - dependencies: - is-extendable "^0.1.0" - extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" @@ -2478,6 +2374,11 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== +follow-redirects@^1.14.0: + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -2546,14 +2447,14 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-intrinsic@^1.0.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.3" get-package-type@^0.1.0: version "0.1.0" @@ -2643,7 +2544,7 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: +graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -2658,14 +2559,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-symbols@^1.0.1: +has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -2776,7 +2670,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2: +inherits@2, inherits@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2786,11 +2680,6 @@ ini@2.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== -ini@^1.3.4: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -2803,11 +2692,6 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - is-ci@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" @@ -2822,11 +2706,6 @@ is-core-module@^2.8.1: dependencies: has "^1.0.3" -is-extendable@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -2887,11 +2766,6 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-whitespace@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" - integrity sha512-RydPhl4S6JwAyj0JJjshWJEFG6hNye3pZFBRZaTUfZFwGHxzppNaNOVgQuS/E/SlhrApuMXrpnK1EEIXfdo3Dg== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -3255,13 +3129,6 @@ jest-runtime@^28.1.1: slash "^3.0.0" strip-bom "^4.0.0" -jest-serializer-vue@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/jest-serializer-vue/-/jest-serializer-vue-2.0.2.tgz#b238ef286357ec6b480421bd47145050987d59b3" - integrity sha512-nK/YIFo6qe3i9Ge+hr3h4PpRehuPPGZFt8LDBdTHYldMb7ZWlkanZS8Ls7D8h6qmQP2lBQVDLP0DKn5bJ9QApQ== - dependencies: - pretty "2.0.0" - jest-snapshot@^28.1.1: version "28.1.1" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.1.tgz#ab825c16c8d8b5e883bd57eee6ca8748c42ab848" @@ -3353,16 +3220,6 @@ jest@^28.1.1: import-local "^3.0.2" jest-cli "^28.1.1" -js-beautify@^1.6.12: - version "1.14.3" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.3.tgz#3dd11c949178de7f3bdf3f6f752778d3bed95150" - integrity sha512-f1ra8PHtOEu/70EBnmiUlV8nJePS58y9qKjl4JHfYWlFH6bo7ogZBz//FAZp7jDuXtYnGYKymZPlrg2I/9Zo4g== - dependencies: - config-chain "^1.1.13" - editorconfig "^0.15.3" - glob "^7.1.3" - nopt "^5.0.0" - js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -3475,18 +3332,16 @@ jsprim@^2.0.2: json-schema "0.4.0" verror "1.10.0" -kind-of@^3.0.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== - dependencies: - is-buffer "^1.1.5" - kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +kleur@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" + integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== + lazy-ass@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" @@ -3544,6 +3399,11 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -3559,7 +3419,7 @@ lodash.once@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== -lodash@^4.17.21: +lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -3582,14 +3442,6 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -lru-cache@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -3597,6 +3449,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lz-string@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" + integrity sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ== + magic-string@^0.25.7: version "0.25.9" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" @@ -3604,6 +3461,13 @@ magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" +magic-string@^0.26.2: + version "0.26.2" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.2.tgz#5331700e4158cd6befda738bb6b0c7b93c0d4432" + integrity sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A== + dependencies: + sourcemap-codec "^1.4.8" + make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -3623,11 +3487,6 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" -mdn-data@2.0.27: - version "2.0.27" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.27.tgz#1710baa7b0db8176d3b3d565ccb7915fc69525ab" - integrity sha512-kwqO0I0jtWr25KcfLm9pia8vLZ8qoAKhWZuZMbneJq3jjBD3gl5nZs8l8Tu3ZBlBAHVQtDur9rdDGyvtfVraHQ== - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -3663,6 +3522,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + mini-svg-data-uri@^1.2.3: version "1.4.4" resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" @@ -3675,11 +3539,18 @@ minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +mkdirp@^0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" @@ -3722,13 +3593,6 @@ node-releases@^2.0.5: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -3746,12 +3610,10 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== nwsapi@^2.2.0: version "2.2.0" @@ -3763,20 +3625,10 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" +object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" @@ -3909,7 +3761,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -3919,14 +3771,6 @@ pify@^2.2.0: resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== -pinia@^2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.0.14.tgz#0837898c20291ebac982bbfca95c8d3c6099925f" - integrity sha512-0nPuZR4TetT/WcLN+feMSjWJku3SQU7dBbXC6uw+R6FLQJCsg+/0pzXyD82T1FmAYe0lsx+jnEDQ1BLgkRKlxA== - dependencies: - "@vue/devtools-api" "^6.1.4" - vue-demi "*" - pirates@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" @@ -3966,7 +3810,7 @@ postcss-nested@5.0.6: dependencies: postcss-selector-parser "^6.0.6" -postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9: +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6: version "6.0.10" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== @@ -3979,7 +3823,7 @@ postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.1.10, postcss@^8.4.12, postcss@^8.4.13, postcss@^8.4.14: +postcss@^8.4.12, postcss@^8.4.13, postcss@^8.4.14: version "8.4.14" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== @@ -4005,6 +3849,11 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" +prettier-plugin-svelte@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-2.7.0.tgz#ecfa4fe824238a4466a3497df1a96d15cf43cabb" + integrity sha512-fQhhZICprZot2IqEyoiUYLTRdumULGRvw0o4dzl5jt0jfzVWdGqeYW27QTWAeXhoupEZJULmNoH3ueJwUWFLIA== + prettier-plugin-tailwindcss@^0.1.11: version "0.1.11" resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.11.tgz#6112da68d9d022b7f896d35c070464931c99c35f" @@ -4020,7 +3869,7 @@ pretty-bytes@^5.6.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -pretty-format@^27.0.0, pretty-format@^27.5.1: +pretty-format@^27.0.0, pretty-format@^27.0.2, pretty-format@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== @@ -4039,15 +3888,6 @@ pretty-format@^28.1.1: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" - integrity sha512-G9xUchgTEiNpormdYBl+Pha50gOUovT18IvAe7EYMZ1/f9W/WWMPRn+xI68yXNMUk3QXHDwo/1wV/4NejVNe1w== - dependencies: - condense-newlines "^0.2.1" - extend-shallow "^2.0.1" - js-beautify "^1.6.12" - prompts@^2.0.1: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" @@ -4056,21 +3896,11 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== - proxy-from-env@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== - psl@^1.1.28, psl@^1.1.33: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" @@ -4089,6 +3919,13 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +qs@^6.9.0: + version "6.10.5" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.5.tgz#974715920a80ff6a262264acd2c7e6c2a53282b4" + integrity sha512-O5RlPh0VFtR78y79rgcgKK4wbAI0C5zGVLztOIdpWX6ep368q5Hv6XRxDvXuZ9q3C6v+e3n8UfZZJw7IIG27eQ== + dependencies: + side-channel "^1.0.4" + qs@~6.5.2: version "6.5.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" @@ -4121,16 +3958,24 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + regexpp@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -register-service-worker@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/register-service-worker/-/register-service-worker-1.7.2.tgz#6516983e1ef790a98c4225af1216bc80941a4bd2" - integrity sha512-CiD3ZSanZqcMPRhtfct5K9f7i3OLCcBBWsJjLh1gW9RO/nS94sVzY59iS+fgYBOBqaBpf4EzfqUF3j9IG+xo8A== - request-progress@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" @@ -4192,6 +4037,13 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== +rimraf@^2.5.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -4240,6 +4092,16 @@ safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sander@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad" + integrity sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA== + dependencies: + es6-promise "^3.1.2" + graceful-fs "^4.1.3" + mkdirp "^0.5.1" + rimraf "^2.5.2" + saxes@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" @@ -4254,18 +4116,13 @@ semver@7.3.5: dependencies: lru-cache "^6.0.0" -semver@7.x, semver@^7.3.2, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7: +semver@7.x, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" -semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -4283,10 +4140,14 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -sigmund@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" @@ -4335,11 +4196,29 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -source-map-js@^1.0.1, source-map-js@^1.0.2: +sorcery@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7" + integrity sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g== + dependencies: + buffer-crc32 "^0.2.5" + minimist "^1.2.0" + sander "^0.5.0" + sourcemap-codec "^1.3.0" + +source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +source-map-resolve@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + source-map-support@0.5.13: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" @@ -4348,17 +4227,12 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@0.5.6: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= - source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -sourcemap-codec@^1.4.8: +sourcemap-codec@^1.3.0, sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== @@ -4366,7 +4240,7 @@ sourcemap-codec@^1.4.8: sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sshpk@^1.14.1: version "1.17.0" @@ -4421,11 +4295,6 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - strip-bom@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" @@ -4436,10 +4305,12 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" @@ -4480,11 +4351,43 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +svelte-hmr@^0.14.12: + version "0.14.12" + resolved "https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.14.12.tgz#a127aec02f1896500b10148b2d4d21ddde39973f" + integrity sha512-4QSW/VvXuqVcFZ+RhxiR8/newmwOCTlbYIezvkeN6302YFRE8cXy0naamHcjz8Y9Ce3ITTZtrHrIL0AGfyo61w== + +svelte-jester@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/svelte-jester/-/svelte-jester-2.3.2.tgz#9eb818da30807bbcc940b6130d15b2c34408d64f" + integrity sha512-JtxSz4FWAaCRBXbPsh4LcDs4Ua7zdXgLC0TZvT1R56hRV0dymmNP+abw67DTPF7sQPyNxWsOKd0Sl7Q8SnP8kg== + +svelte-preprocess@^4.10.7: + version "4.10.7" + resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.10.7.tgz#3626de472f51ffe20c9bc71eff5a3da66797c362" + integrity sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw== + dependencies: + "@types/pug" "^2.0.4" + "@types/sass" "^1.16.0" + detect-indent "^6.0.0" + magic-string "^0.25.7" + sorcery "^0.10.0" + strip-indent "^3.0.0" + +svelte@^3.48.0: + version "3.48.0" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.48.0.tgz#f98c866d45e155bad8e1e88f15f9c03cd28753d3" + integrity sha512-fN2YRm/bGumvjUpu6yI3BpvZnpIm9I6A7HR4oUNYd7ggYyIwSA/BX7DJ+UXXffLp6XNcUijyLvttbPVCYa/3xQ== + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +tabler-icons-svelte@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/tabler-icons-svelte/-/tabler-icons-svelte-1.8.0.tgz#c0b3305eeb75bc8044530622430e061ea3cb9153" + integrity sha512-j8VrSMsj8dwOTGNb4LldR0S+Dh+26D0tf5vJLPJ4v23V4xiL+SUIiyQyhzf7Pclx8Vd/x7WHsi9XsMVvteTNtg== + tailwindcss@^3.0.24: version "3.0.24" resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.24.tgz#22e31e801a44a78a1d9a81ecc52e13b69d85704d" @@ -4529,6 +4432,11 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +test-jest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/test-jest/-/test-jest-1.0.1.tgz#3f329be1a83d9037feb358b065ffc42ec9578e92" + integrity sha512-n3M1YTxgm/9X9OnlPSrFrCUkzWs7aSMjWVPNQxkx95KNBeZ8nXrDWsx9UvMQ8dcI9BFcOCABY2Inumh2TTmnvg== + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -4616,16 +4524,6 @@ ts-jest@^28.0.4: semver "7.x" yargs-parser "^20.x" -tsconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" - integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== - dependencies: - "@types/strip-bom" "^3.0.0" - "@types/strip-json-comments" "0.0.30" - strip-bom "^3.0.0" - strip-json-comments "^2.0.0" - tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -4777,49 +4675,6 @@ vite@^2.9.10: optionalDependencies: fsevents "~2.3.2" -vue-demi@*: - version "0.13.1" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.1.tgz#7604904c88be338418a10abbc94d5b8caa14cb8c" - integrity sha512-xmkJ56koG3ptpLnpgmIzk9/4nFf4CqduSJbUM0OdPoU87NwRuZ6x49OLhjSa/fC15fV+5CbEnrxU4oyE022svg== - -vue-eslint-parser@^9.0.1: - version "9.0.2" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.0.2.tgz#d2535516f3f55adb387939427fe741065eb7948a" - integrity sha512-uCPQwTGjOtAYrwnU+76pYxalhjsh7iFBsHwBqDHiOPTxtICDaraO4Szw54WFTNZTAEsgHHzqFOu1mmnBOBRzDA== - dependencies: - debug "^4.3.4" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.3.0" - espree "^9.3.1" - esquery "^1.4.0" - lodash "^4.17.21" - semver "^7.3.6" - -vue-router@^4.0.15: - version "4.0.15" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.15.tgz#b4a0661efe197f8c724e0f233308f8776e2c3667" - integrity sha512-xa+pIN9ZqORdIW1MkN2+d9Ui2pCM1b/UMgwYUCZOiFYHAvz/slKKBDha8DLrh5aCG/RibtrpyhKjKOZ85tYyWg== - dependencies: - "@vue/devtools-api" "^6.0.0" - -vue-tsc@^0.37.3: - version "0.37.3" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-0.37.3.tgz#1a7858fd810c498876bb6e315c40cae9c1aca6bc" - integrity sha512-MB8aU+9z722Q1tD/pg8ZKnkOSZI1yAlPYCA7R42B86XCUJ/w7fQtlI8Ojcgznz7IH3SxIkOVIw+S6TfddOa9gg== - dependencies: - "@volar/vue-typescript" "0.37.3" - -vue@^3.2.37: - version "3.2.37" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.37.tgz#da220ccb618d78579d25b06c7c21498ca4e5452e" - integrity sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ== - dependencies: - "@vue/compiler-dom" "3.2.37" - "@vue/compiler-sfc" "3.2.37" - "@vue/runtime-dom" "3.2.37" - "@vue/server-renderer" "3.2.37" - "@vue/shared" "3.2.37" - w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -4942,11 +4797,6 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"