From b3181d8fd652bd11cc2480488bd1d21fbb9c4f24 Mon Sep 17 00:00:00 2001 From: Alan Lu Date: Wed, 27 Mar 2024 04:18:41 +0800 Subject: [PATCH 1/2] feat: initial commit --- .changeset/config.json | 4 +- .changeset/metal-beers-grow.md | 18 + .commitlintrc.cjs | 71 +- .cspell/other.txt | 3 - .cspell/repo.txt | 5 - .editorconfig | 9 +- .eslintrc.cjs | 4 + .gitattributes | 1 + .github/workflows/release.yml | 8 +- .gitignore | 5 +- .lintstagedrc.cjs | 9 +- .npmrc | 8 + .prettierignore | 4 + .stylelintignore | 30 + .stylelintrc.cjs | 1 + {.cspell => .vscode/.cspell}/name.txt | 7 +- .vscode/.cspell/other.txt | 21 + .vscode/.cspell/repo.txt | 30 + cspell.json => .vscode/cspell.json | 2 +- .vscode/settings.json | 29 +- LICENSE | 2 +- README.md | 55 +- apps/nuxt-base/.env.example | 5 + apps/nuxt-base/.eslintrc.cjs | 4 + apps/nuxt-base/README.md | 19 + apps/nuxt-base/app.vue | 19 + apps/nuxt-base/components/Image.vue | 102 + .../components/Loading/LoadingBase.vue | 3 + apps/nuxt-base/components/Modal/ModalBase.vue | 164 + apps/nuxt-base/components/ProcessedHtml.vue | 84 + apps/nuxt-base/components/Quantity.vue | 118 + apps/nuxt-base/components/Switch.vue | 39 + apps/nuxt-base/components/Tabs.vue | 137 + apps/nuxt-base/components/global/LineIcon.vue | 17 + apps/nuxt-base/components/global/MailIcon.vue | 21 + apps/nuxt-base/composables/fetch.ts | 15 + apps/nuxt-base/composables/useFormKitRefs.ts | 25 + apps/nuxt-base/composables/useHttp.ts | 57 + .../config/formkit/formkit.config.ts | 71 + .../config/formkit/inputs/OneTimePassword.vue | 61 + apps/nuxt-base/config/formkit/inputs/index.ts | 68 + .../config/formkit/plugins/babushkaPlugin.ts | 31 + .../nuxt-base/config/formkit/plugins/index.ts | 1 + apps/nuxt-base/config/formkit/rules.ts | 56 + apps/nuxt-base/config/modules/_appConfig.ts | 5 + apps/nuxt-base/config/modules/_nuxtConfig.ts | 25 + apps/nuxt-base/config/modules/colorMode.ts | 7 + apps/nuxt-base/config/modules/content.ts | 7 + apps/nuxt-base/config/modules/elementPlus.ts | 7 + apps/nuxt-base/config/modules/fontaine.ts | 7 + apps/nuxt-base/config/modules/formkit.ts | 12 + apps/nuxt-base/config/modules/googleFonts.ts | 12 + apps/nuxt-base/config/modules/image.ts | 51 + apps/nuxt-base/config/modules/nuxtIcon.ts | 14 + apps/nuxt-base/config/modules/pinia.ts | 5 + .../config/modules/piniaPersistedstate.ts | 10 + apps/nuxt-base/config/modules/vueuse.ts | 7 + apps/nuxt-base/config/zod/locales/zh-TW.json | 112 + apps/nuxt-base/master.css.mjs | 6 + apps/nuxt-base/nuxt.config.ts | 162 + apps/nuxt-base/package.json | 119 + apps/nuxt-base/pages/index.vue | 5 + apps/nuxt-base/public/NotFound.png | Bin 0 -> 5595 bytes apps/nuxt-base/public/NotFound.svg | 19 + apps/nuxt-base/public/favicon.ico | Bin 0 -> 15406 bytes apps/nuxt-base/server/middleware/log.ts | 3 + apps/nuxt-base/server/plugins/storage.ts | 17 + .../server/tsconfig.json | 0 apps/nuxt-base/tsconfig.json | 7 + apps/nuxt-demo/.env.example | 4 + apps/nuxt-demo/.eslintrc.cjs | 4 + apps/nuxt-demo/app.config.ts | 5 + apps/nuxt-demo/app.vue | 81 + .../nuxt-demo/composables/auto-import-mock.ts | 15 + apps/nuxt-demo/content/README.md | 75 + apps/nuxt-demo/content/docs/2023/07/hello.md | 1 + apps/nuxt-demo/content/docs/hello-world.mdx | 8 + apps/nuxt-demo/ecosystem.config.js | 26 + apps/nuxt-demo/i18n.config.ts | 13 + apps/nuxt-demo/k6.mjs | 16 + apps/nuxt-demo/layouts/default.vue | 37 + apps/nuxt-demo/locales/en.json | 6 + apps/nuxt-demo/locales/zh.json | 6 + apps/nuxt-demo/master.css.mjs | 16 + apps/nuxt-demo/nginx.conf | 103 + apps/nuxt-demo/nuxt.config.ts | 87 + apps/nuxt-demo/package.json | 61 + apps/nuxt-demo/pages/docs/[...slug].vue | 6 + apps/nuxt-demo/pages/formkit.vue | 14 + apps/nuxt-demo/pages/formkit/character.vue | 74 + apps/nuxt-demo/pages/formkit/login.vue | 90 + apps/nuxt-demo/pages/index.vue | 12 + apps/nuxt-demo/pages/splide/index.vue | 41 + apps/nuxt-demo/pages/users-[group].vue | 16 + .../pages/users-[group]/reload-[id].vue | 10 + .../pages/users-[group]/static-[id].vue | 13 + apps/nuxt-demo/plugins/01.myPlugin.ts | 7 + apps/nuxt-demo/plugins/directive.ts | 11 + apps/nuxt-demo/plugins/index.d.ts | 13 + apps/nuxt-demo/server/api/[...].ts | 9 + apps/nuxt-demo/server/api/hello/[name].ts | 4 + apps/nuxt-demo/server/api/hello2.ts | 7 + apps/nuxt-demo/server/api/parseCookies.ts | 4 + apps/nuxt-demo/server/api/query.get.ts | 4 + apps/nuxt-demo/server/api/runtimeConfig.ts | 4 + apps/nuxt-demo/server/api/submit.post.ts | 4 + apps/nuxt-demo/server/api/test.get.ts | 4 + apps/nuxt-demo/server/api/test.post.ts | 5 + apps/nuxt-demo/server/api/validation/[id].ts | 13 + apps/nuxt-demo/server/tsconfig.json | 3 + apps/nuxt-demo/stores/counter.ts | 18 + apps/nuxt-demo/tests/setup/mocks.ts | 16 + apps/nuxt-demo/tests/unit/index.spec.ts | 5 + apps/nuxt-demo/tsconfig.json | 7 + apps/nuxt-demo/vitest.config.mjs | 23 + apps/nuxt/nuxt-demo/README.md | 75 - apps/nuxt/nuxt-demo/app.vue | 5 - apps/nuxt/nuxt-demo/nuxt.config.ts | 4 - apps/nuxt/nuxt-demo/public/favicon.ico | Bin 4286 -> 0 bytes apps/nuxt/nuxt-demo/tsconfig.json | 4 - eslint.config.cjs | 1 - master.css.mjs | 6 + package.json | 63 +- packages/changeset/.eslintrc.cjs | 4 + packages/changeset/README.md | 25 + packages/changeset/bin/run.cjs | 5 + packages/changeset/package.json | 52 + packages/changeset/src/index.ts | 244 + packages/changeset/tsconfig.json | 6 + .../linters/commitlint-config/.eslintrc.cjs | 4 + packages/linters/commitlint-config/README.md | 23 + .../linters/commitlint-config/package.json | 40 + .../commitlint-config/src/helpers/index.cjs | 56 + .../linters/commitlint-config/src/index.cjs | 81 + packages/linters/eslint-config/CHANGELOG.md | 7 - .../linters/eslint-config/base/.eslintrc.cjs | 4 + packages/linters/eslint-config/base/README.md | 20 + .../linters/eslint-config/base/package.json | 44 + .../linters/eslint-config/base/src/index.cjs | 39 + packages/linters/eslint-config/index.cjs | 53 - packages/linters/eslint-config/package.json | 28 - .../linters/lint-staged-config/.eslintrc.cjs | 4 + packages/linters/lint-staged-config/README.md | 17 + .../linters/lint-staged-config/package.json | 43 + .../linters/lint-staged-config/src/index.cjs | 7 + .../linters/markdownlint-config/README.md | 17 + .../linters/markdownlint-config/package.json | 23 +- .../markdownlint-config/{ => src}/index.cjs | 0 packages/linters/prettier-config/README.md | 17 + packages/linters/prettier-config/package.json | 21 +- .../prettier-config/{ => src}/index.cjs | 8 +- .../linters/stylelint-config/.eslintrc.cjs | 4 + packages/linters/stylelint-config/README.md | 17 + .../linters/stylelint-config/package.json | 51 + .../linters/stylelint-config/src/index.cjs | 32 + packages/linters/tsconfig/.eslintrc.cjs | 4 + packages/linters/tsconfig/README.md | 19 + packages/linters/tsconfig/base.json | 29 + .../linters/tsconfig}/package.json | 32 +- packages/mastercss/config/.eslintrc.cjs | 4 + packages/mastercss/config/README.md | 22 + packages/mastercss/config/package.json | 51 + packages/mastercss/config/scripts/build.mjs | 40 + packages/mastercss/config/scripts/runner.mjs | 3 + .../mastercss/config/styles/base/_index.mjs | 14 + .../config/styles/base/animations.mjs | 13 + .../mastercss/config/styles/base/colors.mjs | 27 + .../mastercss/config/styles/base/queries.mjs | 23 + .../config/styles/base/selectors.mjs | 6 + .../config/styles/base/semantics.mjs | 31 + .../config/styles/base/variables.mjs | 52 + .../config/styles/components/_index.mjs | 37 + .../config/styles/components/accordion.mjs | 36 + .../config/styles/components/avatar.mjs | 14 + .../config/styles/components/btn.mjs | 105 + .../config/styles/components/card.mjs | 16 + .../config/styles/components/checkbox.mjs | 35 + .../config/styles/components/dialog.mjs | 17 + .../config/styles/components/input.mjs | 63 + .../config/styles/components/link.mjs | 18 + .../config/styles/components/list.mjs | 31 + .../config/styles/components/media.mjs | 30 + .../config/styles/components/message.mjs | 23 + .../config/styles/components/modal.mjs | 52 + .../config/styles/components/ratio.mjs | 43 + .../config/styles/components/skeleton.mjs | 17 + .../config/styles/components/switch-input.mjs | 4 + .../config/styles/components/table.mjs | 34 + .../config/styles/components/title.mjs | 30 + .../config/styles/layouts/_index.mjs | 6 + .../config/styles/layouts/normal.mjs | 28 + .../mastercss/config/styles/master.css.mjs | 22 + .../config/styles/vendors/floating-vue.mjs | 18 + .../styles/vendors/formkit-floating-label.mjs | 22 + .../config/styles/vendors/formkit.mjs | 53 + packages/mastercss/helpers/README.md | 29 + packages/mastercss/helpers/build.config.ts | 14 + packages/mastercss/helpers/coverage/base.css | 224 + .../helpers/coverage/block-navigation.js | 87 + .../mastercss/helpers/coverage/clover.xml | 180 + .../helpers/coverage/coverage-final.json | 2 + .../mastercss/helpers/coverage/favicon.png | Bin 0 -> 445 bytes .../mastercss/helpers/coverage/index.html | 116 + .../mastercss/helpers/coverage/index.ts.html | 598 + .../mastercss/helpers/coverage/prettify.css | 1 + .../mastercss/helpers/coverage/prettify.js | 2 + .../helpers/coverage/sort-arrow-sprite.png | Bin 0 -> 138 bytes packages/mastercss/helpers/coverage/sorter.js | 196 + packages/mastercss/helpers/package.json | 38 + packages/mastercss/helpers/src/index.test.ts | 34 + packages/mastercss/helpers/src/index.ts | 171 + packages/mastercss/helpers/vitest.config.ts | 10 + packages/scss/README.md | 80 + packages/scss/package.json | 35 + packages/scss/src/abstracts/_animations.scss | 16 + packages/scss/src/abstracts/_classes.scss | 7 + packages/scss/src/abstracts/_colors.scss | 18 + packages/scss/src/abstracts/_index.scss | 6 + packages/scss/src/abstracts/_mixins.scss | 11 + .../scss/src/abstracts/_placeholders.scss | 9 + packages/scss/src/abstracts/_variables.scss | 5 + ...precise-control-responsive-typography.scss | 37 + packages/scss/src/base/_base.scss | 7 + packages/scss/src/base/_normalize.scss | 0 packages/scss/src/base/_reset.scss | 15 + packages/scss/src/base/_typography.scss | 13 + packages/scss/src/components/_buttons.scss | 1 + packages/scss/src/components/_dropdown.scss | 1 + packages/scss/src/components/_loaders.scss | 1 + packages/scss/src/components/_modals.scss | 1 + packages/scss/src/layout/_footer.scss | 1 + packages/scss/src/layout/_forms.scss | 1 + packages/scss/src/layout/_grid.scss | 1 + packages/scss/src/layout/_header.scss | 1 + packages/scss/src/layout/_menu.scss | 1 + packages/scss/src/layout/_tables.scss | 1 + packages/scss/src/main.scss | 37 + packages/scss/src/pages/_contact.scss | 1 + packages/scss/src/pages/_home.scss | 1 + packages/scss/src/pages/_user-profile.scss | 1 + packages/scss/src/themes/_admin.scss | 1 + packages/scss/src/themes/_authenticated.scss | 1 + .../vendors-extensions/_example-library.scss | 1 + .../scss/src/vendors-extensions/_formkit.scss | 10 + .../scss/src/vendors/_example-library.scss | 1 + packages/types/.eslintrc.cjs | 4 + packages/types/README.md | 21 + packages/types/globals.d.ts | 45 + packages/types/package.json | 38 + packages/utils/.eslintrc.cjs | 4 + packages/utils/README.md | 38 + packages/utils/build.config.ts | 21 + packages/utils/coverage/base.css | 224 + packages/utils/coverage/block-navigation.js | 87 + packages/utils/coverage/clover.xml | 349 + packages/utils/coverage/coverage-final.json | 9 + packages/utils/coverage/favicon.png | Bin 0 -> 445 bytes packages/utils/coverage/index.html | 176 + packages/utils/coverage/prettify.css | 1 + packages/utils/coverage/prettify.js | 2 + packages/utils/coverage/sort-arrow-sprite.png | Bin 0 -> 138 bytes packages/utils/coverage/sorter.js | 196 + packages/utils/coverage/src/index.html | 116 + packages/utils/coverage/src/index.ts.html | 97 + .../utils/coverage/src/obj/callback.ts.html | 121 + .../utils/coverage/src/obj/error-msg.ts.html | 163 + packages/utils/coverage/src/obj/index.html | 161 + packages/utils/coverage/src/obj/index.ts.html | 232 + .../utils/coverage/src/obj/options.ts.html | 214 + packages/utils/coverage/src/string/index.html | 116 + .../utils/coverage/src/string/index.ts.html | 193 + packages/utils/coverage/src/time/index.html | 116 + .../utils/coverage/src/time/index.ts.html | 226 + .../utils/coverage/src/validator/index.html | 116 + .../coverage/src/validator/index.ts.html | 346 + packages/utils/package.json | 59 + packages/utils/src/index.ts | 4 + packages/utils/src/obj/callback.ts | 12 + packages/utils/src/obj/error-msg.ts | 26 + packages/utils/src/obj/index.ts | 49 + packages/utils/src/obj/options.ts | 43 + packages/utils/src/string/index.ts | 36 + packages/utils/src/time/index.test.ts | 116 + packages/utils/src/time/index.ts | 47 + packages/utils/src/validator/index.test.ts | 44 + packages/utils/src/validator/index.ts | 87 + packages/utils/tsconfig.json | 6 + packages/utils/vitest.config.ts | 10 + pnpm-lock.yaml | 14272 ++++++++++++---- turbo.json | 21 +- 290 files changed, 21936 insertions(+), 3694 deletions(-) create mode 100644 .changeset/metal-beers-grow.md delete mode 100644 .cspell/other.txt delete mode 100644 .cspell/repo.txt create mode 100644 .eslintrc.cjs create mode 100644 .gitattributes create mode 100644 .stylelintignore create mode 100644 .stylelintrc.cjs rename {.cspell => .vscode/.cspell}/name.txt (57%) create mode 100644 .vscode/.cspell/other.txt create mode 100644 .vscode/.cspell/repo.txt rename cspell.json => .vscode/cspell.json (76%) create mode 100644 apps/nuxt-base/.env.example create mode 100644 apps/nuxt-base/.eslintrc.cjs create mode 100644 apps/nuxt-base/README.md create mode 100644 apps/nuxt-base/app.vue create mode 100644 apps/nuxt-base/components/Image.vue create mode 100644 apps/nuxt-base/components/Loading/LoadingBase.vue create mode 100644 apps/nuxt-base/components/Modal/ModalBase.vue create mode 100644 apps/nuxt-base/components/ProcessedHtml.vue create mode 100644 apps/nuxt-base/components/Quantity.vue create mode 100644 apps/nuxt-base/components/Switch.vue create mode 100644 apps/nuxt-base/components/Tabs.vue create mode 100644 apps/nuxt-base/components/global/LineIcon.vue create mode 100644 apps/nuxt-base/components/global/MailIcon.vue create mode 100644 apps/nuxt-base/composables/fetch.ts create mode 100644 apps/nuxt-base/composables/useFormKitRefs.ts create mode 100644 apps/nuxt-base/composables/useHttp.ts create mode 100644 apps/nuxt-base/config/formkit/formkit.config.ts create mode 100644 apps/nuxt-base/config/formkit/inputs/OneTimePassword.vue create mode 100644 apps/nuxt-base/config/formkit/inputs/index.ts create mode 100644 apps/nuxt-base/config/formkit/plugins/babushkaPlugin.ts create mode 100644 apps/nuxt-base/config/formkit/plugins/index.ts create mode 100644 apps/nuxt-base/config/formkit/rules.ts create mode 100644 apps/nuxt-base/config/modules/_appConfig.ts create mode 100644 apps/nuxt-base/config/modules/_nuxtConfig.ts create mode 100644 apps/nuxt-base/config/modules/colorMode.ts create mode 100644 apps/nuxt-base/config/modules/content.ts create mode 100644 apps/nuxt-base/config/modules/elementPlus.ts create mode 100644 apps/nuxt-base/config/modules/fontaine.ts create mode 100644 apps/nuxt-base/config/modules/formkit.ts create mode 100644 apps/nuxt-base/config/modules/googleFonts.ts create mode 100644 apps/nuxt-base/config/modules/image.ts create mode 100644 apps/nuxt-base/config/modules/nuxtIcon.ts create mode 100644 apps/nuxt-base/config/modules/pinia.ts create mode 100644 apps/nuxt-base/config/modules/piniaPersistedstate.ts create mode 100644 apps/nuxt-base/config/modules/vueuse.ts create mode 100644 apps/nuxt-base/config/zod/locales/zh-TW.json create mode 100644 apps/nuxt-base/master.css.mjs create mode 100644 apps/nuxt-base/nuxt.config.ts create mode 100644 apps/nuxt-base/package.json create mode 100644 apps/nuxt-base/pages/index.vue create mode 100644 apps/nuxt-base/public/NotFound.png create mode 100644 apps/nuxt-base/public/NotFound.svg create mode 100644 apps/nuxt-base/public/favicon.ico create mode 100644 apps/nuxt-base/server/middleware/log.ts create mode 100644 apps/nuxt-base/server/plugins/storage.ts rename apps/{nuxt/nuxt-demo => nuxt-base}/server/tsconfig.json (100%) create mode 100644 apps/nuxt-base/tsconfig.json create mode 100644 apps/nuxt-demo/.env.example create mode 100644 apps/nuxt-demo/.eslintrc.cjs create mode 100644 apps/nuxt-demo/app.config.ts create mode 100644 apps/nuxt-demo/app.vue create mode 100644 apps/nuxt-demo/composables/auto-import-mock.ts create mode 100644 apps/nuxt-demo/content/README.md create mode 100644 apps/nuxt-demo/content/docs/2023/07/hello.md create mode 100644 apps/nuxt-demo/content/docs/hello-world.mdx create mode 100644 apps/nuxt-demo/ecosystem.config.js create mode 100644 apps/nuxt-demo/i18n.config.ts create mode 100644 apps/nuxt-demo/k6.mjs create mode 100644 apps/nuxt-demo/layouts/default.vue create mode 100644 apps/nuxt-demo/locales/en.json create mode 100644 apps/nuxt-demo/locales/zh.json create mode 100644 apps/nuxt-demo/master.css.mjs create mode 100644 apps/nuxt-demo/nginx.conf create mode 100644 apps/nuxt-demo/nuxt.config.ts create mode 100644 apps/nuxt-demo/package.json create mode 100644 apps/nuxt-demo/pages/docs/[...slug].vue create mode 100644 apps/nuxt-demo/pages/formkit.vue create mode 100644 apps/nuxt-demo/pages/formkit/character.vue create mode 100644 apps/nuxt-demo/pages/formkit/login.vue create mode 100644 apps/nuxt-demo/pages/index.vue create mode 100644 apps/nuxt-demo/pages/splide/index.vue create mode 100644 apps/nuxt-demo/pages/users-[group].vue create mode 100644 apps/nuxt-demo/pages/users-[group]/reload-[id].vue create mode 100644 apps/nuxt-demo/pages/users-[group]/static-[id].vue create mode 100644 apps/nuxt-demo/plugins/01.myPlugin.ts create mode 100644 apps/nuxt-demo/plugins/directive.ts create mode 100644 apps/nuxt-demo/plugins/index.d.ts create mode 100644 apps/nuxt-demo/server/api/[...].ts create mode 100644 apps/nuxt-demo/server/api/hello/[name].ts create mode 100644 apps/nuxt-demo/server/api/hello2.ts create mode 100644 apps/nuxt-demo/server/api/parseCookies.ts create mode 100644 apps/nuxt-demo/server/api/query.get.ts create mode 100644 apps/nuxt-demo/server/api/runtimeConfig.ts create mode 100644 apps/nuxt-demo/server/api/submit.post.ts create mode 100644 apps/nuxt-demo/server/api/test.get.ts create mode 100644 apps/nuxt-demo/server/api/test.post.ts create mode 100644 apps/nuxt-demo/server/api/validation/[id].ts create mode 100644 apps/nuxt-demo/server/tsconfig.json create mode 100644 apps/nuxt-demo/stores/counter.ts create mode 100644 apps/nuxt-demo/tests/setup/mocks.ts create mode 100644 apps/nuxt-demo/tests/unit/index.spec.ts create mode 100644 apps/nuxt-demo/tsconfig.json create mode 100644 apps/nuxt-demo/vitest.config.mjs delete mode 100644 apps/nuxt/nuxt-demo/README.md delete mode 100644 apps/nuxt/nuxt-demo/app.vue delete mode 100644 apps/nuxt/nuxt-demo/nuxt.config.ts delete mode 100644 apps/nuxt/nuxt-demo/public/favicon.ico delete mode 100644 apps/nuxt/nuxt-demo/tsconfig.json delete mode 100644 eslint.config.cjs create mode 100644 master.css.mjs create mode 100644 packages/changeset/.eslintrc.cjs create mode 100644 packages/changeset/README.md create mode 100755 packages/changeset/bin/run.cjs create mode 100644 packages/changeset/package.json create mode 100644 packages/changeset/src/index.ts create mode 100644 packages/changeset/tsconfig.json create mode 100644 packages/linters/commitlint-config/.eslintrc.cjs create mode 100644 packages/linters/commitlint-config/README.md create mode 100644 packages/linters/commitlint-config/package.json create mode 100644 packages/linters/commitlint-config/src/helpers/index.cjs create mode 100644 packages/linters/commitlint-config/src/index.cjs delete mode 100644 packages/linters/eslint-config/CHANGELOG.md create mode 100644 packages/linters/eslint-config/base/.eslintrc.cjs create mode 100644 packages/linters/eslint-config/base/README.md create mode 100644 packages/linters/eslint-config/base/package.json create mode 100644 packages/linters/eslint-config/base/src/index.cjs delete mode 100644 packages/linters/eslint-config/index.cjs delete mode 100644 packages/linters/eslint-config/package.json create mode 100644 packages/linters/lint-staged-config/.eslintrc.cjs create mode 100644 packages/linters/lint-staged-config/README.md create mode 100644 packages/linters/lint-staged-config/package.json create mode 100644 packages/linters/lint-staged-config/src/index.cjs create mode 100644 packages/linters/markdownlint-config/README.md rename packages/linters/markdownlint-config/{ => src}/index.cjs (100%) create mode 100644 packages/linters/prettier-config/README.md rename packages/linters/prettier-config/{ => src}/index.cjs (96%) create mode 100644 packages/linters/stylelint-config/.eslintrc.cjs create mode 100644 packages/linters/stylelint-config/README.md create mode 100644 packages/linters/stylelint-config/package.json create mode 100644 packages/linters/stylelint-config/src/index.cjs create mode 100644 packages/linters/tsconfig/.eslintrc.cjs create mode 100644 packages/linters/tsconfig/README.md create mode 100644 packages/linters/tsconfig/base.json rename {apps/nuxt/nuxt-demo => packages/linters/tsconfig}/package.json (50%) create mode 100644 packages/mastercss/config/.eslintrc.cjs create mode 100644 packages/mastercss/config/README.md create mode 100644 packages/mastercss/config/package.json create mode 100644 packages/mastercss/config/scripts/build.mjs create mode 100644 packages/mastercss/config/scripts/runner.mjs create mode 100644 packages/mastercss/config/styles/base/_index.mjs create mode 100644 packages/mastercss/config/styles/base/animations.mjs create mode 100644 packages/mastercss/config/styles/base/colors.mjs create mode 100644 packages/mastercss/config/styles/base/queries.mjs create mode 100644 packages/mastercss/config/styles/base/selectors.mjs create mode 100644 packages/mastercss/config/styles/base/semantics.mjs create mode 100644 packages/mastercss/config/styles/base/variables.mjs create mode 100644 packages/mastercss/config/styles/components/_index.mjs create mode 100644 packages/mastercss/config/styles/components/accordion.mjs create mode 100644 packages/mastercss/config/styles/components/avatar.mjs create mode 100644 packages/mastercss/config/styles/components/btn.mjs create mode 100644 packages/mastercss/config/styles/components/card.mjs create mode 100644 packages/mastercss/config/styles/components/checkbox.mjs create mode 100644 packages/mastercss/config/styles/components/dialog.mjs create mode 100644 packages/mastercss/config/styles/components/input.mjs create mode 100644 packages/mastercss/config/styles/components/link.mjs create mode 100644 packages/mastercss/config/styles/components/list.mjs create mode 100644 packages/mastercss/config/styles/components/media.mjs create mode 100644 packages/mastercss/config/styles/components/message.mjs create mode 100644 packages/mastercss/config/styles/components/modal.mjs create mode 100644 packages/mastercss/config/styles/components/ratio.mjs create mode 100644 packages/mastercss/config/styles/components/skeleton.mjs create mode 100644 packages/mastercss/config/styles/components/switch-input.mjs create mode 100644 packages/mastercss/config/styles/components/table.mjs create mode 100644 packages/mastercss/config/styles/components/title.mjs create mode 100644 packages/mastercss/config/styles/layouts/_index.mjs create mode 100644 packages/mastercss/config/styles/layouts/normal.mjs create mode 100644 packages/mastercss/config/styles/master.css.mjs create mode 100644 packages/mastercss/config/styles/vendors/floating-vue.mjs create mode 100644 packages/mastercss/config/styles/vendors/formkit-floating-label.mjs create mode 100644 packages/mastercss/config/styles/vendors/formkit.mjs create mode 100644 packages/mastercss/helpers/README.md create mode 100644 packages/mastercss/helpers/build.config.ts create mode 100644 packages/mastercss/helpers/coverage/base.css create mode 100644 packages/mastercss/helpers/coverage/block-navigation.js create mode 100644 packages/mastercss/helpers/coverage/clover.xml create mode 100644 packages/mastercss/helpers/coverage/coverage-final.json create mode 100644 packages/mastercss/helpers/coverage/favicon.png create mode 100644 packages/mastercss/helpers/coverage/index.html create mode 100644 packages/mastercss/helpers/coverage/index.ts.html create mode 100644 packages/mastercss/helpers/coverage/prettify.css create mode 100644 packages/mastercss/helpers/coverage/prettify.js create mode 100644 packages/mastercss/helpers/coverage/sort-arrow-sprite.png create mode 100644 packages/mastercss/helpers/coverage/sorter.js create mode 100644 packages/mastercss/helpers/package.json create mode 100644 packages/mastercss/helpers/src/index.test.ts create mode 100644 packages/mastercss/helpers/src/index.ts create mode 100644 packages/mastercss/helpers/vitest.config.ts create mode 100644 packages/scss/README.md create mode 100644 packages/scss/package.json create mode 100644 packages/scss/src/abstracts/_animations.scss create mode 100644 packages/scss/src/abstracts/_classes.scss create mode 100644 packages/scss/src/abstracts/_colors.scss create mode 100644 packages/scss/src/abstracts/_index.scss create mode 100644 packages/scss/src/abstracts/_mixins.scss create mode 100644 packages/scss/src/abstracts/_placeholders.scss create mode 100644 packages/scss/src/abstracts/_variables.scss create mode 100644 packages/scss/src/abstracts/mixins/_precise-control-responsive-typography.scss create mode 100644 packages/scss/src/base/_base.scss create mode 100644 packages/scss/src/base/_normalize.scss create mode 100644 packages/scss/src/base/_reset.scss create mode 100644 packages/scss/src/base/_typography.scss create mode 100644 packages/scss/src/components/_buttons.scss create mode 100644 packages/scss/src/components/_dropdown.scss create mode 100644 packages/scss/src/components/_loaders.scss create mode 100644 packages/scss/src/components/_modals.scss create mode 100644 packages/scss/src/layout/_footer.scss create mode 100644 packages/scss/src/layout/_forms.scss create mode 100644 packages/scss/src/layout/_grid.scss create mode 100644 packages/scss/src/layout/_header.scss create mode 100644 packages/scss/src/layout/_menu.scss create mode 100644 packages/scss/src/layout/_tables.scss create mode 100644 packages/scss/src/main.scss create mode 100644 packages/scss/src/pages/_contact.scss create mode 100644 packages/scss/src/pages/_home.scss create mode 100644 packages/scss/src/pages/_user-profile.scss create mode 100644 packages/scss/src/themes/_admin.scss create mode 100644 packages/scss/src/themes/_authenticated.scss create mode 100644 packages/scss/src/vendors-extensions/_example-library.scss create mode 100644 packages/scss/src/vendors-extensions/_formkit.scss create mode 100644 packages/scss/src/vendors/_example-library.scss create mode 100644 packages/types/.eslintrc.cjs create mode 100644 packages/types/README.md create mode 100644 packages/types/globals.d.ts create mode 100644 packages/types/package.json create mode 100644 packages/utils/.eslintrc.cjs create mode 100644 packages/utils/README.md create mode 100644 packages/utils/build.config.ts create mode 100644 packages/utils/coverage/base.css create mode 100644 packages/utils/coverage/block-navigation.js create mode 100644 packages/utils/coverage/clover.xml create mode 100644 packages/utils/coverage/coverage-final.json create mode 100644 packages/utils/coverage/favicon.png create mode 100644 packages/utils/coverage/index.html create mode 100644 packages/utils/coverage/prettify.css create mode 100644 packages/utils/coverage/prettify.js create mode 100644 packages/utils/coverage/sort-arrow-sprite.png create mode 100644 packages/utils/coverage/sorter.js create mode 100644 packages/utils/coverage/src/index.html create mode 100644 packages/utils/coverage/src/index.ts.html create mode 100644 packages/utils/coverage/src/obj/callback.ts.html create mode 100644 packages/utils/coverage/src/obj/error-msg.ts.html create mode 100644 packages/utils/coverage/src/obj/index.html create mode 100644 packages/utils/coverage/src/obj/index.ts.html create mode 100644 packages/utils/coverage/src/obj/options.ts.html create mode 100644 packages/utils/coverage/src/string/index.html create mode 100644 packages/utils/coverage/src/string/index.ts.html create mode 100644 packages/utils/coverage/src/time/index.html create mode 100644 packages/utils/coverage/src/time/index.ts.html create mode 100644 packages/utils/coverage/src/validator/index.html create mode 100644 packages/utils/coverage/src/validator/index.ts.html create mode 100644 packages/utils/package.json create mode 100644 packages/utils/src/index.ts create mode 100644 packages/utils/src/obj/callback.ts create mode 100644 packages/utils/src/obj/error-msg.ts create mode 100644 packages/utils/src/obj/index.ts create mode 100644 packages/utils/src/obj/options.ts create mode 100644 packages/utils/src/string/index.ts create mode 100644 packages/utils/src/time/index.test.ts create mode 100644 packages/utils/src/time/index.ts create mode 100644 packages/utils/src/validator/index.test.ts create mode 100644 packages/utils/src/validator/index.ts create mode 100644 packages/utils/tsconfig.json create mode 100644 packages/utils/vitest.config.ts diff --git a/.changeset/config.json b/.changeset/config.json index c210da6..530f0bb 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -7,8 +7,8 @@ } ], "commit": false, - "fixed": [["@alanlu-dev/*-config"]], - "linked": [], + "fixed": [], + "linked": [["@alanlu-dev/mastercss-*"]], "access": "public", "baseBranch": "main", "updateInternalDependencies": "patch", diff --git a/.changeset/metal-beers-grow.md b/.changeset/metal-beers-grow.md new file mode 100644 index 0000000..a4f5bda --- /dev/null +++ b/.changeset/metal-beers-grow.md @@ -0,0 +1,18 @@ +--- +"@alanlu-dev/markdownlint-config": major +"@alanlu-dev/eslint-config-base": major +"@alanlu-dev/lint-staged-config": major +"@alanlu-dev/commitlint-config": major +"@alanlu-dev/stylelint-config": major +"@alanlu-dev/prettier-config": major +"@alanlu-dev/mastercss-helpers": major +"@alanlu-dev/tsconfig": major +"@alanlu-dev/mastercss-config": major +"@alanlu-dev/changeset": major +"@alanlu-dev/nuxt-base": major +"@alanlu-dev/types": major +"@alanlu-dev/utils": major +"@alanlu-dev/scss": major +--- + +feat: initial commit diff --git a/.commitlintrc.cjs b/.commitlintrc.cjs index 0913b4b..2f5c93c 100644 --- a/.commitlintrc.cjs +++ b/.commitlintrc.cjs @@ -1,70 +1 @@ -/** @type {import('czg').UserConfig} */ -module.exports = { - extends: ['@commitlint/config-conventional'], - rules: { - // @see: https://commitlint.js.org/#/reference-rules - // 'scope-enum': [2, 'always', scopes], - }, - prompt: { - alias: { fd: 'docs: fix typos' }, - messages: { - type: `Select the type of change that you're committing:`, - scope: 'Denote the SCOPE of this change (optional):', - customScope: 'Denote the SCOPE of this change:', - subject: 'Write a SHORT, IMPERATIVE tense description of the change:\n', - body: 'Provide a LONGER description of the change (optional). Use "|" to break new line:\n', - breaking: 'List any BREAKING CHANGES (optional). Use "|" to break new line:\n', - footerPrefixesSelect: 'Select the ISSUES type of changeList by this change (optional):', - customFooterPrefix: 'Input ISSUES prefix:', - footer: 'List any ISSUES by this change. E.g.: #31, #34:\n', - generatingByAI: 'Generating your AI commit subject...', - generatedSelectByAI: 'Select suitable subject by AI generated:', - confirmCommit: 'Are you sure you want to proceed with the commit above?', - }, - types: [ - { value: 'feat', name: 'feat: AASD new feature', emoji: ':sparkles:' }, - { value: 'fix', name: 'fix: A bug fix', emoji: ':bug:' }, - { value: 'docs', name: 'docs: Documentation only changes', emoji: ':memo:' }, - { value: 'style', name: 'style: Changes that do not affect the meaning of the code', emoji: ':lipstick:' }, - { value: 'refactor', name: 'refactor: A code change that neither fixes a bug nor adds a feature', emoji: ':recycle:' }, - { value: 'perf', name: 'perf: A code change that improves performance', emoji: ':zap:' }, - { value: 'test', name: 'test: Adding missing tests or correcting existing tests', emoji: ':white_check_mark:' }, - { value: 'build', name: 'build: Changes that affect the build system or external dependencies', emoji: ':package:' }, - { value: 'ci', name: 'ci: Changes to our CI configuration files and scripts', emoji: ':ferris_wheel:' }, - { value: 'chore', name: `chore: Other changes that don't modify src or test files`, emoji: ':hammer:' }, - { value: 'revert', name: 'revert: Reverts a previous commit', emoji: ':rewind:' }, - ], - useEmoji: false, - emojiAlign: 'center', - useAI: false, - aiNumber: 1, - themeColorCode: '', - scopes: [], - allowCustomScopes: true, - allowEmptyScopes: true, - customScopesAlign: 'bottom', - customScopesAlias: 'custom', - emptyScopesAlias: 'empty', - upperCaseSubject: false, - markBreakingChangeMode: false, - allowBreakingChanges: ['feat', 'fix'], - breaklineNumber: 100, - breaklineChar: '|', - skipQuestions: [], - issuePrefixes: [{ value: 'closed', name: 'closed: ISSUES has been processed' }], - customIssuePrefixAlign: 'top', - emptyIssuePrefixAlias: 'skip', - customIssuePrefixAlias: 'custom', - allowCustomIssuePrefix: true, - allowEmptyIssuePrefix: true, - confirmColorize: true, - maxHeaderLength: Number.POSITIVE_INFINITY, - maxSubjectLength: Number.POSITIVE_INFINITY, - minSubjectLength: 0, - scopeOverrides: undefined, - defaultBody: '', - defaultIssues: '', - defaultScope: '', - defaultSubject: '', - }, -} +module.exports = require('@alanlu-dev/commitlint-config') diff --git a/.cspell/other.txt b/.cspell/other.txt deleted file mode 100644 index c42bd69..0000000 --- a/.cspell/other.txt +++ /dev/null @@ -1,3 +0,0 @@ -# Custom Dictionary Words -typecheck -stroustrup diff --git a/.cspell/repo.txt b/.cspell/repo.txt deleted file mode 100644 index 02bbc99..0000000 --- a/.cspell/repo.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Custom Dictionary Words -commitlint -mastercss -nuxt -tsup diff --git a/.editorconfig b/.editorconfig index 91da475..53df757 100644 --- a/.editorconfig +++ b/.editorconfig @@ -5,15 +5,22 @@ root = true # Matches all files [*] +# Non-configurable Prettier behaviors charset = utf-8 insert_final_newline = true +# Caveat: Prettier won’t trim trailing whitespace inside template strings, but your editor might. trim_trailing_whitespace = true + +# Configurable Prettier behaviors +# (change these if your Prettier config differs) end_of_line = lf indent_style = space indent_size = 2 +max_line_length = 200 -[Makefile] +[*.{md,mdx}] indent_style = tab +max_line_length = off [*.{yaml,yml,conf}] indent_size = 2 diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..761875f --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['@alanlu-dev/base'], +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..6313b56 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 73cc30e..102dd97 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -42,10 +42,10 @@ jobs: - name: Create Release Pull Request or Publish to npm uses: changesets/action@v1 with: - version: pnpm run version - publish: pnpm run release - commit: "chore: new release" - title: "chore: new release candidate" + version: pnpm run update:version + publish: pnpm run publish + commit: "chore(release): version update" + title: "chore(release): version update" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore index cc7cb7b..b5ada3b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,10 +9,13 @@ node_modules .virtual .turbo dist +build +tsx-0 +node-jiti # Logs logs -.log +*.log # Miscellaneous .DS_Store diff --git a/.lintstagedrc.cjs b/.lintstagedrc.cjs index 26cff6c..71bce74 100644 --- a/.lintstagedrc.cjs +++ b/.lintstagedrc.cjs @@ -1,8 +1 @@ -module.exports = { - '*': 'cspell --no-progress --no-must-find-files', - '*.json': ['eslint --fix', 'prettier --write'], - '*.{js,jsx,ts,tsx}': ['eslint --fix', 'prettier --write'], - '*.vue': ['eslint --fix', 'prettier --write'], - '*.{css,scss,postcss,less,html}': ['eslint --fix', 'prettier --write'], - '*.{md,mdx}': ['markdownlint-cli2 --fix'], -} +module.exports = require('@alanlu-dev/lint-staged-config') diff --git a/.npmrc b/.npmrc index ee1c54f..29dccb9 100644 --- a/.npmrc +++ b/.npmrc @@ -2,4 +2,12 @@ auto-install-peers=true public-hoist-pattern[]=*types* public-hoist-pattern[]=*eslint* public-hoist-pattern[]=*prettier* +public-hoist-pattern[]=*stylelint* public-hoist-pattern[]=*markdownlint* +public-hoist-pattern[]=*commitlint* +public-hoist-pattern[]=czg +public-hoist-pattern[]=lint-staged +public-hoist-pattern[]=sass +public-hoist-pattern[]=postcss* +public-hoist-pattern[]=@alanlu-dev/* +public-hoist-pattern[]=@master/* diff --git a/.prettierignore b/.prettierignore index efc2e4d..00f7fe8 100644 --- a/.prettierignore +++ b/.prettierignore @@ -9,6 +9,10 @@ **/.virtual **/.turbo **/dist +**/build +**/tsx-0 +**/node-jiti +**/coverage # Logs **/logs diff --git a/.stylelintignore b/.stylelintignore new file mode 100644 index 0000000..a6291fc --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,30 @@ +# Dependencies +node_modules + +# Build files +.output +.nuxt +.nitro +.cache +.virtual +.turbo +dist +build +tsx-0 +node-jiti +coverage + +# Logs +logs +*.log + +# Miscellaneous +.DS_Store +.fleet +.idea +pnpm-lock.yaml + +# Local environment files +.env +.env.* +!.env.example diff --git a/.stylelintrc.cjs b/.stylelintrc.cjs new file mode 100644 index 0000000..c4f5976 --- /dev/null +++ b/.stylelintrc.cjs @@ -0,0 +1 @@ +module.exports = require('@alanlu-dev/stylelint-config') diff --git a/.cspell/name.txt b/.vscode/.cspell/name.txt similarity index 57% rename from .cspell/name.txt rename to .vscode/.cspell/name.txt index 938b7de..50c94c2 100644 --- a/.cspell/name.txt +++ b/.vscode/.cspell/name.txt @@ -1,6 +1,11 @@ # Custom Dictionary Words alanlu +Anson antfu dbaeumer esbenp -Anson +Giraudel +Indrek +indrekpaas +Paas +Riethmuller's diff --git a/.vscode/.cspell/other.txt b/.vscode/.cspell/other.txt new file mode 100644 index 0000000..bce8166 --- /dev/null +++ b/.vscode/.cspell/other.txt @@ -0,0 +1,21 @@ +# Custom Dictionary Words +abjad +akar +autorestart +bluewood +breakline +datetime +evenodd +Fira +fullname +jiti +multistep +noborder +Noto +Overriden +preinstall +stroustrup +typecheck +unref +wght +zod's diff --git a/.vscode/.cspell/repo.txt b/.vscode/.cspell/repo.txt new file mode 100644 index 0000000..f4c74ad --- /dev/null +++ b/.vscode/.cspell/repo.txt @@ -0,0 +1,30 @@ +# Custom Dictionary Words +commitlint +commitlintrc +deepmerge +fontaine +formkit +gtag +iconify +intlify +lintstagedrc +manypkg +maska +mastercss +mcss +nuxt +nuxtjs +persistedstate +pinia +resvg +splide +splidejs +Stylelint +stylelintrc +taze +toastify +tsup +Turborepo +unplugin +unstorage +vueuse diff --git a/cspell.json b/.vscode/cspell.json similarity index 76% rename from cspell.json rename to .vscode/cspell.json index 3e67718..eadb69c 100644 --- a/cspell.json +++ b/.vscode/cspell.json @@ -1,7 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", "version": "0.2", - "ignorePaths": ["node_modules", "pnpm-lock.yaml"], + "ignorePaths": ["node_modules", ".output", ".nuxt", ".nitro", ".cache", ".virtual", ".turbo", "dist", "build", "tsx-0", "node-jiti", "coverage", "pnpm-lock.yaml"], "dictionaryDefinitions": [ { "name": "name", diff --git a/.vscode/settings.json b/.vscode/settings.json index e563d7d..51e02b2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -19,21 +19,22 @@ "source.fixAll.markdownlint": "explicit" }, + "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact", "vue", "html", "json", "jsonc", "yaml", "toml"], + // Enable the ESlint flat config support - "eslint.experimental.useFlatConfig": true, - "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact", "vue", "html", "markdown", "json", "jsonc", "yaml", "toml"], - "eslint.rules.customizations": [ - { "rule": "style/*", "severity": "off" }, - { "rule": "format/*", "severity": "off" }, - { "rule": "*-indent", "severity": "off" }, - { "rule": "*-spacing", "severity": "off" }, - { "rule": "*-spaces", "severity": "off" }, - { "rule": "*-order", "severity": "off" }, - { "rule": "*-dangle", "severity": "off" }, - { "rule": "*-newline", "severity": "off" }, - { "rule": "*quotes", "severity": "off" }, - { "rule": "*semi", "severity": "off" } - ], + // "eslint.experimental.useFlatConfig": true, + // "eslint.rules.customizations": [ + // { "rule": "style/*", "severity": "off" }, + // { "rule": "format/*", "severity": "off" }, + // { "rule": "*-indent", "severity": "off" }, + // { "rule": "*-spacing", "severity": "off" }, + // { "rule": "*-spaces", "severity": "off" }, + // { "rule": "*-order", "severity": "off" }, + // { "rule": "*-dangle", "severity": "off" }, + // { "rule": "*-newline", "severity": "off" }, + // { "rule": "*quotes", "severity": "off" }, + // { "rule": "*semi", "severity": "off" } + // ], "stylelint.enable": true, "stylelint.validate": ["css", "less", "postcss", "sass", "scss", "vue", "html"], diff --git a/LICENSE b/LICENSE index 2cd2217..5278ef4 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 alanlu-dev +Copyright (c) 2024-present alanlu-dev Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 2d57597..d732a33 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,52 @@ # @alanlu-dev/web-kit -這套開發模板是一個全方位且易於操作的基礎架構,旨在提升開發效率及確保程式碼風格的統一。它整合了以下幾款主要工具與套件,以優化開發流程: +## 環境建置 -* **EditorConfig**:透過維護一致的編輯器設定,EditorConfig 幫助團隊成員在不同的編輯器和 IDE 中保持一致的編碼風格。 +在專案中,選擇適合的工具能夠提高代碼品質、開發效率以及團隊合作。以下是一系列可供選擇的工具,您可以根據專案需求和個人偏好進行選擇和配置。 -* **ESLint**:這是一款廣受歡迎的 JavaScript 及 JSX 程式碼檢查工具,能夠協助開發者發現並修正程式碼中的錯誤,保障程式碼質量。 +### 開發工具 -* **Prettier**:作為一款程式碼格式化工具,Prettier 能自動整理程式碼格式,確保整個團隊的程式碼風格保持一致。 +* [Visual Studio Code](https://code.visualstudio.com): 由微軟開發的跨平台代碼編輯器,擁有豐富的擴展生態系統和強大的功能。 -* **Markdownlint**:這是一款專門用於維護 Markdown 文件風格一致性的工具,幫助你遵循最佳寫作實踐。 +### 包管理工具 -* **Commitlint**:這款工具幫助你規範 git commit 訊息的格式,促進團隊間溝通的效率和清晰度。 +* [pnpm](https://pnpm.io): 一個快速、節省空間的包管理器,類似於 npm 和 Yarn,但共享依賴以節省空間。 +* [fnm](https://github.com/Schniz/fnm): 快速切換 Node.js 版本的工具,可幫助您在不同的項目中使用不同的 Node.js 版本。 -* **Husky**:Husky 允許你利用 git hooks 在執行 git commit 和 git push 命令前自動進行程式碼檢查和測試,提高代碼質量。 +### 代碼風格和格式化 -* **Lint-staged**:Lint-staged 能夠在 git commit 前自動檢查暫存的程式碼變更,確保只有通過檢查的程式碼才能被提交。 +* [EditorConfig](https://editorconfig.org): 跨編輯器和 IDE 的一致性代碼編寫風格工具。 +* [Prettier](https://prettier.io): 自動美化代碼,確保代碼風格的一致性和可讀性。 +* [ESLint](https://eslint.org): JavaScript 和 TypeScript 的靜態代碼分析工具,用於檢查代碼中的錯誤和實施一致的代碼風格。 +* [Stylelint](https://stylelint.io): CSS 和 SCSS/Less 的靜態代碼分析工具,用於檢查樣式表中的錯誤和一致性。 +* [Markdownlint](https://github.com/DavidAnson/markdownlint): Markdown 文件的風格和語法的工具。 +* [husky](https://typicode.github.io/husky): Git 鉤子工具,用於在 Git 操作觸發前執行指定的代碼。 +* [lint-staged](https://github.com/lint-staged/lint-staged): 在 Git 暫存區上運行 lint 工具的工具,通常與 husky 一起使用。 +* [commitlint](https://commitlint.js.org): 檢查提交消息是否符合指定格式的工具,通常與 Conventional Commits 一起使用。 +* [CSpell](https://cspell.org/): 拼寫檢查工具,用於檢查代碼和文本文件中的拼寫錯誤。 -## 快速開始 +### 版本控制 -若要開始使用這套模板,請按照以下步驟操作: +* [Conventional Commits](https://www.conventionalcommits.org): 一種標準化的提交消息格式,用於生成一致的提交消息,以便自動化版本控制和發布。 +* [czg](https://cz-git.qbb.sh/zh/cli): 用於生成符合 Conventional Commits 的提交消息的交互式命令行工具。 +* [changeset](https://github.com/changesets/changesets): 一個用於管理 monorepo 中發布版本的工具。Changeset 允許您將多個包的變更集中管理,並生成一致的發布版本,以確保版本管理的一致性和可追溯性。 -1. **克隆倉庫** +### 建構工具 - 首先,使用以下命令克隆這個倉庫到本地: +* [Vite](https://vitejs.dev): 現代化的前端開發工具和建構工具,提供快速的開發體驗和優化的生產環境。 +* [unbuild](https://github.com/unjs/unbuild): 構建和打包 JavaScript 和 TypeScript 項目的工具,提供零配置的構建和打包功能。 +* [Turborepo](https://turbo.build/repo): 管理多個 monorepo 專案的開發者工具,提供統一的開發體驗和依賴管理。 - ```bash - git clone https://github.com/alanlu-dev/web-kit.git - ``` +### 測試工具 -2. **安裝依賴** +* [Vitest](https://vitest.dev): Vite 的測試工具,專注於提供簡單且快速的測試環境,基於 Jest 框架。 - 接著,進入項目目錄並執行以下命令安裝所需的依賴: +### JavaScript - ```bash - pnpm install - ``` +* [TypeScript](https://www.typescriptlang.org): 靜態類型的 JavaScript 語言,提供更強大的開發工具和代碼檢查。 -透過這套模板,你可以快速搭建起一個具有良好程式碼風格與質量保障的開發環境。 +### Style + +* [SCSS](https://sass-lang.com): CSS 預處理器,添加了變量、嵌套、Mixin 等功能以提高代碼可重用性和維護性。 +* [PostCSS](https://postcss.org): 轉換 CSS 的工具,可以自動添加瀏覽器前綴、優化代碼等。 +* [Master CSS](https://master.co): CSS 語言和框架,用於快速構建現代和高性能的網站。 diff --git a/apps/nuxt-base/.env.example b/apps/nuxt-base/.env.example new file mode 100644 index 0000000..5998a50 --- /dev/null +++ b/apps/nuxt-base/.env.example @@ -0,0 +1,5 @@ +NUXT_PUBLIC_SITE_URL=https://localost:3000 +NUXT_PUBLIC_GTAG_ID=G-XXXXXXXXXX +NUXT_REDIS_HOST="" +NUXT_REDIS_PORT=6379 + diff --git a/apps/nuxt-base/.eslintrc.cjs b/apps/nuxt-base/.eslintrc.cjs new file mode 100644 index 0000000..761875f --- /dev/null +++ b/apps/nuxt-base/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['@alanlu-dev/base'], +} diff --git a/apps/nuxt-base/README.md b/apps/nuxt-base/README.md new file mode 100644 index 0000000..f4e8a74 --- /dev/null +++ b/apps/nuxt-base/README.md @@ -0,0 +1,19 @@ +# @alanlu-dev/nuxt-base + +Shareable Nuxt configuration. + +## Installation + +```bash +pnpm add -D @alanlu-dev/nuxt-base +``` + +## Usage + +Create a `nuxt.config.ts` file in the root of your project: + +```ts +export default defineNuxtConfig({ + extends: ['@alanlu-dev/nuxt-base'], +}) +``` diff --git a/apps/nuxt-base/app.vue b/apps/nuxt-base/app.vue new file mode 100644 index 0000000..e84dde9 --- /dev/null +++ b/apps/nuxt-base/app.vue @@ -0,0 +1,19 @@ + + + diff --git a/apps/nuxt-base/components/Image.vue b/apps/nuxt-base/components/Image.vue new file mode 100644 index 0000000..8768c35 --- /dev/null +++ b/apps/nuxt-base/components/Image.vue @@ -0,0 +1,102 @@ + + + diff --git a/apps/nuxt-base/components/Loading/LoadingBase.vue b/apps/nuxt-base/components/Loading/LoadingBase.vue new file mode 100644 index 0000000..6bf3dd5 --- /dev/null +++ b/apps/nuxt-base/components/Loading/LoadingBase.vue @@ -0,0 +1,3 @@ + diff --git a/apps/nuxt-base/components/Modal/ModalBase.vue b/apps/nuxt-base/components/Modal/ModalBase.vue new file mode 100644 index 0000000..3939df8 --- /dev/null +++ b/apps/nuxt-base/components/Modal/ModalBase.vue @@ -0,0 +1,164 @@ + + + diff --git a/apps/nuxt-base/components/ProcessedHtml.vue b/apps/nuxt-base/components/ProcessedHtml.vue new file mode 100644 index 0000000..3ab5a80 --- /dev/null +++ b/apps/nuxt-base/components/ProcessedHtml.vue @@ -0,0 +1,84 @@ + + + diff --git a/apps/nuxt-base/components/Quantity.vue b/apps/nuxt-base/components/Quantity.vue new file mode 100644 index 0000000..d210b34 --- /dev/null +++ b/apps/nuxt-base/components/Quantity.vue @@ -0,0 +1,118 @@ + + + diff --git a/apps/nuxt-base/components/Switch.vue b/apps/nuxt-base/components/Switch.vue new file mode 100644 index 0000000..2909496 --- /dev/null +++ b/apps/nuxt-base/components/Switch.vue @@ -0,0 +1,39 @@ + + + diff --git a/apps/nuxt-base/components/Tabs.vue b/apps/nuxt-base/components/Tabs.vue new file mode 100644 index 0000000..8355a7a --- /dev/null +++ b/apps/nuxt-base/components/Tabs.vue @@ -0,0 +1,137 @@ + + + diff --git a/apps/nuxt-base/components/global/LineIcon.vue b/apps/nuxt-base/components/global/LineIcon.vue new file mode 100644 index 0000000..2f49237 --- /dev/null +++ b/apps/nuxt-base/components/global/LineIcon.vue @@ -0,0 +1,17 @@ + diff --git a/apps/nuxt-base/components/global/MailIcon.vue b/apps/nuxt-base/components/global/MailIcon.vue new file mode 100644 index 0000000..ec8f73e --- /dev/null +++ b/apps/nuxt-base/components/global/MailIcon.vue @@ -0,0 +1,21 @@ + diff --git a/apps/nuxt-base/composables/fetch.ts b/apps/nuxt-base/composables/fetch.ts new file mode 100644 index 0000000..ad9bfbd --- /dev/null +++ b/apps/nuxt-base/composables/fetch.ts @@ -0,0 +1,15 @@ +import type { H3Event } from 'h3' +import { appendResponseHeader } from 'h3' + +export async function fetchWithCookie(event: H3Event, url: string) { + /* Get the response from the server endpoint */ + const res = await $fetch.raw(url) + /* Get the cookies from the response */ + const cookies = (res.headers.get('set-cookie') || '').split(',') + /* Attach each cookie to our incoming Request */ + for (const cookie of cookies) { + appendResponseHeader(event, 'set-cookie', cookie) + } + /* Return the data of the response */ + return res._data +} diff --git a/apps/nuxt-base/composables/useFormKitRefs.ts b/apps/nuxt-base/composables/useFormKitRefs.ts new file mode 100644 index 0000000..5c4e837 --- /dev/null +++ b/apps/nuxt-base/composables/useFormKitRefs.ts @@ -0,0 +1,25 @@ +import type { FormKitFrameworkContext } from '@formkit/core' + +export function useFormKitRefs() { + const form = ref() + + const node = computed(() => form.value?.node) + const store = computed(() => node.value?.store) + const context = computed(() => node.value?.context) + + const state = computed(() => context.value?.state) + const isValid = computed(() => !!state.value?.valid) + const isDirty = computed(() => !!state.value?.dirty) + const isComplete = computed(() => !!state.value?.complete) + + return { + form, + node, + store, + context, + state, + isDirty, + isValid, + isComplete, + } +} diff --git a/apps/nuxt-base/composables/useHttp.ts b/apps/nuxt-base/composables/useHttp.ts new file mode 100644 index 0000000..365d68d --- /dev/null +++ b/apps/nuxt-base/composables/useHttp.ts @@ -0,0 +1,57 @@ +import type { UseFetchOptions } from 'nuxt/app' + +type Methods = 'GET' | 'POST' | 'DELETE' | 'PUT' + +export interface IResultData { + code: number + data: T + msg: string +} + +class HttpRequest { + request(url: string, method: Methods, data: any, options?: UseFetchOptions) { + return new Promise((resolve, reject) => { + const newOptions: UseFetchOptions = { + method, + ...options, + } + + if (method === 'GET' || method === 'DELETE') { + newOptions.params = data + } + if (method === 'POST' || method === 'PUT') { + newOptions.body = data + } + + useFetch(url, newOptions) + .then((res) => { + resolve(res) + }) + .catch((error) => { + reject(error) + }) + }) + } + + // 封装常用方法 + + get(url: string, params?: any, options?: UseFetchOptions) { + return this.request(url, 'GET', params, options) + } + + post(url: string, data: any, options?: UseFetchOptions) { + return this.request(url, 'POST', data, options) + } + + Put(url: string, data: any, options?: UseFetchOptions) { + return this.request(url, 'PUT', data, options) + } + + Delete(url: string, params: any, options?: UseFetchOptions) { + return this.request(url, 'DELETE', params, options) + } +} + +const httpRequest = new HttpRequest() + +export default httpRequest diff --git a/apps/nuxt-base/config/formkit/formkit.config.ts b/apps/nuxt-base/config/formkit/formkit.config.ts new file mode 100644 index 0000000..e3c1e7c --- /dev/null +++ b/apps/nuxt-base/config/formkit/formkit.config.ts @@ -0,0 +1,71 @@ +import { defineFormKitConfig } from '@formkit/vue' +import { zhTW } from '@formkit/i18n' +import { createAutoAnimatePlugin, createAutoHeightTextareaPlugin, createFloatingLabelsPlugin, createMultiStepPlugin } from '@formkit/addons' + +import { generateClasses } from '@formkit/themes' +import { genesisIcons } from '@formkit/icons' + +// import { createProPlugin, inputs } from '@formkit/pro' + +// --- Styles --- +// import '@formkit/themes/genesis' +// import '@formkit/addons/css/floatingLabels' +// import '@formkit/addons/css/multistep' + +import inputs from './inputs' +import { babushkaPlugin } from './plugins' +import { messages, rules } from './rules' + +export default defineFormKitConfig(() => { + // here we can access `useRuntimeConfig` because + // our function will be called by Nuxt. + // const config = useRuntimeConfig() + + // and we can use the variables to import secrets + // const pro = createProPlugin(config.FORMKIT_PRO_KEY, inputs) + + return { + // plugins: [pro], + locales: { zh: zhTW }, + locale: 'zh', + + // 圖示 + icons: { ...genesisIcons }, + + plugins: [ + // https://formkit.com/plugins/auto-animate#installation + createAutoAnimatePlugin(), + // https://formkit.com/plugins/auto-height-textarea#installation + createAutoHeightTextareaPlugin(), + // https://formkit.com/plugins/multi-step#installation + createMultiStepPlugin(), + // https://formkit.com/plugins/floating-labels#installation + createFloatingLabelsPlugin({ + useAsDefault: true, // defaults to false + }), + babushkaPlugin, + ], + + rules, + messages, + + // https://formkit.com/guides/create-a-custom-input + inputs, + + // https://formkit.com/essentials/styling#using-generateclasses-from-formkitthemes + config: { + // classes: generateClasses(mcssTheme), + classes: generateClasses({ + global: { + inner: 'user-select:none', + }, + submit: { + input: '$reset btn btn-type--theme', + }, + button: { + input: '$reset btn', + }, + }), + }, + } +}) diff --git a/apps/nuxt-base/config/formkit/inputs/OneTimePassword.vue b/apps/nuxt-base/config/formkit/inputs/OneTimePassword.vue new file mode 100644 index 0000000..e94a655 --- /dev/null +++ b/apps/nuxt-base/config/formkit/inputs/OneTimePassword.vue @@ -0,0 +1,61 @@ + + + diff --git a/apps/nuxt-base/config/formkit/inputs/index.ts b/apps/nuxt-base/config/formkit/inputs/index.ts new file mode 100644 index 0000000..679574f --- /dev/null +++ b/apps/nuxt-base/config/formkit/inputs/index.ts @@ -0,0 +1,68 @@ +import type { FormKitTypeDefinition } from '@formkit/core' +import { createInput } from '@formkit/vue' +import { $attrs, buttonInput, buttonLabel, help, icon, inner, label, message, messages, outer, prefix, textInput, wrapper } from '@formkit/inputs' + +import OneTimePassword from './OneTimePassword.vue' + +const textWithBtn: FormKitTypeDefinition = { + schema: outer( + wrapper( + label('$label'), + inner( + icon('prefix', 'label'), + prefix(), + textInput(), + icon('suffix'), + $attrs( + { + type: 'button', + class: `hide:empty btn btn-type--flat r:0! px:6x! py:3x! rel {abs-center-y;left:0;content:'';bl:1|G-30;h:70%}::after`, + onClick: '$handlers.btnClick()', + }, + buttonInput(buttonLabel(`$btnTextNew || $btnText || ''`)), + ), + ), + ), + help('$help'), + messages(message('$message.value')), + ), + /** + * The type of node, can be a list, group, or input. + */ + type: 'input', + /** + * The family of inputs this one belongs too. For example "text" and "email" + * are both part of the "text" family. This is primary used for styling. + */ + family: 'text', + /** + * An array of extra props to accept for this input. + */ + props: ['btnText', 'btnTextNew', 'onBtnClick'], + /** + * Additional features that should be added to your input + */ + features: [ + (node) => { + // 參考 https://github.com/formkit/formkit/blob/master/packages/themes/src/index.ts + node.on('created', () => { + if (node?.context?.handlers) { + node.context.handlers.btnClick = (): ((e: MouseEvent) => void) | void => { + const handlerFunction = node.props.onBtnClick + if (handlerFunction && typeof handlerFunction === 'function') { + return (e: MouseEvent) => { + return handlerFunction(node, e) + } + } + return undefined + } + } + }) + }, + ], +} + +export default { + otp: createInput(OneTimePassword, { props: ['digits'] }), + textWithBtn, +} diff --git a/apps/nuxt-base/config/formkit/plugins/babushkaPlugin.ts b/apps/nuxt-base/config/formkit/plugins/babushkaPlugin.ts new file mode 100644 index 0000000..52541aa --- /dev/null +++ b/apps/nuxt-base/config/formkit/plugins/babushkaPlugin.ts @@ -0,0 +1,31 @@ +import type { FormKitNode } from '@formkit/core' +import { createNode } from '@formkit/core' + +// https://github.com/formkit/formkit/issues/373#issuecomment-1256156572 +/** + * Experimental plugin that allows nesting inputs by + * using dot notation of the name. + */ +export function babushkaPlugin(node: FormKitNode) { + if (node.name.includes('.')) { + const address = node.name.split('.') + node._c.name = address.pop() as string + const parentAddress = address.reduce((currentAddress, parentName, _i) => { + const parent = node.at(currentAddress) + if (!parent && currentAddress === '$root') { + throw new Error('Dot-notation names bust be children of a form or group') + } + else if (!parent) { + throw new Error('This shouldn’t happen') + } + else { + createNode({ name: parentName, parent, type: 'group', props: { type: 'group' } }) + } + return `${currentAddress}.${parentName}` + }, '$root') + const parentNode = node.at(parentAddress) + if (parentNode) { + parentNode.add(node) + } + } +} diff --git a/apps/nuxt-base/config/formkit/plugins/index.ts b/apps/nuxt-base/config/formkit/plugins/index.ts new file mode 100644 index 0000000..a44f433 --- /dev/null +++ b/apps/nuxt-base/config/formkit/plugins/index.ts @@ -0,0 +1 @@ +export { babushkaPlugin } from './babushkaPlugin' diff --git a/apps/nuxt-base/config/formkit/rules.ts b/apps/nuxt-base/config/formkit/rules.ts new file mode 100644 index 0000000..fcb1a42 --- /dev/null +++ b/apps/nuxt-base/config/formkit/rules.ts @@ -0,0 +1,56 @@ +import type { FormKitProps } from '@formkit/core' +import type { PluginConfigs } from '@formkit/vue' + +// import { email as rules_email } from '@formkit/rules' + +type locale = 'zh' | 'en' +const _messages: Record string>> = {} + +// export const email: NonNullable[1] = rules_email + +// zod's email regex +const emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_+-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i +export const email: NonNullable[1] = (node) => { + return emailRegex.test(String(node.value)) +} + +export const phone: NonNullable[1] = (node) => { + return /^09\d{8}$/.test(String(node.value)) +} +_messages.phone = { + zh: ({ name }) => `${name} 請輸入手機號碼`, + en: ({ name }) => `${name} Please enter a phone number.`, +} + +export const email_phone: NonNullable[1] = (node) => { + return email(node) || phone(node) +} +_messages.email_phone = { + zh: ({ name }) => `${name} 請輸入信箱或手機號碼`, + en: ({ name }) => `${name} Please enter an email or phone number.`, +} + +export const email_phone_id: NonNullable[1] = (node) => { + return email_phone(node) || /^[A-Z][A-D0-9]\d{8}$/.test(String(node.value)) +} +_messages.email_phone_id = { + zh: ({ name }) => `${name} 請輸入信箱或手機號碼或會員編號`, + en: ({ name }) => `${name} Please enter an email or phone number or ID.`, +} + +export const rules = { + phone, + email, + email_phone, + email_phone_id, +} + +export const messages = Object.entries(_messages).reduce( + (acc, [key, messages]) => { + Object.entries(messages).forEach(([locale, func]) => { + acc[locale].validation![key] = func + }) + return acc + }, + { zh: { validation: {} }, en: { validation: {} } } as PluginConfigs['messages'], +) diff --git a/apps/nuxt-base/config/modules/_appConfig.ts b/apps/nuxt-base/config/modules/_appConfig.ts new file mode 100644 index 0000000..9b7226d --- /dev/null +++ b/apps/nuxt-base/config/modules/_appConfig.ts @@ -0,0 +1,5 @@ +import { appConfig as nuxtIcon } from './nuxtIcon' + +export default { + nuxtIcon, +} diff --git a/apps/nuxt-base/config/modules/_nuxtConfig.ts b/apps/nuxt-base/config/modules/_nuxtConfig.ts new file mode 100644 index 0000000..bbd664e --- /dev/null +++ b/apps/nuxt-base/config/modules/_nuxtConfig.ts @@ -0,0 +1,25 @@ +import { nuxtConfig as colorMode } from './colorMode' +import { nuxtConfig as content } from './content' +import { nuxtConfig as elementPlus } from './elementPlus' +import { nuxtConfig as fontaine } from './fontaine' +import { nuxtConfig as formkit } from './formkit' +import { nuxtConfig as googleFonts } from './googleFonts' +import { nuxtConfig as image } from './image' +import { nuxtConfig as nuxtIcon } from './nuxtIcon' +import { nuxtConfig as pinia } from './pinia' +import { nuxtConfig as piniaPersistedstate } from './piniaPersistedstate' +import { nuxtConfig as vueuse } from './vueuse' + +export default { + colorMode, + content, + elementPlus, + fontaine, + formkit, + googleFonts, + image, + nuxtIcon, + pinia, + piniaPersistedstate, + vueuse, +} diff --git a/apps/nuxt-base/config/modules/colorMode.ts b/apps/nuxt-base/config/modules/colorMode.ts new file mode 100644 index 0000000..dd327a9 --- /dev/null +++ b/apps/nuxt-base/config/modules/colorMode.ts @@ -0,0 +1,7 @@ +import type { NuxtModule } from '@nuxt/schema' + +// @nuxtjs/color-mode +// https://color-mode.nuxtjs.org/ +export const nuxtConfig: typeof import('@nuxtjs/color-mode').default extends NuxtModule ? Partial : Record = { + classSuffix: '', +} diff --git a/apps/nuxt-base/config/modules/content.ts b/apps/nuxt-base/config/modules/content.ts new file mode 100644 index 0000000..5a0cb0a --- /dev/null +++ b/apps/nuxt-base/config/modules/content.ts @@ -0,0 +1,7 @@ +import type { NuxtModule } from '@nuxt/schema' + +// @nuxt/content +// https://content.nuxtjs.org/ +export const nuxtConfig: typeof import('@nuxt/content').default extends NuxtModule ? Partial : Record = { + /* https://content.nuxtjs.org/api/configuration */ +} diff --git a/apps/nuxt-base/config/modules/elementPlus.ts b/apps/nuxt-base/config/modules/elementPlus.ts new file mode 100644 index 0000000..f01730e --- /dev/null +++ b/apps/nuxt-base/config/modules/elementPlus.ts @@ -0,0 +1,7 @@ +import type { NuxtModule } from '@nuxt/schema' + +// @element-plus/nuxt +// https://element-plus.org/zh-CN/ +export const nuxtConfig: typeof import('@element-plus/nuxt').default extends NuxtModule ? Partial : Record = { + importStyle: 'scss', +} diff --git a/apps/nuxt-base/config/modules/fontaine.ts b/apps/nuxt-base/config/modules/fontaine.ts new file mode 100644 index 0000000..0b02fec --- /dev/null +++ b/apps/nuxt-base/config/modules/fontaine.ts @@ -0,0 +1,7 @@ +import type { NuxtModule } from '@nuxt/schema' + +// @nuxtjs/fontaine +// https://github.com/nuxt-modules/fontaine +export const nuxtConfig: typeof import('@nuxtjs/fontaine').default extends NuxtModule ? Partial : Record = { + fonts: ['Inter', 'Noto Sans TC'], +} diff --git a/apps/nuxt-base/config/modules/formkit.ts b/apps/nuxt-base/config/modules/formkit.ts new file mode 100644 index 0000000..3497132 --- /dev/null +++ b/apps/nuxt-base/config/modules/formkit.ts @@ -0,0 +1,12 @@ +import { dirname, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' +import type { NuxtModule } from '@nuxt/schema' + +const currentDir = dirname(fileURLToPath(import.meta.url)) + +// @formkit/nuxt +// https://formkit.com/ +export const nuxtConfig: typeof import('@formkit/nuxt').default extends NuxtModule ? Partial : Record = { + autoImport: true, + configFile: resolve(currentDir, '../formkit/formkit.config.ts'), +} diff --git a/apps/nuxt-base/config/modules/googleFonts.ts b/apps/nuxt-base/config/modules/googleFonts.ts new file mode 100644 index 0000000..05c1a48 --- /dev/null +++ b/apps/nuxt-base/config/modules/googleFonts.ts @@ -0,0 +1,12 @@ +import type { NuxtModule } from '@nuxt/schema' + +// @nuxtjs/google-fonts +// https://google-fonts.nuxtjs.org/ +export const nuxtConfig: typeof import('@nuxtjs/google-fonts').default extends NuxtModule ? Partial : Record = { + families: { + 'Noto+Sans+TC': { wght: [400, 700] }, + 'Inter': true, + }, + display: 'swap', + useStylesheet: true, +} diff --git a/apps/nuxt-base/config/modules/image.ts b/apps/nuxt-base/config/modules/image.ts new file mode 100644 index 0000000..8464eb3 --- /dev/null +++ b/apps/nuxt-base/config/modules/image.ts @@ -0,0 +1,51 @@ +import type { NuxtModule } from '@nuxt/schema' + +// @nuxt/image +// https://image.nuxt.com/ +export const nuxtConfig: typeof import('@nuxt/image').default extends NuxtModule ? Partial : Record = { + /* https://image.nuxt.com/get-started/configuration */ + + // 預設情況下,Nuxt Image v1 採用可組合的方法。 + // 如果您不使用這些元件,則不會將任何其他程式碼新增至您的捆綁包。 + // 但是,如果您希望全域初始化一個在整個應用程式中可用的 $img 幫助器,您可以這樣做。 + // inject: true, + + provider: 'ipx', + + // 生成影像的品質。 + quality: 80, + + // 您可以使用此選項來配置 使用的影像的預設格式。 + // 可用的格式有 webp 、 avif 、 jpeg 、 jpg 、 png 和 gif 。 + format: ['webp'], + + // 預定義螢幕尺寸的清單,這些大小將用於產生影像的調整大小和最佳化版本(例如,使用 sizes 修飾符)。 + screens: { + 'xs': 320, + 'sm': 640, + 'md': 768, + 'lg': 1024, + 'xl': 1280, + 'xxl': 1536, + '2xl': 1536, + }, + + // 預設是專案預定義配置的集合。預設將幫助您統一整個專案中的影像。 + presets: { + avatar: { + modifiers: { + format: 'jpg', + width: 50, + height: 50, + }, + }, + }, + + // 若要在外部網站上啟用圖像優化,請指定允許優化哪些網域。 + // 此選項將用於檢測是否應優化遠端影像。這是為了確保外部 URL 不被濫用所必需的。 + // domains: ['nuxtjs.org'], + // 此選項可讓您指定 src 的別名。 + // 使用預設的 ipx 提供者時,URL 別名會在伺服器端縮短。這對於優化外部 URL 以及不將其包含在 HTML 中特別有用。 + // 使用其他提供者時,別名會在執行時解析並包含在 HTML 中。 (只是簡化了用法) + alias: {}, +} diff --git a/apps/nuxt-base/config/modules/nuxtIcon.ts b/apps/nuxt-base/config/modules/nuxtIcon.ts new file mode 100644 index 0000000..6bf0f77 --- /dev/null +++ b/apps/nuxt-base/config/modules/nuxtIcon.ts @@ -0,0 +1,14 @@ +import type { CustomAppConfig, NuxtModule } from '@nuxt/schema' + +// nuxt-icon +// https://nuxt.com/modules/icon +export const nuxtConfig: typeof import('nuxt-icon').default extends NuxtModule ? Partial : Record = {} + +export const appConfig: CustomAppConfig['nuxtIcon'] = { + size: '24px', // default size applied + class: 'icon', // default class applied + aliases: { + nuxt: 'logos:nuxt-icon', + line: 'LineIcon', + }, +} diff --git a/apps/nuxt-base/config/modules/pinia.ts b/apps/nuxt-base/config/modules/pinia.ts new file mode 100644 index 0000000..294cb28 --- /dev/null +++ b/apps/nuxt-base/config/modules/pinia.ts @@ -0,0 +1,5 @@ +import type { NuxtModule } from '@nuxt/schema' + +// @pinia/nuxt +// https://pinia.vuejs.org/ +export const nuxtConfig: typeof import('@pinia/nuxt').default extends NuxtModule ? Partial : Record = {} diff --git a/apps/nuxt-base/config/modules/piniaPersistedstate.ts b/apps/nuxt-base/config/modules/piniaPersistedstate.ts new file mode 100644 index 0000000..1c91847 --- /dev/null +++ b/apps/nuxt-base/config/modules/piniaPersistedstate.ts @@ -0,0 +1,10 @@ +import type { NuxtModule } from '@nuxt/schema' + +// @pinia-plugin-persistedstate/nuxt +// https://prazdevs.github.io/pinia-plugin-persistedstate +export const nuxtConfig: typeof import('@pinia-plugin-persistedstate/nuxt').default extends NuxtModule ? Partial : Record = { + cookieOptions: { + sameSite: 'strict', + }, + // storage: 'localStorage', +} diff --git a/apps/nuxt-base/config/modules/vueuse.ts b/apps/nuxt-base/config/modules/vueuse.ts new file mode 100644 index 0000000..e139e71 --- /dev/null +++ b/apps/nuxt-base/config/modules/vueuse.ts @@ -0,0 +1,7 @@ +import type { NuxtModule } from '@nuxt/schema' + +// @vueuse/nuxt +// https://vueuse.org/ +export const nuxtConfig: typeof import('@vueuse/nuxt').default extends NuxtModule ? Partial : Record = { + ssrHandlers: true, +} diff --git a/apps/nuxt-base/config/zod/locales/zh-TW.json b/apps/nuxt-base/config/zod/locales/zh-TW.json new file mode 100644 index 0000000..fb4f16b --- /dev/null +++ b/apps/nuxt-base/config/zod/locales/zh-TW.json @@ -0,0 +1,112 @@ +{ + "errors": { + "invalid_type": "期望輸入的是{{expected}},而輸入的是{{received}}", + "invalid_type_received_undefined": "必填的欄位", + "invalid_literal": "無效的輸入,請輸入 {{expected}}", + "unrecognized_keys": "無法識別物件的鍵值:{{- keys}}", + "invalid_union": "輸入格式錯誤", + "invalid_union_discriminator": "無效的識別符,請輸入 {{- options}}", + "invalid_enum_value": "無效的 '{{received}}' 值,請輸入 {{- options}}", + "invalid_arguments": "參數錯誤", + "invalid_return_type": "錯誤的回傳值類型", + "invalid_date": "錯誤的日期", + "custom": "格式錯誤", + "invalid_intersection_types": "交集類型無法合併", + "not_multiple_of": "必須是 {{multipleOf}} 的倍數", + "not_finite": "不能為無限值", + "invalid_string": { + "email": "{{validation}} 格式錯誤", + "url": "{{validation}} 格式錯誤", + "uuid": "{{validation}} 格式錯誤", + "cuid": "{{validation}} 格式錯誤", + "regex": "格式錯誤", + "datetime": "{{validation}} 格式錯誤", + "startsWith": "必須以 \"{{startsWith}}\" 開始", + "endsWith": "必須以 \"{{endsWith}}\" 結尾" + }, + "too_small": { + "array": { + "exact": "必須輸入 {{minimum}} 個元素", + "inclusive": "至少需要包含 {{minimum}} 個元素", + "not_inclusive": "必須包含多於 {{minimum}} 個元素" + }, + "string": { + "exact": "必須輸入 {{minimum}} 個字元", + "inclusive": "至少需要包含 {{minimum}} 個字元", + "not_inclusive": "必須包含多於 {{minimum}} 個字元" + }, + "number": { + "exact": "必須正好是 {{minimum}}", + "inclusive": "必須大於或等於 {{minimum}}", + "not_inclusive": "必須大於 {{minimum}}" + }, + "set": { + "exact": "無效的輸入", + "inclusive": "無效的輸入", + "not_inclusive": "無效的輸入" + }, + "date": { + "exact": "日期必須正好是 {{- minimum, datetime}}", + "inclusive": "日期必須晚於或等於 {{- minimum, datetime}}", + "not_inclusive": "日期必須晚於 {{- minimum, datetime}}" + } + }, + "too_big": { + "array": { + "exact": "必須輸入 {{maximum}} 個元素", + "inclusive": "最多只能包含 {{maximum}} 個元素", + "not_inclusive": "必須少於 {{maximum}} 個元素" + }, + "string": { + "exact": "必須輸入 {{maximum}} 個字元", + "inclusive": "最多只能包含 {{maximum}} 個字元", + "not_inclusive": "必須少於 {{maximum}} 個字元" + }, + "number": { + "exact": "必須正好是 {{maximum}}", + "inclusive": "必須小於或等於 {{maximum}}", + "not_inclusive": "必須小於 {{maximum}}" + }, + "set": { + "exact": "無效的輸入", + "inclusive": "無效的輸入", + "not_inclusive": "無效的輸入" + }, + "date": { + "exact": "日期必須正好是 {{- maximum, datetime}}", + "inclusive": "日期必須早於或等於 {{- maximum, datetime}}", + "not_inclusive": "日期必須早於 {{- maximum, datetime}}" + } + } + }, + "validations": { + "email": "電子郵件", + "url": "連結", + "uuid": "uuid", + "cuid": "cuid", + "regex": "正則表達式", + "datetime": "datetime" + }, + "types": { + "function": "函數", + "number": "數字", + "string": "字串", + "nan": "NaN", + "integer": "整數", + "float": "浮點數", + "boolean": "布林值", + "date": "日期", + "bigint": "Bigint", + "undefined": "未定義", + "symbol": "Symbol", + "null": "null", + "array": "陣列", + "object": "物件", + "unknown": "unknown", + "promise": "Promise", + "void": "void", + "never": "never", + "map": "Map", + "set": "Set" + } +} diff --git a/apps/nuxt-base/master.css.mjs b/apps/nuxt-base/master.css.mjs new file mode 100644 index 0000000..a987b08 --- /dev/null +++ b/apps/nuxt-base/master.css.mjs @@ -0,0 +1,6 @@ +import config from '@alanlu-dev/mastercss-config' + +/** @type {import('@master/css').Config} */ +export default { + extends: [config], +} diff --git a/apps/nuxt-base/nuxt.config.ts b/apps/nuxt-base/nuxt.config.ts new file mode 100644 index 0000000..a144603 --- /dev/null +++ b/apps/nuxt-base/nuxt.config.ts @@ -0,0 +1,162 @@ +import { createResolver } from '@nuxt/kit' + +// modules's config +import nuxtConfig from './config/modules/_nuxtConfig' +import appConfig from './config/modules/_appConfig' + +const { resolve } = createResolver(import.meta.url) + +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + // https://nuxt.com/docs/guide/going-further/layers + // extends: ['@alanlu-dev/nuxt-base'], + + // https://nuxt.com/docs/api/configuration/nuxt-config#typescript + typescript: { + // typeCheck: true, + }, + + experimental: { + defaults: { + useAsyncData: { + deep: false, + }, + // https://github.com/unjs/ofetch?tab=readme-ov-file#%EF%B8%8F-auto-retry + useFetch: { + retry: false, // default 1 + timeout: 5000, // default is disabled + }, + }, + }, + + alias: { '~base': resolve('./') }, + + // https://nuxt.com/docs/api/configuration/nuxt-config#modules + modules: [ + /* --- ui --- */ + '@master/css.nuxt', + // '@nuxt/ui', + + /* --- fonts --- */ + ['@nuxtjs/google-fonts', nuxtConfig.googleFonts], + ['@nuxtjs/fontaine', nuxtConfig.fontaine], + + /* --- utils --- */ + ['@vueuse/nuxt', nuxtConfig.vueuse], + ['@pinia/nuxt', nuxtConfig.pinia], + ['@pinia-plugin-persistedstate/nuxt', nuxtConfig.piniaPersistedstate], + // ['@nuxtjs/color-mode', nuxtConfig.colorMode], + + /* --- components --- */ + ['@nuxt/image', nuxtConfig.image], + ['nuxt-icon', nuxtConfig.nuxtIcon], + // ['@nuxt/content', _nuxtConfig.content], + ['@formkit/nuxt', nuxtConfig.formkit], + + '@vue-final-modal/nuxt', + // 'floating-vue/nuxt', + ], + + // https://nuxt.com/modules/gtag#module-options + // gtag: { + // // The Google Analytics 4 property ID to use for tracking + // id: process.env.NUXT_PUBLIC_GTAG_ID, + // }, + + // https://nuxt.com/docs/api/configuration/nuxt-config#runtimeconfig + runtimeConfig: { + // Keys within public are also exposed client-side + public: { + apiBase: '/api', + }, + // The private keys which are only available server-side + apiSecret: process.env.NUXT_API_SECRET, + redis: { + // Default values + host: '', + port: 0, + db: 0, + /* other redis connector options */ + }, + }, + + appConfig: { + nuxtIcon: appConfig.nuxtIcon, + }, + + vue: { + compilerOptions: { + isCustomElement: (tag) => tag === 'iconify-icon', + }, + }, + // https://nuxt.com/docs/api/configuration/nuxt-config#app + app: { + baseURL: '/', + // Set default configuration for on every page. + head: { + script: [ + { + // https://github.com/iconify/iconify/issues/283#issuecomment-1947790510 + src: 'https://code.iconify.design/iconify-icon/2.0.0/iconify-icon.min.js', + key: 'iconify-icon', + }, + ], + }, + }, + + // https://nuxt.com/docs/api/configuration/nuxt-config#imports + // imports: { + // dirs: ['public'], + // }, + + // https://github.com/danielroe/nuxt-vercel-isr + // routeRules: {}, + + // https://nuxt.com/docs/api/configuration/nuxt-config#css + css: [ + '@master/normal.css', + '@formkit/themes/genesis', + // SCSS file in the project + // '@alanlu-dev/scss', // you should add main.scss somewhere in your app + ], + + // https://nuxt.com/docs/api/configuration/nuxt-config#vite + // vite: { + // // css: { + // // preprocessorOptions: { + // // scss: { + // // additionalData: '@use "@alanlu-dev/scss/src/abstracts" as *;', + // // }, + // // }, + // // }, + // }, + + nitro: { + // https://github.com/nuxt/nuxt/issues/20773 + externals: { + traceInclude: ['node_modules/@resvg/resvg-js-linux-x64-gnu'], + }, + }, + + // https://nuxt.com/docs/api/configuration/nuxt-config#devtools + devtools: { + enabled: true, + timeline: { + enabled: true, + functions: { + include: [ + // 追蹤 useMouse + // 'useMouse', + + // 追蹤所有組合式函式名稱開頭為 use + /^use[A-Z]/, + + // 追蹤所有來自 @vueuse/core 套件的函式 + // (entry) => entry.from === '@vueuse/core', + ], + // 排除 useRouter + exclude: ['useRouter'], + }, + }, + }, +}) diff --git a/apps/nuxt-base/package.json b/apps/nuxt-base/package.json new file mode 100644 index 0000000..7dd60b0 --- /dev/null +++ b/apps/nuxt-base/package.json @@ -0,0 +1,119 @@ +{ + "name": "@alanlu-dev/nuxt-base", + "type": "module", + "version": "0.0.0", + "description": "Shareable Nuxt configuration.", + "author": "Alan Lu (https://github.com/alanlu-zyl)", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/alanlu-dev/web-kit.git", + "directory": "apps/nuxt-base" + }, + "bugs": { + "url": "https://github.com/alanlu-dev/web-kit/issues" + }, + "main": "./nuxt.config.ts", + "scripts": { + "build:clean": "npx rimraf --glob ./.output", + "build": "nuxt build", + "dev": "nuxt dev --dotenv .env", + "generate": "nuxt generate", + "preview": "nuxt preview", + "cleanup": "nuxt cleanup", + "app:prepare": "nuxt prepare", + "lint:eslint": "eslint --fix .", + "lint:prettier": "prettier --ignore-path ../../.prettierignore --write .", + "lint": "pnpm lint:eslint && pnpm lint:prettier", + "typecheck": "vue-tsc --noEmit" + }, + "peerDependencies": { + "@alanlu-dev/eslint-config-base": "workspace:*", + "@alanlu-dev/mastercss-config": "workspace:*", + "@alanlu-dev/scss": "workspace:*", + "@alanlu-dev/types": "workspace:*", + "@alanlu-dev/utils": "workspace:*", + "@formkit/addons": "^1.6.0", + "@formkit/core": "^1.6.0", + "@formkit/i18n": "^1.6.0", + "@formkit/icons": "^1.6.0", + "@formkit/inputs": "^1.6.0", + "@formkit/nuxt": "^1.6.0", + "@formkit/themes": "^1.6.0", + "@formkit/vue": "^1.6.0", + "@formkit/zod": "^1.6.0", + "@master/css.nuxt": "2.0.0-rc.26", + "@nuxt/devtools": "^1.1.4", + "@nuxt/image": "^1.4.0", + "@nuxt/kit": "^3.11.1", + "@nuxt/schema": "3.11.1", + "@nuxt/ui": "^2.15.0", + "@nuxtjs/color-mode": "^3.3.3", + "@nuxtjs/fontaine": "^0.4.1", + "@nuxtjs/google-fonts": "^3.2.0", + "@pinia-plugin-persistedstate/nuxt": "^1.2.0", + "@pinia/nuxt": "^0.5.1", + "@vue-final-modal/nuxt": "^1.0.3", + "@vueuse/core": "^10.9.0", + "@vueuse/nuxt": "^10.9.0", + "class-variant": "^2.0.2", + "focus-trap": "^7.5.4", + "nanoid": "^5.0.6", + "nuxt": "^3.11.1", + "nuxt-icon": "^0.6.10", + "pinia": "^2.1.7", + "unstorage": "^1.10.2", + "vue": "^3.4.21", + "vue-final-modal": "^4.5.4", + "vue-router": "^4.3.0", + "vue-tsc": "^2.0.7", + "zod": "^3.22.4" + }, + "dependencies": { + "@alanlu-dev/utils": "workspace:*", + "@vueuse/core": "^10.9.0", + "class-variant": "^2.0.2", + "nanoid": "^5.0.6", + "pinia": "^2.1.7", + "vue": "^3.4.21", + "vue-final-modal": "^4.5.4", + "vue-router": "^4.3.0", + "zod": "^3.22.4" + }, + "devDependencies": { + "@alanlu-dev/eslint-config-base": "workspace:*", + "@alanlu-dev/mastercss-config": "workspace:*", + "@alanlu-dev/mastercss-helpers": "workspace:*", + "@alanlu-dev/scss": "workspace:*", + "@alanlu-dev/types": "workspace:*", + "@element-plus/nuxt": "^1.0.8", + "@formkit/addons": "^1.6.0", + "@formkit/core": "^1.6.0", + "@formkit/i18n": "^1.6.0", + "@formkit/icons": "^1.6.0", + "@formkit/inputs": "^1.6.0", + "@formkit/nuxt": "^1.6.0", + "@formkit/themes": "^1.6.0", + "@formkit/vue": "^1.6.0", + "@formkit/zod": "^1.6.0", + "@master/css.nuxt": "2.0.0-rc.26", + "@nuxt/content": "^2.12.1", + "@nuxt/devtools": "^1.1.4", + "@nuxt/image": "^1.4.0", + "@nuxt/kit": "^3.11.1", + "@nuxt/schema": "3.11.1", + "@nuxt/ui": "^2.15.0", + "@nuxtjs/color-mode": "^3.3.3", + "@nuxtjs/fontaine": "^0.4.1", + "@nuxtjs/google-fonts": "^3.2.0", + "@pinia-plugin-persistedstate/nuxt": "^1.2.0", + "@pinia/nuxt": "^0.5.1", + "@vue-final-modal/nuxt": "^1.0.3", + "@vueuse/nuxt": "^10.9.0", + "focus-trap": "^7.5.4", + "nuxt": "^3.11.1", + "nuxt-icon": "^0.6.10", + "unstorage": "^1.10.2", + "vue-tsc": "^2.0.7" + } +} diff --git a/apps/nuxt-base/pages/index.vue b/apps/nuxt-base/pages/index.vue new file mode 100644 index 0000000..244d755 --- /dev/null +++ b/apps/nuxt-base/pages/index.vue @@ -0,0 +1,5 @@ + + + diff --git a/apps/nuxt-base/public/NotFound.png b/apps/nuxt-base/public/NotFound.png new file mode 100644 index 0000000000000000000000000000000000000000..fbe7b8d171875886e5ffc98ed1c59cc687c9b760 GIT binary patch literal 5595 zcmb_g_g53$7NvtU;UfsrQ9-Fjss`zy2t-;UU5bDfD_*)5z7!Np9RChVirjp%2L+|CiH-(E%`o2v`G&?t9imP_QTK-F z%$}Blg462}SREQfxji@i0_rc=v;RUdRZA?2l4I|BX8es;*cV)Yd&Zh2a`P{rJxc1G zhz_S*xyyE!Ig+p{7g-i4wJ?k6yVtMYdf0dz1uv62fl`9?iP2yWUydInL$3V$t zRdUzNM`kQXcFc7#^z>Y6EpU*G;{Rh{jc7`-F(Q$;>1mmlmnZx4=g;fPlOrP^)!uBh zhx{U(J)8di{rl|Ro>xgaftJqeKF!gd zN-8okGT?QCg{9F);hy^3*XXc5m~Z5^HClIm%2r_eQP zOoP0<{E;OyI@1R_glW%tW8Hgbp(n?~=6!yC-fE4>Z{Utg#PmxPr$QIrmeNp0>kbGe z30g&A3Z~}>gsgH@1z)aiyd;;j@{V07F3o-9XuwbOr8bc4sHctzvhEm6-O8GNH=bIU z@T#{D_u^3~CZ6f-LC^l6%W`McR5?vfmurh+X)muFpnA=TBHzSXlAIGLP0I z#ALG3Fc%4VAhD*?NZU!-KMdUCu&^@E??&bFVmDp=4vIY2r;zzudp6w1SAw9xa$YX! zZEeiEiP>4c9w)IK_0EF#>mfN^CnqO0nB#6XV0q#h)!g-Oj+R!ImLSRR@%($R@@L%C&{gjHrv3CMr+F6%EtI~hRVr>(o9IBi zYKmHTI9k&-%fZOZA9`_Ks-HD8+v292w z|8oX+bTsw%_nL>JV^`G7=a;{`NOYyRz{7QXh(O5c#)r0^+NW*73l|qS|JA`9A(T`T zCo^SqaPJgzxePusWMfoh_s?#}Ws~aVneWm|TAW1fX9wTa!F|@JbEwx;Zg4n!X-g?^ zC+G{{Rg|P74Kv%jN^zN$_hXUO9ly{+{VtiE@`{z zSjA(@?GA_T*9o=qOQ!cX>%D(!w|Xr`LCVHSWmm{CeulxeJXH&No%)h*67pad|38k7!9*q|Ir7> zyxiP=m0G>7T5Txe;qk0*z~*>G!fKj^rajOCm9TKRM4yCarcKh&u_aOdR805lfZA2; z>X6X6;$atf9l=Ix=|IC3Xm4%1U#0!755UN6RD_d!ZcXap+cS+%h3@b%<|!T=4BQQA zW@I^P2DI0B`Q)*BUAog|hW{Y_Haa6Qvh)8c)kdE6>mXY%jwNCHfCHVjGaPUlmqQL3 zH>nZbc-DvfBcPA|KeCF%i!gtS2%LXv*MB^1_CyADc#T&8Kc0~`CBzh~s*hn)8w$F2 zPLOyWggC4ap7~;NE&uga^XZsFe1tm0Raz%JyhB5D?@H)JXtoeQm#0Shy`pK#SB;@t zG3G71#RzEkiGA5IG{QjP^>W-aG~+Str)!#I5H*E`!b&PC0`LH|Z68f(gfaK$i_@*A zy`g_svYOl`#A|c>&Q82*H;uJ?cV-{dzR)I#-9HPF*L&2u~EDR z5Wf(kodEzhqm46)j1H&^_rU#nVrKy7i({17F^Q)kdkIZd-f}iUBZ@36qqa_;1u(3L z)>ljyxs?PR_Ml4E6b+%SnCNlOIqb^zhqa^j3wHor%$ka+nEQuJGFm39f%y}qgippIv2LE8DcdlnN(iJFkH>?L9+43@OGkewEG(3`!rvN0rtjoj z9d$y?BhYckddk+71~C(I48AM zvyQ3+zl-&HJ4HW;R0>SN8{fa#x&@H2$$b3a__9%gW${Lx=MB6hT7dAkweP5p*^;HC z@nwnWjoIB6SyxSbdV&XS@!K0;OM`iMd9R{dT;)^0ufAoAz)5g8~AkZn<3HpBI`apy?q*x)gNV9H0gEhOspl0mz&7nca(sGMl z*QbQ#i~V`oSA{U&1W9ns%Xf8~16YrdBKr}KZOcuWZ8EkhyII>6WqM&SZs^cM#9I zcj=|392QzaO`nbUYh2w37|4|BcziH#5%^Qe|3`a|cHmg)rNn8p<3v_tYZhR`7a^%C z>U5szmgs)_1w>oPMEr1}T1iOB#&n}V>7itH&BrS%|$M(YEvs>oF6L;iVN9J!&_b0 zw{PmCob@EhW<$yh$wz$D9CU zP~jIX6QfLbKie6q{9Q)8k$|_KEHUMJ##ccV-$L64QK}t91o)*7qyqSkiR-ey+;vS` zi8;OqNCHe6_jft#XG*pA{=Yy>4650&WG*tj^B_4|_t(N$;F9nM& zYsG62y=}fj2V4SLF6moYU|E}t+KWXoB?=xhfD?J!@bkurG?iiv@S3XfpQ&f_%Sy^+ zBRP-NV(p4!p3hQ)O9*ty)KwKHflFDLgr2VFGAZ*uXpo8FMWUW3jaSLuo$B@-jyEC%&L^Y=0 z1%+^qzfC1-C`<;_;E@01jp@iqC4s!{00lH9Laa#Q3S84EQ_9L2_waX8ck*dKgD@Wr zGrFj>w7Yd&e|FvX=EHn(3L!Zf=70?N4On35 za2=?hDS3|qufuUg4ens^C0{jso-Jk7Ig>%-sOunnEP>-T^CGvPpkjd~{08O!u)}}H z@IQK3$KR*o;o+&OyC-9@FheBfiJgE5fTK*4--e0i z!3Y>lP1}F-&BG;HgRZZoCHwpP0bKFQ2n0gVu*p^-uhBN_uZR~WUYx&8yH@Lf4Jcox zX3+pQmLwNk?%%gJcXw6IH(Ry{wYWRC4rkm6HP_Q(A}Z?W1w(3c0!rEazecQR;BHUsZ0U7@09RyXNSITBnd4 z+HRZ>b$G+hWPNj@GT`TTmR)E}3=`MCRRc2vH6;f%bf5&g`;J8WSmi}Xt5 zTA+(i?>zL0%Qh6hMIT^P3HHJw<(5%-Q>(}?B z#@cnF1g%SH`Z{(+AIbOfaNU@fpTE%(k4xDjzZ^(r0Fpr7j{3dnEj3$hn5=&ClaTWaqqvvM_<#1)B}G*)Pc$y+t2iKgX7-)%cgYx}#J zS17m0R)cv0v}kscq@Ap_-GvF9GS#qJK-y5Aw`+4@ZlauKRKcIelZZJcn89T~>ht^y z92#YFEFUL&tFX;Gw_DyWR#JrWCQgM^1&d}KB{P4>If(H(jD}nQ-L(*b72rHtC23BR zK0HPqsGv@f8q8ePGX$4%tT|m02?v}aw;6_v?!hSCe4vR;)yg$E@YYF_6$2o)n}6MNONYy(&63H&q4}Kr#Gmkj=p>8BPbRp)eT3rKC%3k*~TYVzDR7^l6Md@ZPHoL^;yM(DJ3{ekP zGPDtKN!A*wbv)kmoA2l6=QVePLJeh8<|b!GMu5lwP0>!32YK2HZ=7XYadIU?@`$hixpa#jA${a5(Y$9)fd~tDTPFpNw zy!v&eEuysv%LWhR>@AqcjskNgg8a`bAH=@&rvNkkwp*%JUQel!S@%+menLMO^5`y= zsDpJW9vyZ)FmUvO+pNv8>XU4Jt980t|LB)wtdqn>FRiF%Cpexd%cExWe)g^)x@l7A zrdf?9fmKjtb~|cyLr=*+(jgzh&yKdX#)LjMg-SR6&=5_(l + + + + + + + + + + + + + + + + + + diff --git a/apps/nuxt-base/public/favicon.ico b/apps/nuxt-base/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d71fc3d956d2b440a1eddc8a04d31985d2556388 GIT binary patch literal 15406 zcmeI0d$5&N6~GT50-44`6hZ9b7@|Z0l36+k0u!b+zU`rKQ5(%PQPe4oAk1PE{%NR0 z$TEh;8M8(nLPCN8ii(DqOp-{5fr>Al@eu0wgKs&TZ_YXQUbr0Zong)VX0LBQ*Is+= z^?m0Q3QY>l3awigD60zB9abouUMLi*s`fs2Yf~sZKwZzCS$o$);i>k8LO1#_gb{n| zDN4!DXjlxR;Dl10YN$Vp_I0omepN%?Qq7%d_%}F*^X-rHV9;_{4R~h1q%EUX!5{Z) z^xi>dQ0#zfYdOa)^m`h*B>hLCZ-MSfT`BcR8lHid;QXvpGs;C--BFbNv-)Di_o#dU zI>J;K2hHIE_#e!Kt*`(FLNPIpWRdDouG<0{UHjJZy%3 z@B|na9iT6`SLbK~+PE4f!jC|EC&A%hEE-Fn0d4p(DAh1U1<~$Z@Gdwuco_W%@ER%F z@Go#p?Q^fa!L$A@DC$cg=Fq1h_o7(;*{q@^IN=XwIx)sa|VTXP=5h^MAJ=VAMU0B;YRv&hH-yeb0hOzZA zaUJLQ4*kvX+F?E%1eKO^S!8i+Zm2p~0X~tsnA#Av%l8a|+b*7B> z;WqTs>e+_-nD3w9d6$w)Y1j?=;T1R%>O*=lN%+<{zYCg{nD}?pM_==0eaH`)B<75A z26gRwWR+QMf%jWYJ4`|>y!iFe$daW;Y`Sj-%oKTH=v&c+BydYLtUjm1N6Il zzc3p-kWzbm7x- z4;wb+p2LoE@yw8YWE4-1TLo1RG6co>&41^^<6uA0N1;dgDs|yc>lTA{G=Z9AG94Ua zjGd5l{v5jBYO#jpI_LvilKS=N=BsnyouuCW&p=Ifw4%?7Y@GSvXb8C(CDz}DJ^^lo zbbY@U;$5xH&%t(xamGfpqZXBKP#gUhqWhhwIPOWXO&^CCdyyM$yD}QGvIk|%_qAMG zH=d`1-<`w3-xr6$Du^*N(OZDx{hte-Z~DDFhUe(-o>S3o@2TxQlZLM78?*Wt>-mj_ zak+YJ^lX&F!5pywBBng2^c?hkDr0$YjiE{9d0AboT~n#=+a}}tp~w1GPl1@@UMmvu z49yS5ls;69(sos-g7O8cIjw1s*i$_yBpRd@#4^~vlxEiU09jq7yo_i0Og?>OV*Lx_GO ztSlnN@;I}WI2_t|I=cP z^-%W}=Fs=0_CJrdWe|52wch0vX8e4KS?{F&)DmrnsuK@*Sxv^(P{aQulj-8Se=!(? z{ugvI7?Zv$8oKnwz-h1*yc@e=J^Tem!vHv#@yhfEB<8s`;JZ7%G2Msk1oyHCu7HNT z56s(>6Q@wdS;Rh~G=B|)PGJ6Rh|(IPe7C#}VRu@Zqo0SN&``yDI|x=nYI~}u-vkYH zA78{UeI4(`)P7^>n1*V2Vwc}UrM|bO(&pW7=+XxR|5E`97FS zQ~T9dK`&_N;_sphU;*Us!#wJahQ=VBF>)g8fH(`^*}nnLsWFJZ_kIuB9edb-J_MRV zV-VwI4ut)dFG6GbzV3m&{$`Fncpm=#Z4BS7n7JobuA$rnu?Ne$!28}9ci}&(D@V_Ku!|&1B$QS68{~u#AbuDT$xSslW?{0_x zg7L5w9s>V!s!6o-4v4Xi_dPcpD)oKg_vCy?W7$|(4gnn&e)g$CqX$GLSu|^ zoWG;TL*ygNbD_S!nffxP>xHeiqIZC^!M(UQW7_{(dP6Dkj3&V@Naypnv*OryLEl^o zHN_=eY9*hhmw6}FoP{1f@@|;t{eRGQ-&xgQ{x2rosZ8f`%E1^B?uek0_ z5WaEVtCPu$-71&@_A$0!hQ1KuKCcI3B(+i9_)Fs|-|l)(!{rcuL#?xz%k{7GYsY1v zU8!8l!y0fOAHWUJ4ys`zgl*2F-SM0+ZTGD6^~Tj#!Mt2o@ebYtG4E^W7w0Bv#&bVd z2(G;uW@Kg9qOTu-IS_SexsCekz&Kq|q>tw@9fpE;urA_#(w6L`iQ;W3DQ zY3ZJ>0q^sFiu74VoiXXzo($%>bbRQ}|a|kR~REPkME|zke}lm>b55R?C;&s zr^dj1SO+mrl&?_dIfisbF*oUV$49>?U!?9+P#3ADv*#RhEJg1PsW|5!AibNeH3-bH z17Iw?1Tl}L_aeRfJns2!{Wj$oNPXw|=lfDsqjaFh-yqiAjjkP?AjCL26_!KvdoCKY zQa@i0kr$%hOzN6vebS;850fDJEkHju?U3oN-5#!nCqO^;1LNPerf?hVfSAkDJl6&6 z6JiXzH~nh=Zjj3HJiH9)Ja6)RX4)y!-LGd5XZk1f{P(`Z@O&m=5mAJJ17G zL%OauPJ=2)r7I7Qfc8HO`FI^cT{@5bMnXP6Q?=*rn7{4+SJ2O?wBunW7!&E7p?mN3 z*X@wzqG)#y=4oRrM4!0M{jdp!LMq;ed@d?xn`4Y2{qA~i!zqwTXCAaK?AhP)@66%v z9AhoSeN;n#P)}tv59wO&vrpO~(Y0|c*k7Ntgb?3TzXtu7&R196^IHOgp*CXv+6d`7 zwOo|+53lU6{f*h<$9-81$#W3gDK`XlLx=9$GfOWzNv zZ+ZMkwD)c>kNd4M4C1VvYbAIF`o!}N@!WgCRB&JEdZl#N_yu?eN{M;o&yb(v!cqgM zZw|hHp9k}_`C4($i(xi+PuoIX>~kJ?CfgyuZvI(c+y|wk1r5K1{5bQLd9$2&AN1$g zq|+tn-fiv7-?gOM9-oe)VhiNg&OdLUPn>Z&hr0DYfnAV}do*jKC@I?K`5j-fN9hLF zJpsN9?&DR^*QpJm=ik3{+edEZX$M4q&-JW*dK}yb_tFE56LUk@5#@O5%E>Sq({nT? zN}X4^c@DJA9PD|_hcs7B;JKV!OryEP{jLGuA0MaqF8?iT1#OxI%n|=2bf { + console.log(`New request: ${event.node.req.url}`) +}) diff --git a/apps/nuxt-base/server/plugins/storage.ts b/apps/nuxt-base/server/plugins/storage.ts new file mode 100644 index 0000000..3e59209 --- /dev/null +++ b/apps/nuxt-base/server/plugins/storage.ts @@ -0,0 +1,17 @@ +import redisDriver from 'unstorage/drivers/redis' + +export default defineNitroPlugin(() => { + const storage = useStorage() + + // Dynamically pass in credentials from runtime configuration, or other sources + const driver = redisDriver({ + base: 'redis', + host: useRuntimeConfig().redis.host, + port: useRuntimeConfig().redis.port, + db: useRuntimeConfig().redis.db, + /* other redis connector options */ + }) + + // Mount driver + storage.mount('redis', driver) +}) diff --git a/apps/nuxt/nuxt-demo/server/tsconfig.json b/apps/nuxt-base/server/tsconfig.json similarity index 100% rename from apps/nuxt/nuxt-demo/server/tsconfig.json rename to apps/nuxt-base/server/tsconfig.json diff --git a/apps/nuxt-base/tsconfig.json b/apps/nuxt-base/tsconfig.json new file mode 100644 index 0000000..b65aec7 --- /dev/null +++ b/apps/nuxt-base/tsconfig.json @@ -0,0 +1,7 @@ +{ + // https://nuxt.com/docs/guide/concepts/typescript + "extends": "./.nuxt/tsconfig.json", + "compilerOptions": { + "types": ["@alanlu-dev/types/globals"] + } +} diff --git a/apps/nuxt-demo/.env.example b/apps/nuxt-demo/.env.example new file mode 100644 index 0000000..c16aed3 --- /dev/null +++ b/apps/nuxt-demo/.env.example @@ -0,0 +1,4 @@ +NUXT_PUBLIC_SITE_URL=https://localost:3000 +NUXT_PUBLIC_GTAG_ID=G-XXXXXXXXXX +NUXT_REDIS_HOST="" +NUXT_REDIS_PORT=6379 diff --git a/apps/nuxt-demo/.eslintrc.cjs b/apps/nuxt-demo/.eslintrc.cjs new file mode 100644 index 0000000..761875f --- /dev/null +++ b/apps/nuxt-demo/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['@alanlu-dev/base'], +} diff --git a/apps/nuxt-demo/app.config.ts b/apps/nuxt-demo/app.config.ts new file mode 100644 index 0000000..4d101d6 --- /dev/null +++ b/apps/nuxt-demo/app.config.ts @@ -0,0 +1,5 @@ +export default defineAppConfig({ + theme: { + primaryColor: '#ababab', + }, +}) diff --git a/apps/nuxt-demo/app.vue b/apps/nuxt-demo/app.vue new file mode 100644 index 0000000..ed9cc60 --- /dev/null +++ b/apps/nuxt-demo/app.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/apps/nuxt-demo/composables/auto-import-mock.ts b/apps/nuxt-demo/composables/auto-import-mock.ts new file mode 100644 index 0000000..a2e8210 --- /dev/null +++ b/apps/nuxt-demo/composables/auto-import-mock.ts @@ -0,0 +1,15 @@ +export function useAutoImportedTarget() { + return 'the original' +} + +export function useAutoImportedNonTarget() { + return 'the original' +} + +export function useAutoImportSetupMocked() { + return 'the original' +} + +export function useAutoImportSetupOverridenMocked() { + return 'the original' +} diff --git a/apps/nuxt-demo/content/README.md b/apps/nuxt-demo/content/README.md new file mode 100644 index 0000000..193b87e --- /dev/null +++ b/apps/nuxt-demo/content/README.md @@ -0,0 +1,75 @@ +# Content Directory + +The [Nuxt Content module](https://content.nuxtjs.org) reads the [`content/` directory](https://nuxt.com/docs/guide/directory-structure/content) in your project and parses `.md`, `.yml`, `.csv` and `.json` files to create a file-based CMS for your application. + +::list{type=success} + +* Render your content with built-in components. +* Query your content with a MongoDB-like API. +* Use your Vue components in Markdown files with the MDC syntax. +* Automatically generate your navigation. + +:: + +## Get Started + +### Installation + +Install the `@nuxt/content` module in your project: + +::code-group + + ```bash [yarn] + yarn add --dev @nuxt/content + ``` + + ```bash [npm] + npm install --save-dev @nuxt/content + ``` + + ```bash [pnpm] + pnpm add -D @nuxt/content + ``` + +:: + +Then, add `@nuxt/content` to the `modules` section of `nuxt.config.ts`: + +```ts [nuxt.config.ts] +export default defineNuxtConfig({ + modules: [ + '@nuxt/content' + ], + content: { + // https://content.nuxtjs.org/api/configuration + } +}) +``` + +### Create Content + +Place your markdown files inside the [`content/` directory](https://nuxt.com/docs/guide/directory-structure/content) in the root directory of your project: + +```md [content/index.md] +# Hello Content +``` + +The module automatically loads and parses them. + +### Render Pages + +To render content pages, add a [catch-all route](https://nuxt.com/docs/guide/directory-structure/pages/#catch-all-route) using the `ContentDoc` component: + +```vue [pages/[...slug].vue] + +``` + +## Documentation + +::alert{type=info} +Head over to to learn more about the Content module features, such as how to build queries and use Vue components in your Markdown files with the MDC syntax. +:: diff --git a/apps/nuxt-demo/content/docs/2023/07/hello.md b/apps/nuxt-demo/content/docs/2023/07/hello.md new file mode 100644 index 0000000..e630d6d --- /dev/null +++ b/apps/nuxt-demo/content/docs/2023/07/hello.md @@ -0,0 +1 @@ +# Hello Content diff --git a/apps/nuxt-demo/content/docs/hello-world.mdx b/apps/nuxt-demo/content/docs/hello-world.mdx new file mode 100644 index 0000000..218cf91 --- /dev/null +++ b/apps/nuxt-demo/content/docs/hello-world.mdx @@ -0,0 +1,8 @@ + +# HEllO WORLD + +## 123 + +## 4561231231 + +123123 diff --git a/apps/nuxt-demo/ecosystem.config.js b/apps/nuxt-demo/ecosystem.config.js new file mode 100644 index 0000000..177b30c --- /dev/null +++ b/apps/nuxt-demo/ecosystem.config.js @@ -0,0 +1,26 @@ +module.exports = { + apps: [ + { + name: 'nuxt-demo', + script: './.output/server/index.mjs', + exec_mode: 'cluster', + instances: 'max', + max_memory_restart: '1G', + watch: false, + ignore_watch: ['**/.nuxt/**', '**/node_modules/**', '**/.output/**', '**/.turbo/**'], + time: true, + merge_logs: true, + autorestart: true, + node_args: '-r dotenv/config', + env: { + NODE_ENV: 'development', + }, + env_production: { + NODE_ENV: 'production', + NUXT_PUBLIC_SITE_URL: 'https://qlmpw695-80.asse.devtunnels.ms', + NUXT_PUBLIC_GTAG_ID: 'G-XXXXXXXXXX', + NUXT_PUBLIC_GTM_ID: 'GTM-XXXXXXXX', + }, + }, + ], +} diff --git a/apps/nuxt-demo/i18n.config.ts b/apps/nuxt-demo/i18n.config.ts new file mode 100644 index 0000000..5cfc86f --- /dev/null +++ b/apps/nuxt-demo/i18n.config.ts @@ -0,0 +1,13 @@ +import en from './locales/en.json' +import zh from './locales/zh.json' + +// https://vue-i18n.intlify.dev/api/general.html#createi18n +// You can use `defineI18nConfig` to get type inferences for options to pass to vue-i18n. +export default defineI18nConfig(() => ({ + legacy: false, // for composition API, you must specify 'legacy: false' option + locale: 'zh', + messages: { + en, + zh, + }, +})) diff --git a/apps/nuxt-demo/k6.mjs b/apps/nuxt-demo/k6.mjs new file mode 100644 index 0000000..49f2531 --- /dev/null +++ b/apps/nuxt-demo/k6.mjs @@ -0,0 +1,16 @@ +import http from 'k6/http' +import { check, sleep } from 'k6' + +export const options = { + stages: [ + { duration: '30s', target: 200 }, // 30 秒間逐步把用戶加到 10 個 + { duration: '1m30s', target: 300 }, // 在一分半內逐步從 10 個用戶追加到 30 個用戶 + { duration: '20s', target: 0 }, // 在 20 秒內逐步從 30 個用戶 降到 0 個用戶個用戶 + ], +} + +export default function () { + const res = http.get('http://localhost:3000') + check(res, { 'status was 200': (r) => r.status === 200 }) + sleep(1) +} diff --git a/apps/nuxt-demo/layouts/default.vue b/apps/nuxt-demo/layouts/default.vue new file mode 100644 index 0000000..4ffd81c --- /dev/null +++ b/apps/nuxt-demo/layouts/default.vue @@ -0,0 +1,37 @@ + + + diff --git a/apps/nuxt-demo/locales/en.json b/apps/nuxt-demo/locales/en.json new file mode 100644 index 0000000..c9967f1 --- /dev/null +++ b/apps/nuxt-demo/locales/en.json @@ -0,0 +1,6 @@ +{ + "hello": "Hello", + "welcome": "Welcome", + "cancel": "Cancel", + "confirm": "Confirm" +} diff --git a/apps/nuxt-demo/locales/zh.json b/apps/nuxt-demo/locales/zh.json new file mode 100644 index 0000000..0f1284e --- /dev/null +++ b/apps/nuxt-demo/locales/zh.json @@ -0,0 +1,6 @@ +{ + "hello": "你好", + "welcome": "歡迎", + "cancel": "取消", + "confirm": "確認" +} diff --git a/apps/nuxt-demo/master.css.mjs b/apps/nuxt-demo/master.css.mjs new file mode 100644 index 0000000..b8f4cd0 --- /dev/null +++ b/apps/nuxt-demo/master.css.mjs @@ -0,0 +1,16 @@ +import config from '@alanlu-dev/mastercss-config' +import floatingVueConfig from '@alanlu-dev/mastercss-config/vendors/floating-vue' +import formkitConfig from '@alanlu-dev/mastercss-config/vendors/formkit' + +// import formkitFloatingLabelConfig from '@alanlu-dev/mastercss-config/vendors/formkit-floating-label' + +/** @type {import('@master/css').Config} */ +export default { + extends: [ + config, + // vendors + floatingVueConfig, + formkitConfig, + // formkitFloatingLabelConfig, + ], +} diff --git a/apps/nuxt-demo/nginx.conf b/apps/nuxt-demo/nginx.conf new file mode 100644 index 0000000..f999ee3 --- /dev/null +++ b/apps/nuxt-demo/nginx.conf @@ -0,0 +1,103 @@ + +#user nobody; +worker_processes 1; + +#error_log logs/error.log; +#error_log logs/error.log notice; +#error_log logs/error.log info; + +#pid logs/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include mime.types; + default_type application/octet-stream; + + #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + # '$status $body_bytes_sent "$http_referer" ' + # '"$http_user_agent" "$http_x_forwarded_for"'; + + #access_log logs/access.log main; + + sendfile on; + #tcp_nopush on; + + #keepalive_timeout 0; + keepalive_timeout 65; + + #gzip on; + + server { + listen 80; + server_name yourname.com; # 替換為您的域名 + + location / { + proxy_pass http://host.docker.internal:3000; # Nuxt.js 應用地址 + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + } + + location /ecApi/ { + proxy_pass http://host.docker.internal:35757/; # 替換為實際的後端 API 地址 + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location /fdApi/ { + proxy_pass https://host.docker.internal:7115/api/; # 替換為實際的後端 API 地址 + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + } + + + # another virtual host using mix of IP-, name-, and port-based configuration + # + #server { + # listen 8000; + # listen somename:8080; + # server_name somename alias another.alias; + + # location / { + # root html; + # index index.html index.htm; + # } + #} + + + # HTTPS server + # + #server { + # listen 443 ssl; + # server_name localhost; + + # ssl_certificate cert.pem; + # ssl_certificate_key cert.key; + + # ssl_session_cache shared:SSL:1m; + # ssl_session_timeout 5m; + + # ssl_ciphers HIGH:!aNULL:!MD5; + # ssl_prefer_server_ciphers on; + + # location / { + # root html; + # index index.html index.htm; + # } + #} + +} diff --git a/apps/nuxt-demo/nuxt.config.ts b/apps/nuxt-demo/nuxt.config.ts new file mode 100644 index 0000000..1e7ece5 --- /dev/null +++ b/apps/nuxt-demo/nuxt.config.ts @@ -0,0 +1,87 @@ +import { dirname, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' + +// modules's config +import nuxtConfig from '@alanlu-dev/nuxt-base/config/modules/_nuxtConfig' + +import VueI18nVitePlugin from '@intlify/unplugin-vue-i18n/vite' + +const currentDir = dirname(fileURLToPath(import.meta.url)) + +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + // https://nuxt.com/docs/guide/going-further/layers + extends: ['@alanlu-dev/nuxt-base'], + + modules: [ + '@nuxt/test-utils/module', + '@nuxtjs/seo', + + /* --- i18n --- */ + '@nuxtjs/i18n', + + /* --- components --- */ + ['@nuxt/content', nuxtConfig.content], + ['nuxt-splide', { theme: 'default' }], + 'floating-vue/nuxt', + ], + + i18n: { + locales: ['zh', 'en'], // used in URL path prefix + defaultLocale: 'zh', // default locale of your project for Nuxt pages and routings + }, + + // https://nuxtseo.com/link-checker/getting-started/installation + linkChecker: { + enabled: false, + showLiveInspections: false, + // skipInspections: ['missing-hash', 'no-error-response', 'no-baseless', 'no-javascript', 'trailing-slash', 'absolute-site-urls', 'redirects'], + }, + + // https://nuxtseo.com/og-image/api/config + ogImage: { + enabled: false, + fonts: ['Noto+Sans+TC:400', 'Noto+Sans+TC:700', 'Inter:400', 'Inter:700'], + defaults: { + // https://nuxtseo.com/og-image/guides/cache#purging-the-cache + cacheMaxAgeSeconds: 60 * 60 * 24 * 1, // 1 days + // https://nuxtseo.com/og-image/guides/jpegs + extension: 'jpeg', + }, + compatibility: { + // disable chromium dependency for prerendering (skips the chromium install in CIs) + prerender: { + chromium: false, + }, + }, + }, + + css: ['@formkit/addons/css/floatingLabels'], + + // https://nuxt.com/docs/api/configuration/nuxt-config#app + app: { + pageTransition: { name: 'fade', mode: 'out-in' }, + }, + + // https://nuxtseo.com/nuxt-seo/guides/configuring-modules#quick-setup + site: { + url: process.env.NUXT_PUBLIC_SITE_URL, + name: 'Nuxt Demo', + description: 'demo', + defaultLocale: 'zh-Hant', + trailingSlash: false, + indexable: true, + debug: process.env.NODE_ENV === 'development', + }, + + // https://nuxt.com/docs/api/configuration/nuxt-config#vite + vite: { + plugins: [ + // https://vue-i18n.intlify.dev/guide/advanced/optimization.html#unplugin-vue-i18n + VueI18nVitePlugin({ + // locale messages resource pre-compile option + include: [resolve(currentDir, './locales/*.json')], + }), + ], + }, +}) diff --git a/apps/nuxt-demo/package.json b/apps/nuxt-demo/package.json new file mode 100644 index 0000000..cb5b93d --- /dev/null +++ b/apps/nuxt-demo/package.json @@ -0,0 +1,61 @@ +{ + "name": "@alanlu-dev/nuxt-demo", + "type": "module", + "private": true, + "description": "nuxt demo", + "license": "MIT", + "scripts": { + "build:clean": "npx rimraf --glob ./.output", + "build": "nuxt build", + "dev": "nuxt dev --dotenv .env", + "generate": "nuxt generate", + "preview": "nuxt preview", + "cleanup": "nuxt cleanup", + "app:prepare": "nuxt prepare", + "lint:eslint": "eslint --fix .", + "lint:prettier": "prettier --ignore-path ../../.prettierignore --write .", + "lint": "pnpm lint:eslint && pnpm lint:prettier", + "typecheck": "vue-tsc --noEmit", + "k6": "k6 run k6.mjs", + "node:dev": "node -r dotenv/config .output/server/index.mjs", + "node:prod": "node -r dotenv/config .output/server/index.mjs dotenv_config_path=.env.production", + "pm2:dev": "pm2 start .output/server/index.mjs --name nuxt-fast --node-args='-r dotenv/config'", + "pm2:config:dev": "pm2 start ecosystem.config.js", + "pm2:config:prod": "pm2 start ecosystem.config.js --env production", + "docker:nginx": "docker build -t fast-nginx .", + "docker:nginx:run": "docker run -d -p 80:80 fast-nginx" + }, + "dependencies": { + "@splidejs/splide": "^4.1.4", + "@splidejs/splide-extension-intersection": "^0.2.0", + "@vueuse/core": "^10.9.0", + "class-variant": "^2.0.2", + "floating-vue": "^5.2.2", + "i18next": "^23.10.1", + "maska": "^2.1.11", + "pinia": "^2.1.7", + "vue": "^3.4.21", + "vue-final-modal": "^4.5.4", + "vue-router": "^4.3.0", + "vue3-toastify": "^0.2.1", + "zod": "^3.22.4", + "zod-i18n-map": "^2.27.0" + }, + "devDependencies": { + "@alanlu-dev/nuxt-base": "workspace:*", + "@formkit/core": "^1.6.0", + "@formkit/vue": "^1.6.0", + "@gtm-support/vue-gtm": "^2.2.0", + "@intlify/unplugin-vue-i18n": "^4.0.0", + "@nuxt/test-utils": "^3.12.0", + "@nuxtjs/i18n": "^8.2.0", + "@nuxtjs/seo": "2.0.0-rc.10", + "@testing-library/vue": "8.0.3", + "@vue/test-utils": "^2.4.5", + "nuxt": "^3.11.1", + "nuxt-gtag": "^2.0.5", + "nuxt-security": "^1.2.2", + "nuxt-splide": "^1.1.0", + "vue-tsc": "^2.0.7" + } +} diff --git a/apps/nuxt-demo/pages/docs/[...slug].vue b/apps/nuxt-demo/pages/docs/[...slug].vue new file mode 100644 index 0000000..ec254a5 --- /dev/null +++ b/apps/nuxt-demo/pages/docs/[...slug].vue @@ -0,0 +1,6 @@ + diff --git a/apps/nuxt-demo/pages/formkit.vue b/apps/nuxt-demo/pages/formkit.vue new file mode 100644 index 0000000..223ae77 --- /dev/null +++ b/apps/nuxt-demo/pages/formkit.vue @@ -0,0 +1,14 @@ + + + diff --git a/apps/nuxt-demo/pages/formkit/character.vue b/apps/nuxt-demo/pages/formkit/character.vue new file mode 100644 index 0000000..415b9c2 --- /dev/null +++ b/apps/nuxt-demo/pages/formkit/character.vue @@ -0,0 +1,74 @@ + + + diff --git a/apps/nuxt-demo/pages/formkit/login.vue b/apps/nuxt-demo/pages/formkit/login.vue new file mode 100644 index 0000000..8b6196e --- /dev/null +++ b/apps/nuxt-demo/pages/formkit/login.vue @@ -0,0 +1,90 @@ + + + diff --git a/apps/nuxt-demo/pages/index.vue b/apps/nuxt-demo/pages/index.vue new file mode 100644 index 0000000..b8b323c --- /dev/null +++ b/apps/nuxt-demo/pages/index.vue @@ -0,0 +1,12 @@ + + + diff --git a/apps/nuxt-demo/pages/splide/index.vue b/apps/nuxt-demo/pages/splide/index.vue new file mode 100644 index 0000000..94b4ffc --- /dev/null +++ b/apps/nuxt-demo/pages/splide/index.vue @@ -0,0 +1,41 @@ + + + diff --git a/apps/nuxt-demo/pages/users-[group].vue b/apps/nuxt-demo/pages/users-[group].vue new file mode 100644 index 0000000..70f952e --- /dev/null +++ b/apps/nuxt-demo/pages/users-[group].vue @@ -0,0 +1,16 @@ + + + diff --git a/apps/nuxt-demo/pages/users-[group]/reload-[id].vue b/apps/nuxt-demo/pages/users-[group]/reload-[id].vue new file mode 100644 index 0000000..54d4e73 --- /dev/null +++ b/apps/nuxt-demo/pages/users-[group]/reload-[id].vue @@ -0,0 +1,10 @@ + + + diff --git a/apps/nuxt-demo/pages/users-[group]/static-[id].vue b/apps/nuxt-demo/pages/users-[group]/static-[id].vue new file mode 100644 index 0000000..0027325 --- /dev/null +++ b/apps/nuxt-demo/pages/users-[group]/static-[id].vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/nuxt-demo/plugins/01.myPlugin.ts b/apps/nuxt-demo/plugins/01.myPlugin.ts new file mode 100644 index 0000000..9ea5f7b --- /dev/null +++ b/apps/nuxt-demo/plugins/01.myPlugin.ts @@ -0,0 +1,7 @@ +export default defineNuxtPlugin(() => { + return { + provide: { + hello: (msg: string) => `Hello ${msg}!`, + }, + } +}) diff --git a/apps/nuxt-demo/plugins/directive.ts b/apps/nuxt-demo/plugins/directive.ts new file mode 100644 index 0000000..56ac10a --- /dev/null +++ b/apps/nuxt-demo/plugins/directive.ts @@ -0,0 +1,11 @@ +export default defineNuxtPlugin((nuxtApp) => { + nuxtApp.vueApp.directive('focus', { + mounted(el) { + el.focus() + }, + getSSRProps() { + // you can provide SSR-specific props here + return {} + }, + }) +}) diff --git a/apps/nuxt-demo/plugins/index.d.ts b/apps/nuxt-demo/plugins/index.d.ts new file mode 100644 index 0000000..50cfc3b --- /dev/null +++ b/apps/nuxt-demo/plugins/index.d.ts @@ -0,0 +1,13 @@ +declare module '#app' { + interface NuxtApp { + $hello: (msg: string) => string + } +} + +declare module 'vue' { + interface ComponentCustomProperties { + $hello: (msg: string) => string + } +} + +export {} diff --git a/apps/nuxt-demo/server/api/[...].ts b/apps/nuxt-demo/server/api/[...].ts new file mode 100644 index 0000000..7f2b23e --- /dev/null +++ b/apps/nuxt-demo/server/api/[...].ts @@ -0,0 +1,9 @@ +export default defineEventHandler((event) => { + return { + ok: true, + data: { + url: event.node.req.url, + }, + message: '/api 下不匹配的路由都會進入這裡', + } +}) diff --git a/apps/nuxt-demo/server/api/hello/[name].ts b/apps/nuxt-demo/server/api/hello/[name].ts new file mode 100644 index 0000000..77994a1 --- /dev/null +++ b/apps/nuxt-demo/server/api/hello/[name].ts @@ -0,0 +1,4 @@ +export default defineEventHandler((event) => { + const { name } = getRouterParams(event) + return `Hello, ${name}!` +}) diff --git a/apps/nuxt-demo/server/api/hello2.ts b/apps/nuxt-demo/server/api/hello2.ts new file mode 100644 index 0000000..d94d31d --- /dev/null +++ b/apps/nuxt-demo/server/api/hello2.ts @@ -0,0 +1,7 @@ +export default defineEventHandler((_event) => { + const { apiSecret } = useRuntimeConfig() + + return { + api: apiSecret, + } +}) diff --git a/apps/nuxt-demo/server/api/parseCookies.ts b/apps/nuxt-demo/server/api/parseCookies.ts new file mode 100644 index 0000000..455ab88 --- /dev/null +++ b/apps/nuxt-demo/server/api/parseCookies.ts @@ -0,0 +1,4 @@ +export default defineEventHandler((event) => { + const cookies = parseCookies(event) + return { cookies } +}) diff --git a/apps/nuxt-demo/server/api/query.get.ts b/apps/nuxt-demo/server/api/query.get.ts new file mode 100644 index 0000000..1088d10 --- /dev/null +++ b/apps/nuxt-demo/server/api/query.get.ts @@ -0,0 +1,4 @@ +export default defineEventHandler((event) => { + const query = getQuery(event) + return { a: query.param1, b: query.param2 } +}) diff --git a/apps/nuxt-demo/server/api/runtimeConfig.ts b/apps/nuxt-demo/server/api/runtimeConfig.ts new file mode 100644 index 0000000..d721e91 --- /dev/null +++ b/apps/nuxt-demo/server/api/runtimeConfig.ts @@ -0,0 +1,4 @@ +export default defineEventHandler((_event) => { + const config = useRuntimeConfig() + return config +}) diff --git a/apps/nuxt-demo/server/api/submit.post.ts b/apps/nuxt-demo/server/api/submit.post.ts new file mode 100644 index 0000000..a380297 --- /dev/null +++ b/apps/nuxt-demo/server/api/submit.post.ts @@ -0,0 +1,4 @@ +export default defineEventHandler(async (event) => { + const body = await readBody(event) + return { body } +}) diff --git a/apps/nuxt-demo/server/api/test.get.ts b/apps/nuxt-demo/server/api/test.get.ts new file mode 100644 index 0000000..5a0864a --- /dev/null +++ b/apps/nuxt-demo/server/api/test.get.ts @@ -0,0 +1,4 @@ +export default defineEventHandler(async (_event) => { + const data = await useStorage<{ text: string }>().getItem('redis:test') + return data +}) diff --git a/apps/nuxt-demo/server/api/test.post.ts b/apps/nuxt-demo/server/api/test.post.ts new file mode 100644 index 0000000..cbe88b2 --- /dev/null +++ b/apps/nuxt-demo/server/api/test.post.ts @@ -0,0 +1,5 @@ +export default defineEventHandler(async (event) => { + const body = await readBody(event) + await useStorage().setItem('redis:test', body) + return 'Data is set' +}) diff --git a/apps/nuxt-demo/server/api/validation/[id].ts b/apps/nuxt-demo/server/api/validation/[id].ts new file mode 100644 index 0000000..2274e8e --- /dev/null +++ b/apps/nuxt-demo/server/api/validation/[id].ts @@ -0,0 +1,13 @@ +export default defineEventHandler((event) => { + const id = Number.parseInt(event.context.params?.id || '', 10) + if (!Number.isInteger(id)) { + throw createError({ + statusCode: 400, + statusMessage: 'ID should be an integer', + }) + } + + // setResponseStatus(event, 202) + + return 'All good' +}) diff --git a/apps/nuxt-demo/server/tsconfig.json b/apps/nuxt-demo/server/tsconfig.json new file mode 100644 index 0000000..b9ed69c --- /dev/null +++ b/apps/nuxt-demo/server/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../.nuxt/tsconfig.server.json" +} diff --git a/apps/nuxt-demo/stores/counter.ts b/apps/nuxt-demo/stores/counter.ts new file mode 100644 index 0000000..bf2b706 --- /dev/null +++ b/apps/nuxt-demo/stores/counter.ts @@ -0,0 +1,18 @@ +export const useCounterStore = defineStore( + 'counter', + () => { + const count = useState('count', () => 0) + const doubleCount = computed(() => count.value * 2) + function increment() { + count.value++ + } + function decrement() { + count.value-- + } + + return { count, doubleCount, increment, decrement } + }, + { + persist: true, + }, +) diff --git a/apps/nuxt-demo/tests/setup/mocks.ts b/apps/nuxt-demo/tests/setup/mocks.ts new file mode 100644 index 0000000..60941ae --- /dev/null +++ b/apps/nuxt-demo/tests/setup/mocks.ts @@ -0,0 +1,16 @@ +import { vi } from 'vitest' +import { mockNuxtImport } from '@nuxt/test-utils/runtime' + +vi.resetModules() + +mockNuxtImport('useAutoImportSetupMocked', () => { + return vi.fn(() => { + return 'mocked in setup' + }) +}) + +mockNuxtImport('useAutoImportSetupOverridenMocked', () => { + return vi.fn(() => { + return 'mocked in setup' + }) +}) diff --git a/apps/nuxt-demo/tests/unit/index.spec.ts b/apps/nuxt-demo/tests/unit/index.spec.ts new file mode 100644 index 0000000..3d0a4b1 --- /dev/null +++ b/apps/nuxt-demo/tests/unit/index.spec.ts @@ -0,0 +1,5 @@ +import { expect, it } from 'vitest' + +it('unit test', () => { + expect(typeof window).toBe('undefined') +}) diff --git a/apps/nuxt-demo/tsconfig.json b/apps/nuxt-demo/tsconfig.json new file mode 100644 index 0000000..b65aec7 --- /dev/null +++ b/apps/nuxt-demo/tsconfig.json @@ -0,0 +1,7 @@ +{ + // https://nuxt.com/docs/guide/concepts/typescript + "extends": "./.nuxt/tsconfig.json", + "compilerOptions": { + "types": ["@alanlu-dev/types/globals"] + } +} diff --git a/apps/nuxt-demo/vitest.config.mjs b/apps/nuxt-demo/vitest.config.mjs new file mode 100644 index 0000000..4a54563 --- /dev/null +++ b/apps/nuxt-demo/vitest.config.mjs @@ -0,0 +1,23 @@ +import { fileURLToPath } from 'node:url' +import { defineVitestConfig } from '@nuxt/test-utils/config' + +export default defineVitestConfig({ + test: { + dir: 'tests', + coverage: { + reportsDirectory: 'coverage', + }, + includeSource: ['../pages/index.vue'], + environmentOptions: { + nuxt: { + rootDir: fileURLToPath(new URL('./', import.meta.url)), + domEnvironment: 'happy-dom', + mock: { + indexedDb: true, + }, + }, + }, + setupFiles: './tests/setup/mocks.ts', + globals: true, + }, +}) diff --git a/apps/nuxt/nuxt-demo/README.md b/apps/nuxt/nuxt-demo/README.md deleted file mode 100644 index f5db2a2..0000000 --- a/apps/nuxt/nuxt-demo/README.md +++ /dev/null @@ -1,75 +0,0 @@ -# Nuxt 3 Minimal Starter - -Look at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more. - -## Setup - -Make sure to install the dependencies: - -```bash -# npm -npm install - -# pnpm -pnpm install - -# yarn -yarn install - -# bun -bun install -``` - -## Development Server - -Start the development server on `http://localhost:3000`: - -```bash -# npm -npm run dev - -# pnpm -pnpm run dev - -# yarn -yarn dev - -# bun -bun run dev -``` - -## Production - -Build the application for production: - -```bash -# npm -npm run build - -# pnpm -pnpm run build - -# yarn -yarn build - -# bun -bun run build -``` - -Locally preview production build: - -```bash -# npm -npm run preview - -# pnpm -pnpm run preview - -# yarn -yarn preview - -# bun -bun run preview -``` - -Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information. diff --git a/apps/nuxt/nuxt-demo/app.vue b/apps/nuxt/nuxt-demo/app.vue deleted file mode 100644 index a495b75..0000000 --- a/apps/nuxt/nuxt-demo/app.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/apps/nuxt/nuxt-demo/nuxt.config.ts b/apps/nuxt/nuxt-demo/nuxt.config.ts deleted file mode 100644 index 9d825c4..0000000 --- a/apps/nuxt/nuxt-demo/nuxt.config.ts +++ /dev/null @@ -1,4 +0,0 @@ -// https://nuxt.com/docs/api/configuration/nuxt-config -export default defineNuxtConfig({ - devtools: { enabled: true }, -}) diff --git a/apps/nuxt/nuxt-demo/public/favicon.ico b/apps/nuxt/nuxt-demo/public/favicon.ico deleted file mode 100644 index 18993ad91cfd43e03b074dd0b5cc3f37ab38e49c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmeHLOKuuL5PjK%MHWVi6lD zOGiREbCw`xmFozJ^aNatJY>w+g ze6a2@u~m#^BZm@8wco9#Crlli0uLb^3E$t2-WIc^#(?t)*@`UpuofJ(Uyh@F>b3Ph z$D^m8Xq~pTkGJ4Q`Q2)te3mgkWYZ^Ijq|hkiP^9`De={bQQ%heZC$QU2UpP(-tbl8 zPWD2abEew;oat@w`uP3J^YpsgT%~jT(Dk%oU}sa$7|n6hBjDj`+I;RX(>)%lm_7N{+B7Mu%H?422lE%MBJH!!YTN2oT7xr>>N-8OF$C&qU^ z>vLsa{$0X%q1fjOe3P1mCv#lN{xQ4_*HCSAZjTb1`}mlc+9rl8$B3OP%VT@mch_~G z7Y+4b{r>9e=M+7vSI;BgB?ryZDY4m>&wcHSn81VH1N~`0gvwH{ z8dv#hG|OK`>1;j7tM#B)Z7zDN?{6=dUal}$e (https://github.com/alanlu-zyl)", "license": "MIT", "repository": { @@ -14,43 +14,64 @@ "url": "https://github.com/alanlu-dev/web-kit/issues" }, "engines": { - "node": ">=20.11.0", - "pnpm": ">=8.15.4", + "node": ">=20.11.1", + "pnpm": ">=8.15.5", "npm": "use pnpm please!", "yarn": "use pnpm please!" }, "scripts": { - "prepare": "husky", - "modules:clean": "npx rimraf --glob ./**/node_modules && rm -rf pnpm-lock.yaml", + "preinstall": "npx only-allow pnpm", + "prepare": "husky && pnpm apps:prepare", + "apps:prepare": "turbo run app:prepare", + "apps:cleanup": "turbo run cleanup", + "turbo:clean": "npx rimraf --glob ./**/.turbo", + "modules:clean": "npx rimraf --glob ./**/node_modules ./pnpm-lock.yaml", "pnpm:clean": "pnpm store prune", + "build:clean": "turbo run build:clean --filter=./packages/**", "build": "turbo run build", + "rebuild:all": "pnpm build:clean && turbo run build --force --no-cache", "check": "turbo run test lint typecheck --parallel && pnpm lint:cspell", "test": "turbo run test", "lint": "turbo run lint", "typecheck": "turbo run typecheck", + "coverage": "turbo run coverage", "lint:cspell": "pnpm cspell . --unique --no-progress --no-must-find-files", "lint:cspell:only-changed": "git diff --name-only | npx cspell --file-list stdin", "nuxt-demo": "pnpm --filter=@alanlu-dev/nuxt-demo", + "nuxt-demo:dev": "turbo run dev --filter=@alanlu-dev/nuxt-demo --filter=./packages/**", + "taze": "npx taze", + "change": "changeset", + "change:commit": "pnpm auto-changeset", + "update:version": "changeset version", + "publish": "pnpm release:only", + "release:only": "changeset publish", "commit": "czg", - "changeset": "changeset", - "version": "changeset version", - "release": "changeset publish" + "commit:changeset": "czg :changeset" }, "devDependencies": { - "@alanlu-dev/eslint-config": "workspace:*", + "@alanlu-dev/changeset": "workspace:*", + "@alanlu-dev/commitlint-config": "workspace:*", + "@alanlu-dev/eslint-config-base": "workspace:*", + "@alanlu-dev/lint-staged-config": "workspace:*", "@alanlu-dev/markdownlint-config": "workspace:*", + "@alanlu-dev/mastercss-config": "workspace:*", "@alanlu-dev/prettier-config": "workspace:*", - "@changesets/changelog-github": "^0.5.0", + "@alanlu-dev/stylelint-config": "workspace:*", + "@alanlu-dev/tsconfig": "workspace:*", + "@alanlu-dev/types": "workspace:*", "@changesets/cli": "^2.27.1", - "@commitlint/cli": "^19.0.3", - "@commitlint/config-conventional": "^19.0.3", - "cspell": "^8.5.0", - "czg": "^1.9.0", - "eslint": "^8.57.0", + "@types/node": "^20.11.30", + "@vitest/coverage-v8": "^1.4", + "cspell": "^8.6.1", + "dotenv": "^16.4.5", + "happy-dom": "^14.3.8", "husky": "^9.0.11", - "lint-staged": "^15.2.2", - "markdownlint-cli2": "^0.12.1", - "prettier": "^3.2.5", - "turbo": "^1.12.4" + "playwright-core": "^1.42.1", + "tsup": "^8.0.2", + "tsx": "^4.7.1", + "turbo": "^1.13.0", + "unbuild": "3.0.0-rc.1", + "vite": "^5.2.6", + "vitest": "^1.4.0" } } diff --git a/packages/changeset/.eslintrc.cjs b/packages/changeset/.eslintrc.cjs new file mode 100644 index 0000000..761875f --- /dev/null +++ b/packages/changeset/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['@alanlu-dev/base'], +} diff --git a/packages/changeset/README.md b/packages/changeset/README.md new file mode 100644 index 0000000..7152983 --- /dev/null +++ b/packages/changeset/README.md @@ -0,0 +1,25 @@ +# @alanlu-dev/changeset + +Automatically generate changeset by [Conventional Commits](https://www.conventionalcommits.org). + +## Installation + +```sh +pnpm add -D @alanlu-dev/changeset +``` + +## Usage + +Run `pnpm auto-changeset` to automatically generate changeset. + +## Issues + +* [[Question] How to generate changelog by conventional commits?](https://github.com/changesets/changesets/issues/727) + +## Source + +* [casts-cli/src/cli-changesets.ts](https://github.com/moecasts/casts-design/blob/main/packages/casts-cli/src/cli-changesets.ts) + +## Other + +* [changeset-conventional-commits](https://github.com/iamchathu/changeset-conventional-commits): Generate Changesets based on conventional commits diff --git a/packages/changeset/bin/run.cjs b/packages/changeset/bin/run.cjs new file mode 100755 index 0000000..4f82d8c --- /dev/null +++ b/packages/changeset/bin/run.cjs @@ -0,0 +1,5 @@ +#!/usr/bin/env node + +const { run } = require('../dist/index.cjs') + +run() diff --git a/packages/changeset/package.json b/packages/changeset/package.json new file mode 100644 index 0000000..25deefb --- /dev/null +++ b/packages/changeset/package.json @@ -0,0 +1,52 @@ +{ + "name": "@alanlu-dev/changeset", + "type": "module", + "version": "0.0.0", + "description": "Automatically generate changeset by Conventional Commits.", + "author": "Alan Lu (https://github.com/alanlu-zyl)", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/alanlu-dev/web-kit.git", + "directory": "packages/changeset" + }, + "bugs": { + "url": "https://github.com/alanlu-dev/web-kit/issues" + }, + "exports": { + ".": { + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + } + }, + "main": "./dist/index.cjs", + "bin": { + "auto-changeset": "./bin/run.cjs" + }, + "files": [ + "bin", + "dist" + ], + "scripts": { + "postinstall": "pnpm run build", + "build:clean": "npx rimraf --glob ./dist", + "build": "unbuild --minify", + "dev": "unbuild --stub", + "lint:eslint": "eslint --fix .", + "lint:prettier": "prettier --ignore-path ../../.prettierignore --write .", + "lint": "pnpm lint:eslint && pnpm lint:prettier" + }, + "dependencies": { + "@changesets/config": "^3.0.0", + "@changesets/read": "^0.6.0", + "@changesets/write": "^0.3.0", + "@manypkg/get-packages": "^2.2.1", + "commander": "^12.0.0" + }, + "devDependencies": { + "@alanlu-dev/eslint-config-base": "workspace:*", + "@alanlu-dev/tsconfig": "workspace:*", + "@alanlu-dev/types": "workspace:*", + "@changesets/types": "^6.0.0" + } +} diff --git a/packages/changeset/src/index.ts b/packages/changeset/src/index.ts new file mode 100644 index 0000000..7a80259 --- /dev/null +++ b/packages/changeset/src/index.ts @@ -0,0 +1,244 @@ +import { execSync } from 'node:child_process' +import fs from 'node:fs' +import path from 'node:path' +import readChangeset from '@changesets/read' +import type { Changeset } from '@changesets/types' +import writeChangeset from '@changesets/write' +import { getPackagesSync } from '@manypkg/get-packages' +import { Command } from 'commander' + +export interface PkgJson { + name?: string + version?: string + private?: boolean + dependencies?: Record + devDependencies?: Record + peerDependencies?: Record + optionalDependencies?: Record + bundledDependencies?: string[] + bin?: string | Record + scripts?: Record + engines?: Record + files?: string[] + main?: string + browser?: string + types?: string + typings?: string + module?: string + unpkg?: string + sideEffects?: boolean + workspaces?: string[] +} + +export interface ManyPkgPackage { + packageJson: PkgJson + dir: string +} + +export interface ManyPkgPackages { + packages: ManyPkgPackage[] + root: ManyPkgPackage +} + +interface Commit { + commitHash: string + commitMessage: string +} + +interface ConventionalMessagesToCommits { + changelogMessage: string + commitHashes: string[] +} + +/* + * Copied from conventional commits config: + * https://github.com/conventional-changelog/conventional-changelog/blob/master/packages/conventional-changelog-conventionalcommits/writer-opts.js + * "section" is currently unused but is left in, with the intent to update changeset changelog generation once more fleshed out + */ +const defaultCommitTypes = [ + { type: 'feat', section: 'Features' }, + { type: 'feature', section: 'Features' }, + { type: 'fix', section: 'Bug Fixes' }, + { type: 'perf', section: 'Performance Improvements' }, + { type: 'revert', section: 'Reverts' }, + { type: 'docs', section: 'Documentation' }, + { type: 'style', section: 'Styles' }, + { type: 'chore', section: 'Miscellaneous Chores' }, + { type: 'refactor', section: 'Code Refactoring' }, + { type: 'test', section: 'Tests' }, + { type: 'build', section: 'Build System' }, + { type: 'ci', section: 'Continuous Integration' }, +] + +export function isBreakingChange(commit: string) { + return commit.includes('BREAKING CHANGE:') || defaultCommitTypes.some((commitType) => commit.match(new RegExp(`^${commitType.type}(?:\(.*\))?!:`))) +} + +export function isConventionalCommit(commit: string) { + return defaultCommitTypes.some((commitType) => commit.match(new RegExp(`^${commitType.type}(?:\(.*\))?!?:`))) +} + +/* Attempts to associate non-conventional commits to the nearest conventional commit */ +export function associateCommitsToConventionalCommitMessages(commits: Commit[]): ConventionalMessagesToCommits[] { + return commits.reduce((acc, curr) => { + if (!acc.length) { + return [ + { + changelogMessage: curr.commitMessage, + commitHashes: [curr.commitHash], + }, + ] + } + + if (isConventionalCommit(curr.commitMessage)) { + if (isConventionalCommit(acc[acc.length - 1].changelogMessage)) { + return [ + ...acc, + { + changelogMessage: curr.commitMessage, + commitHashes: [curr.commitHash], + }, + ] + } + else { + return [ + ...acc.slice(0, acc.length - 1), + { + changelogMessage: curr.commitMessage, + commitHashes: [...acc[acc.length - 1].commitHashes, curr.commitHash], + }, + ] + } + } + else { + return [ + ...acc.slice(0, acc.length - 1), + { + ...acc[acc.length - 1], + commitHashes: [...acc[acc.length - 1].commitHashes, curr.commitHash], + }, + ] + } + }, [] as ConventionalMessagesToCommits[]) +} + +export function getFilesChangedSince(opts: { from: string; to: string }) { + return execSync(`git diff --name-only ${opts.from}~1...${opts.to}`).toString().trim().split('\n') +} + +export function getRepoRoot() { + return execSync('git rev-parse --show-toplevel').toString().trim().replace(/\n|\r/g, '') +} + +export function conventionalMessagesWithCommitsToChangesets( + conventionalMessagesToCommits: ConventionalMessagesToCommits[], + options: { ignoredFiles?: (string | RegExp)[]; packages: ManyPkgPackage[] }, +) { + const { ignoredFiles = [], packages } = options + return conventionalMessagesToCommits + .map((entry) => { + const filesChanged = getFilesChangedSince({ + from: entry.commitHashes[0], + to: entry.commitHashes[entry.commitHashes.length - 1], + }).filter((file) => { + return ignoredFiles.every((ignoredPattern) => !file.match(ignoredPattern)) + }) + + const repoRoot = getRepoRoot().replace(/\\/g, '/') + const packagesChanged = packages.filter((pkg) => { + const pkgDir = pkg.dir.replace(/\\/g, '/').replace(`${repoRoot}/`, '') + return filesChanged.some((file) => file.match(pkgDir)) + }) + console.log( + `${entry.commitHashes[entry.commitHashes.length - 1]} packagesChanged`, + packagesChanged?.map((pkg) => pkg.packageJson.name), + ) + if (packagesChanged.length === 0) { + return null + } + return { + releases: packagesChanged.map((pkg) => { + return { + name: pkg.packageJson.name, + type: isBreakingChange(entry.changelogMessage) ? 'major' : entry.changelogMessage.startsWith('feat') ? 'minor' : 'patch', + } + }), + summary: entry.changelogMessage, + packagesChanged, + } + }) + .filter(Boolean) as Changeset[] +} + +export function gitFetch(branch: string) { + execSync(`git fetch origin ${branch}`) +} + +export function getCurrentBranch() { + return execSync('git rev-parse --abbrev-ref HEAD').toString().trim().replace(/\n|\r/g, '') +} + +// This could be running on the main branch or on a branch that was created from the main branch. +// If this is running on the main branch, we want to get all commits since the last release. +// If this is running on a branch that was created from the main branch, we want to get all commits since the branch was created. +export function getCommitsSinceRef(branch: string) { + gitFetch(branch) + const currentBranch = getCurrentBranch() + let sinceRef = `origin/${branch}` + if (currentBranch === branch) { + try { + sinceRef = execSync('git describe --tags --abbrev=0').toString().trim().replace(/\n|\r/g, '') + } + catch (e) { + console.log("No git tags found, using repo's first commit for automated change detection. Note: this may take a while.") + sinceRef = execSync('git rev-list --max-parents=0 HEAD').toString().trim().replace(/\n|\r/g, '') + } + } + return execSync(`git rev-list --ancestry-path ${sinceRef}...HEAD`).toString().split('\n').filter(Boolean).reverse() +} + +function compareChangeSet(a: Changeset, b: Changeset): boolean { + return a.summary === b.summary && JSON.stringify(a.releases) === JSON.stringify(b.releases) +} + +export function difference(a: Changeset[], b: Changeset[]): Changeset[] { + return a.filter((changeA) => !b.some((changeB) => compareChangeSet(changeA, changeB))) +} + +const CHANGESET_CONFIG_LOCATION = path.join('.changeset', 'config.json') + +async function conventionalCommitChangeset(cwd: string = process.cwd(), options: { ignoredFiles: (string | RegExp)[] } = { ignoredFiles: [] }) { + const packages = getPackagesSync(cwd).packages.filter((pkg) => !pkg.packageJson.private && Boolean(pkg.packageJson.version)) + const changesetConfig = JSON.parse(fs.readFileSync(path.join(cwd, CHANGESET_CONFIG_LOCATION)).toString()) + const { baseBranch = 'main' } = changesetConfig + + const commitsSinceBase = getCommitsSinceRef(baseBranch) + + const commitsWithMessages = commitsSinceBase.map((commitHash) => ({ + commitHash, + commitMessage: execSync(`git log -n 1 --pretty=format:%s ${commitHash}`).toString(), + })) + + const changelogMessagesWithAssociatedCommits = associateCommitsToConventionalCommitMessages(commitsWithMessages) + + const changesets = conventionalMessagesWithCommitsToChangesets(changelogMessagesWithAssociatedCommits, { + ignoredFiles: options.ignoredFiles, + packages, + }) + + const currentChangesets = await readChangeset(cwd) + + const newChangesets = currentChangesets.length === 0 ? changesets : difference(changesets, currentChangesets) + + newChangesets.forEach((changeset) => writeChangeset(changeset, cwd)) +} + +export function runChangesets() { + conventionalCommitChangeset() +} + +export function run() { + const program = new Command('changesets').action(() => runChangesets()) + + program.parse() +} diff --git a/packages/changeset/tsconfig.json b/packages/changeset/tsconfig.json new file mode 100644 index 0000000..ec1958d --- /dev/null +++ b/packages/changeset/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "@alanlu-dev/tsconfig/base.json", + "compilerOptions": { + "types": ["@alanlu-dev/types/globals"] + } +} diff --git a/packages/linters/commitlint-config/.eslintrc.cjs b/packages/linters/commitlint-config/.eslintrc.cjs new file mode 100644 index 0000000..761875f --- /dev/null +++ b/packages/linters/commitlint-config/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['@alanlu-dev/base'], +} diff --git a/packages/linters/commitlint-config/README.md b/packages/linters/commitlint-config/README.md new file mode 100644 index 0000000..c339aec --- /dev/null +++ b/packages/linters/commitlint-config/README.md @@ -0,0 +1,23 @@ +# @alanlu-dev/commitlint-config + +Shareable commitlint configuration for [Conventional Commits](https://www.conventionalcommits.org). + +## Installation + +```bash +pnpm add -D @alanlu-dev/commitlint-config +``` + +## Usage + +Create a `.commitlintrc.cjs` file in the root of your project: + +```js +module.exports = require('@alanlu-dev/commitlint-config') +``` + +## Helpers + +```js +const { findPackageNamesSync } = require('@alanlu-dev/commitlint-config/helpers') +``` diff --git a/packages/linters/commitlint-config/package.json b/packages/linters/commitlint-config/package.json new file mode 100644 index 0000000..d55f8bb --- /dev/null +++ b/packages/linters/commitlint-config/package.json @@ -0,0 +1,40 @@ +{ + "name": "@alanlu-dev/commitlint-config", + "type": "module", + "version": "0.0.0", + "description": "Shareable commitlint configuration for Conventional Commits.", + "author": "Alan Lu (https://github.com/alanlu-zyl)", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/alanlu-dev/web-kit.git", + "directory": "packages/linters/commitlint-config" + }, + "bugs": { + "url": "https://github.com/alanlu-dev/web-kit/issues" + }, + "exports": { + ".": "./src/index.cjs", + "./helpers": "./src/helpers/index.cjs" + }, + "main": "src/index.cjs", + "files": [ + "src" + ], + "scripts": { + "lint:eslint": "eslint --fix .", + "lint:prettier": "prettier --ignore-path ../../../.prettierignore --write .", + "lint": "pnpm lint:eslint && pnpm lint:prettier" + }, + "peerDependencies": { + "@commitlint/cli": "^19.2.1", + "@commitlint/config-conventional": "^19.1.0", + "czg": "^1.9.0" + }, + "devDependencies": { + "@alanlu-dev/eslint-config-base": "workspace:*", + "@commitlint/cli": "^19.2.1", + "@commitlint/config-conventional": "^19.1.0", + "czg": "^1.9.0" + } +} diff --git a/packages/linters/commitlint-config/src/helpers/index.cjs b/packages/linters/commitlint-config/src/helpers/index.cjs new file mode 100644 index 0000000..72b7b90 --- /dev/null +++ b/packages/linters/commitlint-config/src/helpers/index.cjs @@ -0,0 +1,56 @@ +const fs = require('node:fs') +const path = require('node:path') + +function findPackageNamesSync(rootDir) { + try { + const packageNames = [] + + // 遞迴搜尋目錄的函數 + function searchDirectories(directory) { + const files = fs.readdirSync(directory) + + for (const file of files) { + const fullPath = path.join(directory, file) + const stat = fs.statSync(fullPath) + + if (stat.isDirectory()) { + // 排除目錄 + if (['node_modules', '.git', '.turbo', '.output', 'output', '.nuxt', 'build', 'node-jiti', 'dist', 'tmp', 'temp', 'coverage'].includes(file)) continue + + const packageJsonPath = path.join(fullPath, 'package.json') + + try { + const packageJson = fs.readFileSync(packageJsonPath, 'utf-8') + const { name } = JSON.parse(packageJson) + + // 檢查是否有組織名 + const packageNameParts = name.split('/') + const packageNameWithoutScope = packageNameParts.length > 1 ? packageNameParts[1] : packageNameParts[0] + packageNames.push(packageNameWithoutScope) + } + catch (error) { + if (error.code !== 'ENOENT') { + // 如果非找不到檔案的錯誤,請將錯誤拋出 + throw error + } + } + + // 遞迴處理子目錄 + searchDirectories(fullPath) + } + } + } + + // 開始搜尋 + searchDirectories(rootDir) + + return packageNames + } + catch (error) { + console.log(error) + } +} + +module.exports = { + findPackageNamesSync, +} diff --git a/packages/linters/commitlint-config/src/index.cjs b/packages/linters/commitlint-config/src/index.cjs new file mode 100644 index 0000000..ce46d3e --- /dev/null +++ b/packages/linters/commitlint-config/src/index.cjs @@ -0,0 +1,81 @@ +const { findPackageNamesSync } = require('./helpers/index.cjs') + +// https://cz-git.qbb.sh/zh/recipes/openai +// https://cz-git.qbb.sh/zh/config/engineer#useai + +/** @type {import('czg').UserConfig} */ +module.exports = { + extends: ['@commitlint/config-conventional'], + rules: { + // @see: https://commitlint.js.org/#/reference-rules + // 'scope-enum': [2, 'always', scopes], + }, + prompt: { + scopes: findPackageNamesSync('./').concat(['deps']), + alias: { + typos: 'docs: fix typos', + changeset: 'docs: add changeset', + bump: 'chore(deps): bump package versions', + }, + messages: { + type: `Select the type of change that you're committing:`, + scope: 'Denote the SCOPE of this change (optional):', + customScope: 'Denote the SCOPE of this change:', + subject: 'Write a SHORT, IMPERATIVE tense description of the change:\n', + body: 'Provide a LONGER description of the change (optional). Use "|" to break new line:\n', + breaking: 'List any BREAKING CHANGES (optional). Use "|" to break new line:\n', + footerPrefixesSelect: 'Select the ISSUES type of changeList by this change (optional):', + customFooterPrefix: 'Input ISSUES prefix:', + footer: 'List any ISSUES by this change. E.g.: #31, #34:\n', + generatingByAI: 'Generating your AI commit subject...', + generatedSelectByAI: 'Select suitable subject by AI generated:', + confirmCommit: 'Are you sure you want to proceed with the commit above?', + }, + types: [ + { value: 'feat', name: 'feat: ✨ A new feature', emoji: ':sparkles:' }, + { value: 'fix', name: 'fix: 🐛 A bug fix', emoji: ':bug:' }, + { value: 'docs', name: 'docs: 📝 Documentation only changes', emoji: ':memo:' }, + { value: 'style', name: 'style: 💄 Changes that do not affect the meaning of the code', emoji: ':lipstick:' }, + { value: 'refactor', name: 'refactor: 🔨 A code change that neither fixes a bug nor adds a feature', emoji: ':recycle:' }, + { value: 'perf', name: 'perf: 🚀 A code change that improves performance', emoji: ':zap:' }, + { value: 'test', name: 'test: 🧪 Adding missing tests or correcting existing tests', emoji: ':white_check_mark:' }, + { value: 'build', name: 'build: 👷 Changes that affect the build system or external dependencies', emoji: ':package:' }, + { value: 'ci', name: 'ci: 🔧 Changes to our CI configuration files and scripts', emoji: ':ferris_wheel:' }, + { value: 'chore', name: `chore: 🧹 Other changes that don't modify src or test files`, emoji: ':hammer:' }, + { value: 'revert', name: 'revert: ⏪️ Reverts a previous commit', emoji: ':rewind:' }, + ], + useEmoji: false, + emojiAlign: 'center', + useAI: false, + aiNumber: 1, + aiDiffIgnore: ['package-lock.json', 'yarn.lock', 'pnpm-lock.yaml', 'docs/public'], + aiQuestionCB: ({ maxSubjectLength, diff }) => `請提供精簡的 Git 正體中文提交訊息,不加任何前綴,並且內容不能超過 ${maxSubjectLength} 個字元: \`\`\`diff\n${diff}\n\`\`\``, + themeColorCode: '', + allowCustomScopes: true, + allowEmptyScopes: true, + customScopesAlign: 'bottom', + customScopesAlias: 'custom', + emptyScopesAlias: 'empty', + upperCaseSubject: false, + markBreakingChangeMode: false, + allowBreakingChanges: ['feat', 'fix'], + breaklineNumber: 100, + breaklineChar: '|', + skipQuestions: [], + issuePrefixes: [{ value: 'closed', name: 'closed: ISSUES has been processed' }], + customIssuePrefixAlign: 'top', + emptyIssuePrefixAlias: 'skip', + customIssuePrefixAlias: 'custom', + allowCustomIssuePrefix: true, + allowEmptyIssuePrefix: true, + confirmColorize: true, + maxHeaderLength: Number.POSITIVE_INFINITY, + maxSubjectLength: Number.POSITIVE_INFINITY, + minSubjectLength: 0, + scopeOverrides: undefined, + defaultBody: '', + defaultIssues: '', + defaultScope: '', + defaultSubject: '', + }, +} diff --git a/packages/linters/eslint-config/CHANGELOG.md b/packages/linters/eslint-config/CHANGELOG.md deleted file mode 100644 index f36d0da..0000000 --- a/packages/linters/eslint-config/CHANGELOG.md +++ /dev/null @@ -1,7 +0,0 @@ -# @alanlu-dev/eslint-config - -## 0.0.1 - -### Patch Changes - -- [#1](https://github.com/alanlu-dev/web-kit/pull/1) [`d67ee11`](https://github.com/alanlu-dev/web-kit/commit/d67ee119fc1d5118194fca5354bd148a060e96e6) Thanks [@alanlu-zyl](https://github.com/alanlu-zyl)! - add changeset package to manage versioning and changelogs diff --git a/packages/linters/eslint-config/base/.eslintrc.cjs b/packages/linters/eslint-config/base/.eslintrc.cjs new file mode 100644 index 0000000..34e6d23 --- /dev/null +++ b/packages/linters/eslint-config/base/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['./src/index.cjs'], +} diff --git a/packages/linters/eslint-config/base/README.md b/packages/linters/eslint-config/base/README.md new file mode 100644 index 0000000..10ef659 --- /dev/null +++ b/packages/linters/eslint-config/base/README.md @@ -0,0 +1,20 @@ +# @alanlu-dev/eslint-config-base + +Shareable ESLint configuration. + +## Installation + +```bash +pnpm add -D @alanlu-dev/eslint-config-base +``` + +## Usage + +Create a `.eslintrc.cjs` file in the root of your project: + +```js +module.exports = { + root: true, + extends: ['@alanlu-dev/base'], +} +``` diff --git a/packages/linters/eslint-config/base/package.json b/packages/linters/eslint-config/base/package.json new file mode 100644 index 0000000..8703c10 --- /dev/null +++ b/packages/linters/eslint-config/base/package.json @@ -0,0 +1,44 @@ +{ + "name": "@alanlu-dev/eslint-config-base", + "type": "module", + "version": "0.0.0", + "description": "Shareable eslint configuration.", + "author": "Alan Lu (https://github.com/alanlu-zyl)", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/alanlu-dev/web-kit.git", + "directory": "packages/linters/eslint-config/base" + }, + "bugs": { + "url": "https://github.com/alanlu-dev/web-kit/issues" + }, + "exports": { + ".": "./src/index.cjs" + }, + "main": "src/index.cjs", + "files": [ + "src" + ], + "scripts": { + "lint:eslint": "eslint --fix .", + "lint:prettier": "prettier --ignore-path ../../../../.prettierignore --write .", + "lint": "pnpm lint:eslint && pnpm lint:prettier" + }, + "peerDependencies": { + "@antfu/eslint-config": "0.43.1", + "@master/eslint-config-css": "2.0.0-rc.26", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-vitest": "^0.4.0" + }, + "devDependencies": { + "@antfu/eslint-config": "0.43.1", + "@master/eslint-config-css": "2.0.0-rc.26", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-vitest": "^0.4.0" + } +} diff --git a/packages/linters/eslint-config/base/src/index.cjs b/packages/linters/eslint-config/base/src/index.cjs new file mode 100644 index 0000000..106a280 --- /dev/null +++ b/packages/linters/eslint-config/base/src/index.cjs @@ -0,0 +1,39 @@ +module.exports = { + extends: ['@antfu', '@master/css', 'plugin:prettier/recommended'], + plugins: ['vitest'], + rules: { + 'no-console': 'off', + 'antfu/if-newline': 'off', + 'n/prefer-global/process': 'off', + }, + overrides: [ + { + // 針對 locales 目錄下的所有 .json 檔案 + files: ['locales/**/*.json'], + rules: { + // 關閉 max-len 規則 + 'max-len': 'off', + }, + }, + ], + ignorePatterns: [ + // files + '*Icon.vue', + '*.{md,mdx}', + '*.{css,scss,postcss,less}', + // dirs + '.github', + 'node_modules', + '.output', + '.nuxt', + '.nitro', + '.cache', + '.virtual', + '.turbo', + 'dist', + 'build', + 'tsx-0', + 'node-jiti', + 'coverage', + ], +} diff --git a/packages/linters/eslint-config/index.cjs b/packages/linters/eslint-config/index.cjs deleted file mode 100644 index 35e63f0..0000000 --- a/packages/linters/eslint-config/index.cjs +++ /dev/null @@ -1,53 +0,0 @@ -const antfu = require('@antfu/eslint-config').default -const { FlatCompat } = require('@eslint/eslintrc') - -const compat = new FlatCompat() - -// Check out the configs and factory for more details. -// configs: https://github.com/antfu/eslint-config/tree/main/src/configs -// factory: https://github.com/antfu/eslint-config/blob/main/src/factory.ts - -module.exports = antfu( - // Legacy config - ...compat.config({ - extends: ['plugin:prettier/recommended'], - - plugins: ['markdown', 'mdx'], - rules: { - 'no-console': 'off', - }, - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - }, - overrides: [ - { - // Enable the Markdown processor for all .md files. - files: ['*.md'], - processor: 'markdown/markdown', - }, - { - // Optionally, customize the configuration ESLint uses for ```js - // fenced code blocks inside .md files. - files: ['**/*.md/*.js', '**/*.md/*.ts'], - rules: { - '@stylistic/js/no-multi-spaces': 'off', - }, - }, - // 添加 MDX 支持 - { - files: ['*.mdx'], // 目標 MDX 檔案 - extends: ['plugin:mdx/recommended'], - }, - { - files: ['**/*.mdx/*.js', '**/*.mdx/*.ts'], - rules: { - // 這裡可以根據需要定制 MDX 中的 JS/TS 代碼塊的 lint 規則 - }, - }, - ], - }), - - // Other flat configs... -) diff --git a/packages/linters/eslint-config/package.json b/packages/linters/eslint-config/package.json deleted file mode 100644 index 31173c3..0000000 --- a/packages/linters/eslint-config/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "@alanlu-dev/eslint-config", - "version": "0.0.1", - "description": "ESLint configuration", - "author": "Alan Lu (https://github.com/alanlu-zyl)", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/alanlu-dev/web-kit.git", - "directory": "packages/linters/eslint-config" - }, - "bugs": { - "url": "https://github.com/alanlu-dev/web-kit/issues" - }, - "main": "index.cjs", - "scripts": { - "lint:eslint": "eslint . --fix", - "lint:prettier": "prettier --ignore-path ../../../.prettierignore . --write", - "lint": "pnpm lint:eslint && pnpm lint:prettier" - }, - "devDependencies": { - "@antfu/eslint-config": "^2.7.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-markdown": "^3.0.1", - "eslint-plugin-mdx": "^3.1.5", - "eslint-plugin-prettier": "^5.1.3" - } -} diff --git a/packages/linters/lint-staged-config/.eslintrc.cjs b/packages/linters/lint-staged-config/.eslintrc.cjs new file mode 100644 index 0000000..761875f --- /dev/null +++ b/packages/linters/lint-staged-config/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['@alanlu-dev/base'], +} diff --git a/packages/linters/lint-staged-config/README.md b/packages/linters/lint-staged-config/README.md new file mode 100644 index 0000000..a041526 --- /dev/null +++ b/packages/linters/lint-staged-config/README.md @@ -0,0 +1,17 @@ +# @alanlu-dev/lint-staged-config + +Shareable lint-staged configuration. + +## Installation + +```bash +pnpm add -D @alanlu-dev/lint-staged-config +``` + +## Usage + +Create a `.lintstagedrc.cjs` file in the root of your project: + +```js +module.exports = require('@alanlu-dev/lint-staged-config') +``` diff --git a/packages/linters/lint-staged-config/package.json b/packages/linters/lint-staged-config/package.json new file mode 100644 index 0000000..366fc85 --- /dev/null +++ b/packages/linters/lint-staged-config/package.json @@ -0,0 +1,43 @@ +{ + "name": "@alanlu-dev/lint-staged-config", + "type": "module", + "version": "0.0.0", + "description": "Shareable lint-staged configuration.", + "author": "Alan Lu (https://github.com/alanlu-zyl)", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/alanlu-dev/web-kit.git", + "directory": "packages/linters/lint-staged-config" + }, + "bugs": { + "url": "https://github.com/alanlu-dev/web-kit/issues" + }, + "exports": { + ".": "./src/index.cjs" + }, + "main": "src/index.cjs", + "files": [ + "src" + ], + "scripts": { + "lint:eslint": "eslint --fix .", + "lint:prettier": "prettier --ignore-path ../../../.prettierignore --write .", + "lint": "pnpm lint:eslint && pnpm lint:prettier" + }, + "peerDependencies": { + "eslint": "^8.57.0", + "lint-staged": "^15.2.2", + "markdownlint-cli2": "^0.12.1", + "prettier": "^3.2.5", + "stylelint": "^16.3.1" + }, + "devDependencies": { + "@alanlu-dev/eslint-config-base": "workspace:*", + "eslint": "^8.57.0", + "lint-staged": "^15.2.2", + "markdownlint-cli2": "^0.12.1", + "prettier": "^3.2.5", + "stylelint": "^16.3.1" + } +} diff --git a/packages/linters/lint-staged-config/src/index.cjs b/packages/linters/lint-staged-config/src/index.cjs new file mode 100644 index 0000000..17304de --- /dev/null +++ b/packages/linters/lint-staged-config/src/index.cjs @@ -0,0 +1,7 @@ +module.exports = { + '*.json': ['eslint --fix', 'prettier --write'], + '*.{js,cjs,mjs,jsx,ts,tsx}': ['eslint --fix', 'prettier --write'], + '*.{vue,html}': ['eslint --fix', 'stylelint --allow-empty-input --fix', 'prettier --write'], + '*.{css,scss,postcss,less}': ['stylelint --allow-empty-input --fix', 'prettier --write'], + '*.{md,mdx}': ['markdownlint-cli2 --fix'], +} diff --git a/packages/linters/markdownlint-config/README.md b/packages/linters/markdownlint-config/README.md new file mode 100644 index 0000000..81f39f2 --- /dev/null +++ b/packages/linters/markdownlint-config/README.md @@ -0,0 +1,17 @@ +# @alanlu-dev/markdownlint-config + +Shareable markdownlint configuration. + +## Installation + +```bash +pnpm add -D @alanlu-dev/markdownlint-config +``` + +## Usage + +Create a `.markdownlint-cli2.cjs` file in the root of your project: + +```js +module.exports = require('@alanlu-dev/markdownlint-config') +``` diff --git a/packages/linters/markdownlint-config/package.json b/packages/linters/markdownlint-config/package.json index 87c9551..10baead 100644 --- a/packages/linters/markdownlint-config/package.json +++ b/packages/linters/markdownlint-config/package.json @@ -1,7 +1,7 @@ { "name": "@alanlu-dev/markdownlint-config", "version": "0.0.1", - "description": "Markdownlint configuration", + "description": "Shareable markdownlint configuration.", "author": "Alan Lu (https://github.com/alanlu-zyl)", "license": "MIT", "repository": { @@ -12,14 +12,27 @@ "bugs": { "url": "https://github.com/alanlu-dev/web-kit/issues" }, - "main": "index.cjs", + "exports": { + ".": "./src/index.cjs" + }, + "main": "src/index.cjs", + "files": [ + "src" + ], "scripts": { - "lint:eslint": "eslint . --fix", - "lint:prettier": "prettier --ignore-path ../../../.prettierignore . --write", + "lint:eslint": "eslint --fix .", + "lint:prettier": "prettier --ignore-path ../../../.prettierignore --write .", "lint": "pnpm lint:eslint && pnpm lint:prettier" }, + "peerDependencies": { + "@github/markdownlint-github": "^0.6.2", + "markdownlint-cli2": "^0.12.1", + "markdownlint-cli2-formatter-pretty": "^0.0.5" + }, "devDependencies": { - "@github/markdownlint-github": "^0.6.0", + "@alanlu-dev/eslint-config-base": "workspace:*", + "@github/markdownlint-github": "^0.6.2", + "markdownlint-cli2": "^0.12.1", "markdownlint-cli2-formatter-pretty": "^0.0.5" } } diff --git a/packages/linters/markdownlint-config/index.cjs b/packages/linters/markdownlint-config/src/index.cjs similarity index 100% rename from packages/linters/markdownlint-config/index.cjs rename to packages/linters/markdownlint-config/src/index.cjs diff --git a/packages/linters/prettier-config/README.md b/packages/linters/prettier-config/README.md new file mode 100644 index 0000000..3414af2 --- /dev/null +++ b/packages/linters/prettier-config/README.md @@ -0,0 +1,17 @@ +# @alanlu-dev/prettier-config + +Shareable prettier configuration. + +## Installation + +```bash +pnpm add -D @alanlu-dev/prettier-config +``` + +## Usage + +Create a `.prettierrc.cjs` file in the root of your project: + +```js +module.exports = require('@alanlu-dev/prettier-config') +``` diff --git a/packages/linters/prettier-config/package.json b/packages/linters/prettier-config/package.json index 0739678..6e73da0 100644 --- a/packages/linters/prettier-config/package.json +++ b/packages/linters/prettier-config/package.json @@ -1,7 +1,7 @@ { "name": "@alanlu-dev/prettier-config", "version": "0.0.1", - "description": "Prettier configuration", + "description": "Shareable prettier configuration.", "author": "Alan Lu (https://github.com/alanlu-zyl)", "license": "MIT", "repository": { @@ -12,13 +12,26 @@ "bugs": { "url": "https://github.com/alanlu-dev/web-kit/issues" }, - "main": "index.cjs", + "exports": { + ".": "./src/index.cjs" + }, + "main": "src/index.cjs", + "files": [ + "src" + ], "scripts": { - "lint:eslint": "eslint . --fix", - "lint:prettier": "prettier --ignore-path ../../../.prettierignore . --write", + "lint:eslint": "eslint --fix .", + "lint:prettier": "prettier --ignore-path ../../../.prettierignore --write .", "lint": "pnpm lint:eslint && pnpm lint:prettier" }, + "peerDependencies": { + "prettier": "^3.2.5", + "prettier-plugin-brace-style": "^0.6.0", + "prettier-plugin-merge": "^0.6.0" + }, "devDependencies": { + "@alanlu-dev/eslint-config-base": "workspace:*", + "prettier": "^3.2.5", "prettier-plugin-brace-style": "^0.6.0", "prettier-plugin-merge": "^0.6.0" } diff --git a/packages/linters/prettier-config/index.cjs b/packages/linters/prettier-config/src/index.cjs similarity index 96% rename from packages/linters/prettier-config/index.cjs rename to packages/linters/prettier-config/src/index.cjs index 71c9285..43625cb 100644 --- a/packages/linters/prettier-config/index.cjs +++ b/packages/linters/prettier-config/src/index.cjs @@ -6,11 +6,11 @@ module.exports = { experimentalTernaries: false, // 每行最多字元數量,超出換行(默認80) - printWidth: 200, + // printWidth: 200, // 縮排空格數量,默認2個空格 - tabWidth: 2, + // tabWidth: 2, // 指定縮排方式,空格或tab,默認false,即使用空格 - useTabs: false, + // useTabs: false, // 結尾添加分號,默認true semi: false, // 使用單引號,默認false @@ -38,7 +38,7 @@ module.exports = { // Vue 檔案中是否縮排 + + + +
+
+

All files

+
+ +
+ 58.47% + Statements + 100/171 +
+ + +
+ 66.66% + Branches + 10/15 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 58.47% + Lines + 100/171 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
58.47%100/17166.66%10/15100%3/358.47%100/171
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/mastercss/helpers/coverage/index.ts.html b/packages/mastercss/helpers/coverage/index.ts.html new file mode 100644 index 0000000..10290f2 --- /dev/null +++ b/packages/mastercss/helpers/coverage/index.ts.html @@ -0,0 +1,598 @@ + + + + + + Code coverage report for index.ts + + + + + + + + + +
+
+

All files index.ts

+
+ +
+ 58.47% + Statements + 100/171 +
+ + +
+ 66.66% + Branches + 10/15 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 58.47% + Lines + 100/171 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +1721x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +2x +2x +2x +2x +2x +2x +2x +2x +2x +2x +2x +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +2x +2x +2x +2x +2x +2x +2x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +  +  +  +  +  +  +  +  +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x + 
/**
+ * 一個函數,它接受“strings”數組和“tokens”作為參數並返回一個字符串。
+ *
+ * @param {TemplateStringsArray} strings - 用作模板的字符串數組。
+ * @param {any[]} tokens - 要插入到模板中的標記數組。
+ * @return {string} - 將標記插入模板後得到的字符串。
+ */
+function literal(strings: TemplateStringsArray, ...tokens: any[]): string {
+  return strings
+    .reduce((result, value, index) => result + value + (tokens[index] || ''), '')
+    .replace(/\/\*[\s\S]*?\*\//gm, '') // 允許註解
+    .replace(/(?:\n(?:\s*))+/g, ' ')
+    .trim()
+}
+ 
+const replacedSymbol = '_$'
+const replacedConnectMainSymbol = '_$$'
+ 
+interface GroupConfig {
+  /** 先代選擇器 */
+  parent?: string
+  /** 樣式 */
+  cls: string
+  /** 後代選擇器 */
+  selector: string
+  /** 媒體選擇器 */
+  mq?: string
+  /** 範圍 */
+  scope?: string
+  /** 是否印出結果 */
+  showLog?: boolean
+}
+ 
+/**
+ * 根據提供的配置生成 CSS 組字符串。
+ *
+ * @param config - 用於生成 CSS 組字符串的配置對象。
+ * @returns CSS 組字符串。
+ */
+function group(config: GroupConfig): string {
+  const { parent, selector, cls, mq, scope } = config
+ 
+  const unitArr: string[] = []
+  const otherGroup: string[] = []
+ 
+  // 依空格拆分
+  cls.split(' ').forEach((target) => {
+    // 如果非群組,直接新增
+    if (!target.includes('{')) {
+      unitArr.push(target)
+    }
+    // 否則進行群組處理
+    else {
+      // 先代選擇器 群組樣式 後代選擇器
+      const reg = /^(.+){0,1}{(.+)}(.+){0,1}$/
+      const r = target.match(reg)!
+
+      // 先代選擇器
+      let _parent: GroupConfig['parent'] = r[1] || ''
+      if (_parent) {
+        if (_parent.includes(replacedConnectMainSymbol) && parent) {
+          const [lastCharacter, previousCharacters] = [parent.slice(-1), parent.slice(0, -1)]
+          _parent = _parent.replace(replacedConnectMainSymbol, previousCharacters) + lastCharacter
+        }
+        else if (_parent.includes(replacedSymbol) && parent) {
+          _parent = _parent.replace(replacedSymbol, parent)
+        }
+        else if (parent) {
+          _parent = parent + _parent
+        }
+      }
+      else if (parent) {
+        _parent = parent
+      }
+
+      // 媒體選擇器
+      let _mq: GroupConfig['mq'] = mq || ''
+      // 後代選擇器
+      let _selector: GroupConfig['selector'] = r[3] || ''
+
+      // 後代選擇器為媒體查詢
+      if (_selector[0] === '@') {
+        _mq = _selector
+        _selector = selector
+      }
+
+      if (_selector) {
+        // 替換 _$
+        if (_selector.includes(replacedSymbol) && selector) {
+          _selector = _selector.replace(replacedSymbol, selector)
+        }
+        else if (selector) {
+          _selector = selector + _selector
+        }
+      }
+      else if (selector) {
+        _selector = selector
+      }
+
+      try {
+        otherGroup.push(
+          group({
+            parent: _parent,
+            cls: r[2].split(';').join(' '),
+            selector: _selector,
+            mq: _mq,
+            scope,
+          }),
+        )
+      }
+      catch (error) {
+        console.log(target, error)
+      }
+    }
+  })
+ 
+  const styles = unitArr.join(';')
+ 
+  const buildCls = `${scope ? `${scope}_` : ''}${parent || ''}{${styles}}${selector || ''}${mq || ''}`
+ 
+  return `${buildCls}${otherGroup.length ? ` ${otherGroup.join(' ')}` : ''}`
+}
+ 
+interface ToLineOptions {
+  /** 範圍 */
+  scope: string
+  /** 是否印出結果 */
+  showLog: boolean
+}
+ 
+/**
+ * Generates a line of styles based on the given object and options.
+ *
+ * @param {Record<string, string>} obj - The object containing the selectors and styles.
+ * @param {Partial<ToLineOptions>} [options] - The optional options for generating the line.
+ * @returns {string} - The generated line of styles.
+ */
+function toLine(obj: Record<string, string>, options: Partial<ToLineOptions> = {}): string {
+  const styles = Object.entries(obj).reduce<string[]>((cls, [selector, styles]) => {
+    const temp = selector.replace(replacedSymbol, '')
+    // 以下結尾視為先代選擇器
+    if (['_', '>', '~', '+'].includes(temp.charAt(temp.length - 1))) {
+      styles = group({
+        parent: selector,
+        selector: '',
+        cls: styles,
+        scope: options?.scope,
+        showLog: options?.showLog,
+      })
+    }
+    // 以下開頭視為後代選擇器
+    else if (['_', '>', '~', '+', ':', '[', '@', '!'].includes(temp[0]) || options?.scope) {
+      styles = group({
+        selector,
+        cls: styles,
+        scope: options?.scope,
+        showLog: options?.showLog,
+      })
+    }
+ 
+    return cls.concat(styles)
+  }, [])
+ 
+  // 印出結果
+  if (options.showLog) console.log('toLine', styles)
+ 
+  // 合併樣式
+  return styles.join(' ')
+}
+ 
+export { literal as cls, group, toLine }
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/mastercss/helpers/coverage/prettify.css b/packages/mastercss/helpers/coverage/prettify.css new file mode 100644 index 0000000..b317a7c --- /dev/null +++ b/packages/mastercss/helpers/coverage/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/packages/mastercss/helpers/coverage/prettify.js b/packages/mastercss/helpers/coverage/prettify.js new file mode 100644 index 0000000..b322523 --- /dev/null +++ b/packages/mastercss/helpers/coverage/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/packages/mastercss/helpers/coverage/sort-arrow-sprite.png b/packages/mastercss/helpers/coverage/sort-arrow-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed68316eb3f65dec9063332d2f69bf3093bbfab GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qh}Z>jv*C{$p!i!8j}?a+@3A= zIAGwzjijN=FBi!|L1t?LM;Q;gkwn>2cAy-KV{dn nf0J1DIvEHQu*n~6U}x}qyky7vi4|9XhBJ7&`njxgN@xNA8m%nc literal 0 HcmV?d00001 diff --git a/packages/mastercss/helpers/coverage/sorter.js b/packages/mastercss/helpers/coverage/sorter.js new file mode 100644 index 0000000..2bb296a --- /dev/null +++ b/packages/mastercss/helpers/coverage/sorter.js @@ -0,0 +1,196 @@ +/* eslint-disable */ +var addSorting = (function() { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + if ( + row.textContent + .toLowerCase() + .includes(searchValue.toLowerCase()) + ) { + row.style.display = ''; + } else { + row.style.display = 'none'; + } + } + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = + colNode.innerHTML + ''; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/packages/mastercss/helpers/package.json b/packages/mastercss/helpers/package.json new file mode 100644 index 0000000..cbc80bd --- /dev/null +++ b/packages/mastercss/helpers/package.json @@ -0,0 +1,38 @@ +{ + "name": "@alanlu-dev/mastercss-helpers", + "type": "module", + "version": "0.0.0", + "description": "A collection of utility functions for Master CSS.", + "author": "Alan Lu (https://github.com/alanlu-zyl)", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/alanlu-dev/web-kit.git", + "directory": "packages/mastercss/helpers" + }, + "bugs": { + "url": "https://github.com/alanlu-dev/web-kit/issues" + }, + "exports": { + ".": { + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + } + }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "files": [ + "dist" + ], + "scripts": { + "postinstall": "pnpm run build", + "build:clean": "npx rimraf --glob ./dist", + "build": "unbuild --minify", + "dev": "unbuild --stub", + "lint:eslint": "eslint --fix .", + "lint:prettier": "prettier --ignore-path ../../../.prettierignore --write .", + "lint": "pnpm lint:eslint && pnpm lint:prettier", + "test": "vitest run", + "coverage": "vitest run --coverage" + } +} diff --git a/packages/mastercss/helpers/src/index.test.ts b/packages/mastercss/helpers/src/index.test.ts new file mode 100644 index 0000000..30f9c5e --- /dev/null +++ b/packages/mastercss/helpers/src/index.test.ts @@ -0,0 +1,34 @@ +import { cls, group, toLine } from './index' + +describe('cls function', () => { + it('should return a string with tokens inserted', () => { + const result = cls`Hello, ${'World'}!` + expect(result).toBe('Hello, World!') + }) +}) + +describe('group function', () => { + it('should return a CSS group string based on the provided config', () => { + const config = { + parent: 'parent', + cls: 'class', + selector: 'selector', + } + const result = group(config) + expect(result).toBe('parent{class}selector') + }) +}) + +describe('toLine function', () => { + it('should return a line of styles based on the given object and options', () => { + const obj = { + '.selector': 'style', + } + const options = { + scope: 'scope', + showLog: false, + } + const result = toLine(obj, options) + expect(result).toBe('scope_{style}.selector') + }) +}) diff --git a/packages/mastercss/helpers/src/index.ts b/packages/mastercss/helpers/src/index.ts new file mode 100644 index 0000000..8b210f5 --- /dev/null +++ b/packages/mastercss/helpers/src/index.ts @@ -0,0 +1,171 @@ +/** + * 一個函數,它接受“strings”數組和“tokens”作為參數並返回一個字符串。 + * + * @param {TemplateStringsArray} strings - 用作模板的字符串數組。 + * @param {any[]} tokens - 要插入到模板中的標記數組。 + * @return {string} - 將標記插入模板後得到的字符串。 + */ +function literal(strings: TemplateStringsArray, ...tokens: any[]): string { + return strings + .reduce((result, value, index) => result + value + (tokens[index] || ''), '') + .replace(/\/\*[\s\S]*?\*\//gm, '') // 允許註解 + .replace(/(?:\n(?:\s*))+/g, ' ') + .trim() +} + +const replacedSymbol = '_$' +const replacedConnectMainSymbol = '_$$' + +interface GroupConfig { + /** 先代選擇器 */ + parent?: string + /** 樣式 */ + cls: string + /** 後代選擇器 */ + selector: string + /** 媒體選擇器 */ + mq?: string + /** 範圍 */ + scope?: string + /** 是否印出結果 */ + showLog?: boolean +} + +/** + * 根據提供的配置生成 CSS 組字符串。 + * + * @param config - 用於生成 CSS 組字符串的配置對象。 + * @returns CSS 組字符串。 + */ +function group(config: GroupConfig): string { + const { parent, selector, cls, mq, scope } = config + + const unitArr: string[] = [] + const otherGroup: string[] = [] + + // 依空格拆分 + cls.split(' ').forEach((target) => { + // 如果非群組,直接新增 + if (!target.includes('{')) { + unitArr.push(target) + } + // 否則進行群組處理 + else { + // 先代選擇器 群組樣式 後代選擇器 + const reg = /^(.+){0,1}{(.+)}(.+){0,1}$/ + const r = target.match(reg)! + + // 先代選擇器 + let _parent: GroupConfig['parent'] = r[1] || '' + if (_parent) { + if (_parent.includes(replacedConnectMainSymbol) && parent) { + const [lastCharacter, previousCharacters] = [parent.slice(-1), parent.slice(0, -1)] + _parent = _parent.replace(replacedConnectMainSymbol, previousCharacters) + lastCharacter + } + else if (_parent.includes(replacedSymbol) && parent) { + _parent = _parent.replace(replacedSymbol, parent) + } + else if (parent) { + _parent = parent + _parent + } + } + else if (parent) { + _parent = parent + } + + // 媒體選擇器 + let _mq: GroupConfig['mq'] = mq || '' + // 後代選擇器 + let _selector: GroupConfig['selector'] = r[3] || '' + + // 後代選擇器為媒體查詢 + if (_selector[0] === '@') { + _mq = _selector + _selector = selector + } + + if (_selector) { + // 替換 _$ + if (_selector.includes(replacedSymbol) && selector) { + _selector = _selector.replace(replacedSymbol, selector) + } + else if (selector) { + _selector = selector + _selector + } + } + else if (selector) { + _selector = selector + } + + try { + otherGroup.push( + group({ + parent: _parent, + cls: r[2].split(';').join(' '), + selector: _selector, + mq: _mq, + scope, + }), + ) + } + catch (error) { + console.log(target, error) + } + } + }) + + const styles = unitArr.join(';') + + const buildCls = `${scope ? `${scope}_` : ''}${parent || ''}{${styles}}${selector || ''}${mq || ''}` + + return `${buildCls}${otherGroup.length ? ` ${otherGroup.join(' ')}` : ''}` +} + +interface ToLineOptions { + /** 範圍 */ + scope: string + /** 是否印出結果 */ + showLog: boolean +} + +/** + * Generates a line of styles based on the given object and options. + * + * @param {Record} obj - The object containing the selectors and styles. + * @param {Partial} [options] - The optional options for generating the line. + * @returns {string} - The generated line of styles. + */ +function toLine(obj: Record, options: Partial = {}): string { + const styles = Object.entries(obj).reduce((cls, [selector, styles]) => { + const temp = selector.replace(replacedSymbol, '') + // 以下結尾視為先代選擇器 + if (['_', '>', '~', '+'].includes(temp.charAt(temp.length - 1))) { + styles = group({ + parent: selector, + selector: '', + cls: styles, + scope: options?.scope, + showLog: options?.showLog, + }) + } + // 以下開頭視為後代選擇器 + else if (['_', '>', '~', '+', ':', '[', '@', '!'].includes(temp[0]) || options?.scope) { + styles = group({ + selector, + cls: styles, + scope: options?.scope, + showLog: options?.showLog, + }) + } + + return cls.concat(styles) + }, []) + + // 印出結果 + if (options.showLog) console.log('toLine', styles) + + // 合併樣式 + return styles.join(' ') +} + +export { literal as cls, group, toLine } diff --git a/packages/mastercss/helpers/vitest.config.ts b/packages/mastercss/helpers/vitest.config.ts new file mode 100644 index 0000000..1e37caf --- /dev/null +++ b/packages/mastercss/helpers/vitest.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + globals: true, + coverage: { + include: ['src/**'], + }, + }, +}) diff --git a/packages/scss/README.md b/packages/scss/README.md new file mode 100644 index 0000000..de81320 --- /dev/null +++ b/packages/scss/README.md @@ -0,0 +1,80 @@ +# @alanlu-dev/scss + +Shareable SCSS configuration. + +## Installation + +```bash +pnpm add -D @alanlu-dev/scss +``` + +## Usage + +### Nuxt.js + +Create a `nuxt.config.js` file in the root of your project: + +```js +export default defineNuxtConfig({ + css: [ + '@alanlu-dev/scss', + ], + vite: { + css: { + preprocessorOptions: { + scss: { + additionalData: '@use "@alanlu-dev/scss/src/abstracts" as *;', + }, + }, + }, + }, +}) +``` + +## SCSS-7-1-pattern + +### File names + +* Start your file name with an underscore +* Use hyphens for your file name: `_user-profile.scss` + +### File architecture + +#### Abstracts + +* The `abstracts` folder gathers all Sass tools and helpers used across the project +* Every global variable, function, mixin and placeholder should be put in here + +#### Vendors + +* The `vendors` folder containing all the CSS files from external libraries and frameworks + +#### Base + +* The `base` folder holds what we might call the boilerplate code for the project +* In there, you might find the reset file, some typographic rules, and probably a stylesheet defining some standard styles for commonly used HTML elements + +#### Components + +* The `components` folder is more focused on widgets +* It contains all kind of specific modules like a slider, a loader, a widget, and basically anything along those lines +* There are usually a lot of files in components since the whole application should be mostly composed of tiny modules + +#### Layout + +* The `layout` folder contains everything that takes part in laying out the application +* This folder could have stylesheets for the main parts of the application + +#### Vendors Extensions + +* If you have to override or extend a section of any vendor, you need to use the `vendors-extensions` folder +* Inside this folder the files must be named exactly as the vendors they overwrite + +#### Pages + +* If you have page-specific styles, it is better to put them in a `pages` folder, in a file named after the page + +#### Themes + +* On large applications, it is not unusual to have different themes based on a state +* Add inside the `themes` folder a different file for every state diff --git a/packages/scss/package.json b/packages/scss/package.json new file mode 100644 index 0000000..30845bc --- /dev/null +++ b/packages/scss/package.json @@ -0,0 +1,35 @@ +{ + "name": "@alanlu-dev/scss", + "type": "commonjs", + "version": "0.0.0", + "description": "Shareable SCSS configuration.", + "author": "Alan Lu (https://github.com/alanlu-zyl)", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/alanlu-dev/web-kit.git", + "directory": "packages/scss" + }, + "bugs": { + "url": "https://github.com/alanlu-dev/web-kit/issues" + }, + "main": "dist/main.css", + "module": "src/main.scss", + "files": [ + "dist", + "src" + ], + "scripts": { + "build:clean": "npx rimraf --glob ./dist", + "build": "sass --no-source-map --style=compressed src:dist", + "dev": "sass --watch --update --style=expanded src:dist", + "lint": "stylelint --allow-empty-input --fix ./src/**/*.scss" + }, + "peerDependencies": { + "sass": "^1.72.0" + }, + "devDependencies": { + "@alanlu-dev/stylelint-config": "workspace:*", + "sass": "^1.72.0" + } +} diff --git a/packages/scss/src/abstracts/_animations.scss b/packages/scss/src/abstracts/_animations.scss new file mode 100644 index 0000000..0b82995 --- /dev/null +++ b/packages/scss/src/abstracts/_animations.scss @@ -0,0 +1,16 @@ +// Animations + +// Rotate an element 360deg +.rotate-me { + animation: rotating 1s linear infinite; +} + +@keyframes rotating { + from { + transform: rotate(0deg); + } + + to { + transform: rotate(360deg); + } +} diff --git a/packages/scss/src/abstracts/_classes.scss b/packages/scss/src/abstracts/_classes.scss new file mode 100644 index 0000000..28c050a --- /dev/null +++ b/packages/scss/src/abstracts/_classes.scss @@ -0,0 +1,7 @@ +// Reusable Classes + +// Images +%center-image { + display: block; + margin: 0 auto; +} diff --git a/packages/scss/src/abstracts/_colors.scss b/packages/scss/src/abstracts/_colors.scss new file mode 100644 index 0000000..055583e --- /dev/null +++ b/packages/scss/src/abstracts/_colors.scss @@ -0,0 +1,18 @@ +// Colors + +// SCSS Color Variables | Named with this: http://chir.ag/projects/name-that-color +$white: #fff; +$pickled-bluewood: #2f404f; +$persian-red: #d32f2f; + +// Theme CSS Color Variables +:root { + --theme-text: #{$pickled-bluewood}; + --theme-background: #{$white}; + --theme-error: #{$persian-red}; +} + +// Theme SCSS Color Variables +$theme-text: var(--theme-text); +$theme-background: var(--theme-background); +$theme-error: var(--theme-error); diff --git a/packages/scss/src/abstracts/_index.scss b/packages/scss/src/abstracts/_index.scss new file mode 100644 index 0000000..be3b61e --- /dev/null +++ b/packages/scss/src/abstracts/_index.scss @@ -0,0 +1,6 @@ +@import 'variables'; +@import 'colors'; +@import 'mixins'; +@import 'placeholders'; +@import 'classes'; +@import 'animations'; diff --git a/packages/scss/src/abstracts/_mixins.scss b/packages/scss/src/abstracts/_mixins.scss new file mode 100644 index 0000000..95b6b2a --- /dev/null +++ b/packages/scss/src/abstracts/_mixins.scss @@ -0,0 +1,11 @@ +// SCSS Mixins +@import 'mixins/precise-control-responsive-typography'; + +// Fonts +@mixin font-style($size, $color, $weight: 400, $style: normal, $align: left) { + font-size: $size; + font-style: $style; + font-weight: $weight; + color: $color; + text-align: $align; +} diff --git a/packages/scss/src/abstracts/_placeholders.scss b/packages/scss/src/abstracts/_placeholders.scss new file mode 100644 index 0000000..9bbf41e --- /dev/null +++ b/packages/scss/src/abstracts/_placeholders.scss @@ -0,0 +1,9 @@ +// SCSS Placeholders + +// Forms +%reset-input { + background: transparent !important; + border: 0 !important; + outline: 0 !important; + box-shadow: none !important; +} diff --git a/packages/scss/src/abstracts/_variables.scss b/packages/scss/src/abstracts/_variables.scss new file mode 100644 index 0000000..3a8eef7 --- /dev/null +++ b/packages/scss/src/abstracts/_variables.scss @@ -0,0 +1,5 @@ +// SCSS Variables (except the color variables) + +// General +$positions: top, right, bottom, left; +$z-index: 2147483647; diff --git a/packages/scss/src/abstracts/mixins/_precise-control-responsive-typography.scss b/packages/scss/src/abstracts/mixins/_precise-control-responsive-typography.scss new file mode 100644 index 0000000..8d3d69c --- /dev/null +++ b/packages/scss/src/abstracts/mixins/_precise-control-responsive-typography.scss @@ -0,0 +1,37 @@ +// ============================================================================= +// PRECISE CONTROL OVER RESPONSIVE TYPOGRAPHY FOR SASS +// --------------------------------------------------- +// Indrek Paas @indrekpaas +// Inspired by Mike Riethmuller's Precise control over responsive typography +// https://www.madebymike.com.au/writing/precise-control-responsive-typography/ +// Borrowed `strip-unit` function from Hugo Giraudel +// https://css-tricks.com/snippets/sass/strip-unit-function/ +// ============================================================================= + +@use 'sass:math'; + +@mixin fluid-type($properties, $min-vw, $max-vw, $min-value, $max-value) { + @each $property in $properties { + #{$property}: $min-value; + } + + @media (min-width: $min-vw) { + @each $property in $properties { + #{$property}: calc(#{$min-value} + #{strip-unit($max-value - $min-value)} * (100vw - #{$min-vw}) / #{strip-unit($max-vw - $min-vw)}); + } + } + + @media (min-width: $max-vw) { + @each $property in $properties { + #{$property}: $max-value; + } + } +} + +@function strip-unit($number) { + @if type-of($number) == 'number' and not unitless($number) { + @return math.div($number, ($number * 0 + 1)); + } + + @return $number; +} diff --git a/packages/scss/src/base/_base.scss b/packages/scss/src/base/_base.scss new file mode 100644 index 0000000..f878cf8 --- /dev/null +++ b/packages/scss/src/base/_base.scss @@ -0,0 +1,7 @@ +// Styles for commonly used HTML elements + +// Root elements +html, +body { + background: $theme-background; +} diff --git a/packages/scss/src/base/_normalize.scss b/packages/scss/src/base/_normalize.scss new file mode 100644 index 0000000..e69de29 diff --git a/packages/scss/src/base/_reset.scss b/packages/scss/src/base/_reset.scss new file mode 100644 index 0000000..2b46dcd --- /dev/null +++ b/packages/scss/src/base/_reset.scss @@ -0,0 +1,15 @@ +// Reset and normalize styles + +// Root elements +// html, +// body { +// width: 100vw; +// height: 100vh; +// padding: 0; +// margin: 0; +// overflow-x: hidden; +// overflow-y: auto; +// overscroll-behavior-y: contain; +// user-select: none; +// -webkit-tap-highlight-color: transparent; +// } diff --git a/packages/scss/src/base/_typography.scss b/packages/scss/src/base/_typography.scss new file mode 100644 index 0000000..be1e98c --- /dev/null +++ b/packages/scss/src/base/_typography.scss @@ -0,0 +1,13 @@ +// Typography rules + +// Root elements +// :root { +// --font-family-sans-serif: 'Open Sans', sans-serif; +// } + +// html, +// body { +// font-family: var(--font-family-sans-serif) !important; +// font-weight: 400; +// color: $theme-text; +// } diff --git a/packages/scss/src/components/_buttons.scss b/packages/scss/src/components/_buttons.scss new file mode 100644 index 0000000..c202a63 --- /dev/null +++ b/packages/scss/src/components/_buttons.scss @@ -0,0 +1 @@ +// Buttons diff --git a/packages/scss/src/components/_dropdown.scss b/packages/scss/src/components/_dropdown.scss new file mode 100644 index 0000000..1cfb68f --- /dev/null +++ b/packages/scss/src/components/_dropdown.scss @@ -0,0 +1 @@ +// Dropdown diff --git a/packages/scss/src/components/_loaders.scss b/packages/scss/src/components/_loaders.scss new file mode 100644 index 0000000..5688e02 --- /dev/null +++ b/packages/scss/src/components/_loaders.scss @@ -0,0 +1 @@ +// Loaders diff --git a/packages/scss/src/components/_modals.scss b/packages/scss/src/components/_modals.scss new file mode 100644 index 0000000..97c790d --- /dev/null +++ b/packages/scss/src/components/_modals.scss @@ -0,0 +1 @@ +// Modals diff --git a/packages/scss/src/layout/_footer.scss b/packages/scss/src/layout/_footer.scss new file mode 100644 index 0000000..44848fd --- /dev/null +++ b/packages/scss/src/layout/_footer.scss @@ -0,0 +1 @@ +// Footer diff --git a/packages/scss/src/layout/_forms.scss b/packages/scss/src/layout/_forms.scss new file mode 100644 index 0000000..99620ea --- /dev/null +++ b/packages/scss/src/layout/_forms.scss @@ -0,0 +1 @@ +// Forms and form inputs styling diff --git a/packages/scss/src/layout/_grid.scss b/packages/scss/src/layout/_grid.scss new file mode 100644 index 0000000..249d8f8 --- /dev/null +++ b/packages/scss/src/layout/_grid.scss @@ -0,0 +1 @@ +// Custom grid system diff --git a/packages/scss/src/layout/_header.scss b/packages/scss/src/layout/_header.scss new file mode 100644 index 0000000..e88fc61 --- /dev/null +++ b/packages/scss/src/layout/_header.scss @@ -0,0 +1 @@ +// Header diff --git a/packages/scss/src/layout/_menu.scss b/packages/scss/src/layout/_menu.scss new file mode 100644 index 0000000..e5f7d0a --- /dev/null +++ b/packages/scss/src/layout/_menu.scss @@ -0,0 +1 @@ +// Menu styling diff --git a/packages/scss/src/layout/_tables.scss b/packages/scss/src/layout/_tables.scss new file mode 100644 index 0000000..a1cc501 --- /dev/null +++ b/packages/scss/src/layout/_tables.scss @@ -0,0 +1 @@ +// Tables styling diff --git a/packages/scss/src/main.scss b/packages/scss/src/main.scss new file mode 100644 index 0000000..7b429db --- /dev/null +++ b/packages/scss/src/main.scss @@ -0,0 +1,37 @@ +// Abstracts +@import 'abstracts'; + +// Vendors +@import 'vendors/example-library'; + +// Base +@import 'base/base'; +@import 'base/reset'; +@import 'base/typography'; + +// Components (alphabetical order) +@import 'components/buttons'; +@import 'components/dropdown'; +@import 'components/loaders'; +@import 'components/modals'; + +// Layout (alphabetical order) +@import 'layout/footer'; +@import 'layout/forms'; +@import 'layout/grid'; +@import 'layout/header'; +@import 'layout/menu'; +@import 'layout/tables'; + +// Vendors Extensions (alphabetical order) +@import 'vendors-extensions/example-library'; +@import 'vendors-extensions/formkit'; + +// Pages (alphabetical order) +@import 'pages/contact'; +@import 'pages/home'; +@import 'pages/user-profile'; + +// Themes (alphabetical order) +@import 'themes/admin'; +@import 'themes/authenticated'; diff --git a/packages/scss/src/pages/_contact.scss b/packages/scss/src/pages/_contact.scss new file mode 100644 index 0000000..b51a503 --- /dev/null +++ b/packages/scss/src/pages/_contact.scss @@ -0,0 +1 @@ +// Specific style for contact page diff --git a/packages/scss/src/pages/_home.scss b/packages/scss/src/pages/_home.scss new file mode 100644 index 0000000..cf68a1e --- /dev/null +++ b/packages/scss/src/pages/_home.scss @@ -0,0 +1 @@ +// Specific style for home page diff --git a/packages/scss/src/pages/_user-profile.scss b/packages/scss/src/pages/_user-profile.scss new file mode 100644 index 0000000..acad258 --- /dev/null +++ b/packages/scss/src/pages/_user-profile.scss @@ -0,0 +1 @@ +// Specific style for user profile page diff --git a/packages/scss/src/themes/_admin.scss b/packages/scss/src/themes/_admin.scss new file mode 100644 index 0000000..ce0cee1 --- /dev/null +++ b/packages/scss/src/themes/_admin.scss @@ -0,0 +1 @@ +// Custom style when the user is admin diff --git a/packages/scss/src/themes/_authenticated.scss b/packages/scss/src/themes/_authenticated.scss new file mode 100644 index 0000000..16486cd --- /dev/null +++ b/packages/scss/src/themes/_authenticated.scss @@ -0,0 +1 @@ +// Custom style when the user is logged in diff --git a/packages/scss/src/vendors-extensions/_example-library.scss b/packages/scss/src/vendors-extensions/_example-library.scss new file mode 100644 index 0000000..0048463 --- /dev/null +++ b/packages/scss/src/vendors-extensions/_example-library.scss @@ -0,0 +1 @@ +// Overwrite or extend the CSS of a library or a framework diff --git a/packages/scss/src/vendors-extensions/_formkit.scss b/packages/scss/src/vendors-extensions/_formkit.scss new file mode 100644 index 0000000..77878bc --- /dev/null +++ b/packages/scss/src/vendors-extensions/_formkit.scss @@ -0,0 +1,10 @@ +// formkit floatingLabels +[data-floating-label='true'] input:-webkit-autofill ~ .formkit-label { + bottom: 100%; + z-index: 2; + font-size: 0.7rem; + background-color: white; + transition-delay: 0s; + transition-duration: 0.25s; + transform: translateY(50%); +} diff --git a/packages/scss/src/vendors/_example-library.scss b/packages/scss/src/vendors/_example-library.scss new file mode 100644 index 0000000..368a5dc --- /dev/null +++ b/packages/scss/src/vendors/_example-library.scss @@ -0,0 +1 @@ +// The CSS code of a library or a framework diff --git a/packages/types/.eslintrc.cjs b/packages/types/.eslintrc.cjs new file mode 100644 index 0000000..761875f --- /dev/null +++ b/packages/types/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['@alanlu-dev/base'], +} diff --git a/packages/types/README.md b/packages/types/README.md new file mode 100644 index 0000000..21a28e3 --- /dev/null +++ b/packages/types/README.md @@ -0,0 +1,21 @@ +# @alanlu-dev/types + +Shareable TypeScript types. + +## Installation + +```bash +pnpm add -D @alanlu-dev/types +``` + +## Usage + +Create a `tsconfig.json` file in the root of your project: + +```json +{ + "compilerOptions": { + "types": ["@alanlu-dev/types/globals"] + } +} +``` diff --git a/packages/types/globals.d.ts b/packages/types/globals.d.ts new file mode 100644 index 0000000..e64566d --- /dev/null +++ b/packages/types/globals.d.ts @@ -0,0 +1,45 @@ +/** + * 巢狀物件 + * @see https://medium.com/onedegree-tech-blog/feat-typescript-conditional-types-4a47b4816ce2 + */ +type Simplify = T extends Record ? { [K in keyof T]: Simplify } : T + +// 提取特定 type 型別的助手類型函數 +type ExtractSchemaType = T extends { type: U } ? T : never + +interface IOption { + label: string + value: string +} + +/** + * json-patch + * @see https://www.npmjs.com/package/@types/json-patch + */ +type OpPatch = AddPatch | RemovePatch | ReplacePatch | MovePatch | CopyPatch | TestPatch +interface Patch { + path: string +} +interface AddPatch extends Patch { + op: 'add' + value: any +} +interface RemovePatch extends Patch { + op: 'remove' +} +interface ReplacePatch extends Patch { + op: 'replace' + value: any +} +interface MovePatch extends Patch { + op: 'move' + from: string +} +interface CopyPatch extends Patch { + op: 'copy' + from: string +} +interface TestPatch extends Patch { + op: 'test' + value: any +} diff --git a/packages/types/package.json b/packages/types/package.json new file mode 100644 index 0000000..2870843 --- /dev/null +++ b/packages/types/package.json @@ -0,0 +1,38 @@ +{ + "name": "@alanlu-dev/types", + "type": "module", + "version": "0.0.0", + "description": "Shareable TypeScript types.", + "author": "Alan Lu (https://github.com/alanlu-zyl)", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/alanlu-dev/web-kit.git", + "directory": "packages/types" + }, + "bugs": { + "url": "https://github.com/alanlu-dev/web-kit/issues" + }, + "exports": { + "./globals": { + "types": "./globals.d.ts" + } + }, + "files": [ + "globals.d.ts" + ], + "scripts": { + "lint:eslint": "eslint --fix .", + "lint:prettier": "prettier --ignore-path ../../.prettierignore --write .", + "lint": "pnpm lint:eslint && pnpm lint:prettier" + }, + "peerDependencies": { + "@types/node": "^20.11.30", + "typescript": "^5.4.3" + }, + "devDependencies": { + "@alanlu-dev/eslint-config-base": "workspace:*", + "@types/node": "^20.11.30", + "typescript": "^5.4.3" + } +} diff --git a/packages/utils/.eslintrc.cjs b/packages/utils/.eslintrc.cjs new file mode 100644 index 0000000..761875f --- /dev/null +++ b/packages/utils/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['@alanlu-dev/base'], +} diff --git a/packages/utils/README.md b/packages/utils/README.md new file mode 100644 index 0000000..4b4c9ec --- /dev/null +++ b/packages/utils/README.md @@ -0,0 +1,38 @@ +# @alanlu-dev/utils + +A collection of utility functions. + +## Installation + +```bash +pnpm add @alanlu-dev/utils +``` + +## API + +### obj + +```js +import { arrayToObject, getDefaultFromProps, getErrorMessage, getPropsFromObjectWithFilter, normalizeOptions, obj2QueryString, queryString2Obj, setCallback } from '@alanlu-dev/utils/obj' +``` + +### string + +```js +import { formatThousand, replaceImgTagIfSrcContains, replaceRelativePathsWithAbsolute } from '@alanlu-dev/utils/string' +``` + +### time + +```js +import { formatCountdown, getBusinessStatus } from '@alanlu-dev/utils/time' +``` + +### validator + +```js +import { isGuiNumberValid } from '@alanlu-dev/utils/validator' + +isGuiNumberValid('12345675') // true +isGuiNumberValid('12345676') // false +``` diff --git a/packages/utils/build.config.ts b/packages/utils/build.config.ts new file mode 100644 index 0000000..260924a --- /dev/null +++ b/packages/utils/build.config.ts @@ -0,0 +1,21 @@ +import { defineBuildConfig } from 'unbuild' + +export default defineBuildConfig({ + // If entries is not provided, will be automatically inferred from package.json + entries: [ + 'src/index.ts', + { input: 'src/obj/index.ts', outDir: 'dist/obj', format: 'esm' }, + { input: 'src/obj/index.ts', outDir: 'dist/obj', format: 'cjs', ext: 'cjs', declaration: false }, + { input: 'src/string/index.ts', outDir: 'dist/string', format: 'esm' }, + { input: 'src/string/index.ts', outDir: 'dist/string', format: 'cjs', ext: 'cjs', declaration: false }, + { input: 'src/time/index.ts', outDir: 'dist/time', format: 'esm' }, + { input: 'src/time/index.ts', outDir: 'dist/time', format: 'cjs', ext: 'cjs', declaration: false }, + { input: 'src/validator/index.ts', outDir: 'dist/validator', format: 'esm' }, + { input: 'src/validator/index.ts', outDir: 'dist/validator', format: 'cjs', ext: 'cjs', declaration: false }, + ], + declaration: true, // Generates .d.ts declaration file + rollup: { + emitCJS: true, + }, + externals: [], +}) diff --git a/packages/utils/coverage/base.css b/packages/utils/coverage/base.css new file mode 100644 index 0000000..f418035 --- /dev/null +++ b/packages/utils/coverage/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/packages/utils/coverage/block-navigation.js b/packages/utils/coverage/block-navigation.js new file mode 100644 index 0000000..cc12130 --- /dev/null +++ b/packages/utils/coverage/block-navigation.js @@ -0,0 +1,87 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + if ( + document.getElementById('fileSearch') === document.activeElement && + document.activeElement != null + ) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/packages/utils/coverage/clover.xml b/packages/utils/coverage/clover.xml new file mode 100644 index 0000000..1067183 --- /dev/null +++ b/packages/utils/coverage/clover.xml @@ -0,0 +1,349 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/utils/coverage/coverage-final.json b/packages/utils/coverage/coverage-final.json new file mode 100644 index 0000000..199750e --- /dev/null +++ b/packages/utils/coverage/coverage-final.json @@ -0,0 +1,9 @@ +{"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/index.ts": {"path":"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/index.ts","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":21}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":24}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":22}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":27}}},"s":{"0":0,"1":0,"2":0,"3":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":27}},"locations":[{"start":{"line":1,"column":0},"end":{"line":4,"column":27}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":4,"column":27}},"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":27}},"line":1}},"f":{"0":0}} +,"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/obj/callback.ts": {"path":"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/obj/callback.ts","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":61}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":0}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":134}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":39}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":23}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":25}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":25}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":7}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":14}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":1}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":0}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":22}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":12,"column":22}},"locations":[{"start":{"line":1,"column":0},"end":{"line":12,"column":22}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":12,"column":22}},"loc":{"start":{"line":1,"column":0},"end":{"line":12,"column":22}},"line":1}},"f":{"0":0}} +,"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/obj/error-msg.ts": {"path":"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/obj/error-msg.ts","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":28}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":17}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":1}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":0}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":72}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":140}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":1}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":0}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":68}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":55}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":0}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":7}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":48}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":3}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":9}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":65}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":49}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":40}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":3}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":1}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":0}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":42}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":42}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":1}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":0}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":26}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":26,"column":26}},"locations":[{"start":{"line":1,"column":0},"end":{"line":26,"column":26}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":26,"column":26}},"loc":{"start":{"line":1,"column":0},"end":{"line":26,"column":26}},"line":1}},"f":{"0":0}} +,"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/obj/index.ts": {"path":"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/obj/index.ts","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":26}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":27}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":0}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":3}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":93}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":65}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":68}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":63}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":3}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":126}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":94}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":30}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":15}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":8}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":10}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":16}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":21}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":3}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":1}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":0}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":64}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":24}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":28}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":113}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":14}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":1}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":0}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":61}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":21}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":78}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":34}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":78}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":14}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":8}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":1}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":0}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":120}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":22}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":20}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":70}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":21}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":16}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":6}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":26}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":3}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":1}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":0}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":79}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":49,"column":79}},"locations":[{"start":{"line":1,"column":0},"end":{"line":49,"column":79}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":49,"column":79}},"loc":{"start":{"line":1,"column":0},"end":{"line":49,"column":79}},"line":1}},"f":{"0":0}} +,"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/obj/options.ts": {"path":"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/obj/options.ts","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":69}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":33}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":26}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":36}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":49}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":1}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":32}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":23}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":15}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":16}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":11}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":22}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":25}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":18}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":22}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":1}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":0}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":62}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":11}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":31}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":36}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":69}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":16}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":32}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":32}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":9}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":7}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":38}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":68}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":33}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":35}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":37}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":12}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":9}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":7}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":19}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":6}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":3}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":76}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":1}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":0}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":27}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":43,"column":27}},"locations":[{"start":{"line":1,"column":0},"end":{"line":43,"column":27}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":43,"column":27}},"loc":{"start":{"line":1,"column":0},"end":{"line":43,"column":27}},"line":1}},"f":{"0":0}} +,"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/string/index.ts": {"path":"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/string/index.ts","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":41}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":24}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":63}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":1}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":0}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":81}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":39}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":58}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":0}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":11}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":61}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":16}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":93}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":15}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":55}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":5}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":16}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":4}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":1}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":0}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":96}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":34}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":48}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":0}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":20}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":53}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":24}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":34}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":21}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":22}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":5}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":16}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":4}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":1}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":0}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":87}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":36,"column":87}},"locations":[{"start":{"line":1,"column":0},"end":{"line":36,"column":87}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":36,"column":87}},"loc":{"start":{"line":1,"column":0},"end":{"line":36,"column":87}},"line":1}},"f":{"0":0}} +,"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/time/index.ts": {"path":"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/time/index.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":128}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":23}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":66}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":62}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":0}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":13}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":29}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":42}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":3}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":0}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":24}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":47}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":46}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":42}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":3}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":0}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":50}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":137}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":70}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":71}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":0}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":10}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":11}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":15}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":16}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":20}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":3}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":1}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":0}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":46}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":31}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":56}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":3}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":0}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":53}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":40}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":38}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":37}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":0}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":24}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":24}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":20}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":0}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":42}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":1}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":0}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":45}}},"s":{"0":12,"1":12,"2":12,"3":12,"4":12,"5":12,"6":12,"7":6,"8":6,"9":12,"10":12,"11":12,"12":5,"13":5,"14":5,"15":12,"16":12,"17":12,"18":12,"19":12,"20":12,"21":12,"22":12,"23":12,"24":12,"25":12,"26":12,"27":12,"28":1,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":1,"46":1},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":28,"column":1}},"locations":[{"start":{"line":1,"column":0},"end":{"line":28,"column":1}}]},"1":{"type":"branch","line":7,"loc":{"start":{"line":7,"column":28},"end":{"line":9,"column":3}},"locations":[{"start":{"line":7,"column":28},"end":{"line":9,"column":3}}]},"2":{"type":"branch","line":12,"loc":{"start":{"line":12,"column":12},"end":{"line":12,"column":46}},"locations":[{"start":{"line":12,"column":12},"end":{"line":12,"column":46}}]},"3":{"type":"branch","line":12,"loc":{"start":{"line":12,"column":46},"end":{"line":15,"column":3}},"locations":[{"start":{"line":12,"column":46},"end":{"line":15,"column":3}}]},"4":{"type":"branch","line":17,"loc":{"start":{"line":17,"column":24},"end":{"line":17,"column":50}},"locations":[{"start":{"line":17,"column":24},"end":{"line":17,"column":50}}]},"5":{"type":"branch","line":18,"loc":{"start":{"line":18,"column":21},"end":{"line":18,"column":35}},"locations":[{"start":{"line":18,"column":21},"end":{"line":18,"column":35}}]},"6":{"type":"branch","line":18,"loc":{"start":{"line":18,"column":30},"end":{"line":18,"column":137}},"locations":[{"start":{"line":18,"column":30},"end":{"line":18,"column":137}}]},"7":{"type":"branch","line":18,"loc":{"start":{"line":18,"column":41},"end":{"line":18,"column":91}},"locations":[{"start":{"line":18,"column":41},"end":{"line":18,"column":91}}]},"8":{"type":"branch","line":18,"loc":{"start":{"line":18,"column":87},"end":{"line":18,"column":137}},"locations":[{"start":{"line":18,"column":87},"end":{"line":18,"column":137}}]},"9":{"type":"branch","line":19,"loc":{"start":{"line":19,"column":23},"end":{"line":19,"column":37}},"locations":[{"start":{"line":19,"column":23},"end":{"line":19,"column":37}}]},"10":{"type":"branch","line":19,"loc":{"start":{"line":19,"column":32},"end":{"line":19,"column":70}},"locations":[{"start":{"line":19,"column":32},"end":{"line":19,"column":70}}]},"11":{"type":"branch","line":20,"loc":{"start":{"line":20,"column":26},"end":{"line":20,"column":71}},"locations":[{"start":{"line":20,"column":26},"end":{"line":20,"column":71}}]}},"b":{"0":[12],"1":[6],"2":[6],"3":[5],"4":[11],"5":[6],"6":[6],"7":[1],"8":[5],"9":[6],"10":[6],"11":[6]},"fnMap":{"0":{"name":"getBusinessStatus","decl":{"start":{"line":1,"column":0},"end":{"line":28,"column":1}},"loc":{"start":{"line":1,"column":0},"end":{"line":28,"column":1}},"line":1},"1":{"name":"formatCountdown","decl":{"start":{"line":30,"column":0},"end":{"line":45,"column":1}},"loc":{"start":{"line":30,"column":0},"end":{"line":45,"column":1}},"line":30}},"f":{"0":12,"1":0}} +,"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/validator/index.ts": {"path":"/home/zyldev/alanlu-dev/web-kit/packages/utils/src/validator/index.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":51}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":0}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":71}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":47}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":24}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":0}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":62}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":0}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":15}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":1}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":0}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":36}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":14}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":1}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":0}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":41}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":14}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":1}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":0}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":3}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":52}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":2}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":46}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":140}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":53}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":3}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":84}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":74}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":0}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":5}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":22}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":12}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":14}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":14}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":14}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":14}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":14}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":15}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":15}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":14}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":4}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":12}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":11}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":11}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":11}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":11}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":11}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":20}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":21}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":11}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":4}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":12}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":46}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":5}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":0}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":58}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":0}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":28}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":25}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":0}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":34}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":0}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":5}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":58}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":43}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":5}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":0}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":21}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":27}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":28}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":57}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":13}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":3}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":46}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":19}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":0}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":5}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":45}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":12}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":28}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":43}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":5}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":0}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":35}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":0}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":117}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":1}}},"s":{"0":1,"1":1,"2":14,"3":14,"4":14,"5":14,"6":14,"7":14,"8":14,"9":14,"10":1,"11":112,"12":112,"13":112,"14":1,"15":112,"16":112,"17":112,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":24,"28":22,"29":22,"30":22,"31":22,"32":22,"33":22,"34":22,"35":22,"36":22,"37":22,"38":22,"39":22,"40":22,"41":22,"42":22,"43":22,"44":22,"45":22,"46":22,"47":22,"48":22,"49":22,"50":22,"51":22,"52":22,"53":22,"54":22,"55":22,"56":22,"57":22,"58":22,"59":22,"60":24,"61":14,"62":14,"63":14,"64":14,"65":14,"66":14,"67":14,"68":14,"69":14,"70":14,"71":14,"72":14,"73":14,"74":14,"75":14,"76":14,"77":14,"78":14,"79":14,"80":14,"81":14,"82":14,"83":24,"84":24,"85":24,"86":24},"branchMap":{"0":{"type":"branch","line":3,"loc":{"start":{"line":3,"column":0},"end":{"line":10,"column":1}},"locations":[{"start":{"line":3,"column":0},"end":{"line":10,"column":1}}]},"1":{"type":"branch","line":7,"loc":{"start":{"line":7,"column":35},"end":{"line":7,"column":62}},"locations":[{"start":{"line":7,"column":35},"end":{"line":7,"column":62}}]},"2":{"type":"branch","line":12,"loc":{"start":{"line":12,"column":0},"end":{"line":14,"column":1}},"locations":[{"start":{"line":12,"column":0},"end":{"line":14,"column":1}}]},"3":{"type":"branch","line":16,"loc":{"start":{"line":16,"column":0},"end":{"line":18,"column":1}},"locations":[{"start":{"line":16,"column":0},"end":{"line":18,"column":1}}]},"4":{"type":"branch","line":27,"loc":{"start":{"line":27,"column":7},"end":{"line":87,"column":1}},"locations":[{"start":{"line":27,"column":7},"end":{"line":87,"column":1}}]},"5":{"type":"branch","line":28,"loc":{"start":{"line":28,"column":23},"end":{"line":28,"column":62}},"locations":[{"start":{"line":28,"column":23},"end":{"line":28,"column":62}}]},"6":{"type":"branch","line":28,"loc":{"start":{"line":28,"column":62},"end":{"line":28,"column":74}},"locations":[{"start":{"line":28,"column":62},"end":{"line":28,"column":74}}]},"7":{"type":"branch","line":28,"loc":{"start":{"line":28,"column":69},"end":{"line":61,"column":29}},"locations":[{"start":{"line":28,"column":69},"end":{"line":61,"column":29}}]},"8":{"type":"branch","line":61,"loc":{"start":{"line":61,"column":22},"end":{"line":61,"column":34}},"locations":[{"start":{"line":61,"column":22},"end":{"line":61,"column":34}}]},"9":{"type":"branch","line":61,"loc":{"start":{"line":61,"column":29},"end":{"line":84,"column":29}},"locations":[{"start":{"line":61,"column":29},"end":{"line":84,"column":29}}]},"10":{"type":"branch","line":84,"loc":{"start":{"line":84,"column":18},"end":{"line":84,"column":33}},"locations":[{"start":{"line":84,"column":18},"end":{"line":84,"column":33}}]},"11":{"type":"branch","line":84,"loc":{"start":{"line":84,"column":29},"end":{"line":84,"column":35}},"locations":[{"start":{"line":84,"column":29},"end":{"line":84,"column":35}}]},"12":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":32},"end":{"line":86,"column":117}},"locations":[{"start":{"line":86,"column":32},"end":{"line":86,"column":117}}]},"13":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":81},"end":{"line":86,"column":117}},"locations":[{"start":{"line":86,"column":81},"end":{"line":86,"column":117}}]},"14":{"type":"branch","line":71,"loc":{"start":{"line":71,"column":20},"end":{"line":71,"column":55}},"locations":[{"start":{"line":71,"column":20},"end":{"line":71,"column":55}}]},"15":{"type":"branch","line":74,"loc":{"start":{"line":74,"column":9},"end":{"line":74,"column":45}},"locations":[{"start":{"line":74,"column":9},"end":{"line":74,"column":45}}]}},"b":{"0":[14],"1":[112],"2":[112],"3":[112],"4":[24],"5":[8],"6":[2],"7":[22],"8":[8],"9":[14],"10":[7],"11":[7],"12":[7],"13":[6],"14":[112],"15":[112]},"fnMap":{"0":{"name":"zipWith","decl":{"start":{"line":3,"column":0},"end":{"line":10,"column":1}},"loc":{"start":{"line":3,"column":0},"end":{"line":10,"column":1}},"line":3},"1":{"name":"add","decl":{"start":{"line":12,"column":0},"end":{"line":14,"column":1}},"loc":{"start":{"line":12,"column":0},"end":{"line":14,"column":1}},"line":12},"2":{"name":"multiply","decl":{"start":{"line":16,"column":0},"end":{"line":18,"column":1}},"loc":{"start":{"line":16,"column":0},"end":{"line":18,"column":1}},"line":16},"3":{"name":"isGuiNumberValid","decl":{"start":{"line":27,"column":7},"end":{"line":87,"column":1}},"loc":{"start":{"line":27,"column":7},"end":{"line":87,"column":1}},"line":27}},"f":{"0":14,"1":112,"2":112,"3":24}} +} diff --git a/packages/utils/coverage/favicon.png b/packages/utils/coverage/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..c1525b811a167671e9de1fa78aab9f5c0b61cef7 GIT binary patch literal 445 zcmV;u0Yd(XP))rP{nL}Ln%S7`m{0DjX9TLF* zFCb$4Oi7vyLOydb!7n&^ItCzb-%BoB`=x@N2jll2Nj`kauio%aw_@fe&*}LqlFT43 z8doAAe))z_%=P%v^@JHp3Hjhj^6*Kr_h|g_Gr?ZAa&y>wxHE99Gk>A)2MplWz2xdG zy8VD2J|Uf#EAw*bo5O*PO_}X2Tob{%bUoO2G~T`@%S6qPyc}VkhV}UifBuRk>%5v( z)x7B{I~z*k<7dv#5tC+m{km(D087J4O%+<<;K|qwefb6@GSX45wCK}Sn*> + + + + Code coverage report for All files + + + + + + + + + +
+
+

All files

+
+ +
+ 38.81% + Statements + 118/304 +
+ + +
+ 82.35% + Branches + 28/34 +
+ + +
+ 41.66% + Functions + 5/12 +
+ + +
+ 38.81% + Lines + 118/304 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
src +
+
0%0/40%0/10%0/10%0/4
src/obj +
+
0%0/1300%0/40%0/40%0/130
src/string +
+
0%0/360%0/10%0/10%0/36
src/time +
+
65.95%31/47100%12/1250%1/265.95%31/47
src/validator +
+
100%87/87100%16/16100%4/4100%87/87
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/utils/coverage/prettify.css b/packages/utils/coverage/prettify.css new file mode 100644 index 0000000..b317a7c --- /dev/null +++ b/packages/utils/coverage/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/packages/utils/coverage/prettify.js b/packages/utils/coverage/prettify.js new file mode 100644 index 0000000..b322523 --- /dev/null +++ b/packages/utils/coverage/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/packages/utils/coverage/sort-arrow-sprite.png b/packages/utils/coverage/sort-arrow-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed68316eb3f65dec9063332d2f69bf3093bbfab GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qh}Z>jv*C{$p!i!8j}?a+@3A= zIAGwzjijN=FBi!|L1t?LM;Q;gkwn>2cAy-KV{dn nf0J1DIvEHQu*n~6U}x}qyky7vi4|9XhBJ7&`njxgN@xNA8m%nc literal 0 HcmV?d00001 diff --git a/packages/utils/coverage/sorter.js b/packages/utils/coverage/sorter.js new file mode 100644 index 0000000..2bb296a --- /dev/null +++ b/packages/utils/coverage/sorter.js @@ -0,0 +1,196 @@ +/* eslint-disable */ +var addSorting = (function() { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + if ( + row.textContent + .toLowerCase() + .includes(searchValue.toLowerCase()) + ) { + row.style.display = ''; + } else { + row.style.display = 'none'; + } + } + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = + colNode.innerHTML + ''; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/packages/utils/coverage/src/index.html b/packages/utils/coverage/src/index.html new file mode 100644 index 0000000..7035111 --- /dev/null +++ b/packages/utils/coverage/src/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for src + + + + + + + + + +
+
+

All files src

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 0% + Branches + 0/1 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
0%0/40%0/10%0/10%0/4
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/utils/coverage/src/index.ts.html b/packages/utils/coverage/src/index.ts.html new file mode 100644 index 0000000..bbfddf5 --- /dev/null +++ b/packages/utils/coverage/src/index.ts.html @@ -0,0 +1,97 @@ + + + + + + Code coverage report for src/index.ts + + + + + + + + + +
+
+

All files / src index.ts

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 0% + Branches + 0/1 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5  +  +  +  + 
export * from './obj'
+export * from './string'
+export * from './time'
+export * from './validator'
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/utils/coverage/src/obj/callback.ts.html b/packages/utils/coverage/src/obj/callback.ts.html new file mode 100644 index 0000000..0a0d70e --- /dev/null +++ b/packages/utils/coverage/src/obj/callback.ts.html @@ -0,0 +1,121 @@ + + + + + + Code coverage report for src/obj/callback.ts + + + + + + + + + +
+
+

All files / src/obj callback.ts

+
+ +
+ 0% + Statements + 0/12 +
+ + +
+ 0% + Branches + 0/1 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/12 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13  +  +  +  +  +  +  +  +  +  +  +  + 
type CallbackFunction<T extends any[]> = (...args: T) => void
+
+function setCallback<T extends any[]>(callback: CallbackFunction<T> | undefined, fallback: CallbackFunction<T>): CallbackFunction<T> {
+  return typeof callback === 'function'
+    ? (...args: T) => {
+        callback(...args)
+        fallback(...args)
+      }
+    : fallback
+}
+
+export { setCallback }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/utils/coverage/src/obj/error-msg.ts.html b/packages/utils/coverage/src/obj/error-msg.ts.html new file mode 100644 index 0000000..9581de4 --- /dev/null +++ b/packages/utils/coverage/src/obj/error-msg.ts.html @@ -0,0 +1,163 @@ + + + + + + Code coverage report for src/obj/error-msg.ts + + + + + + + + + +
+
+

All files / src/obj error-msg.ts

+
+ +
+ 0% + Statements + 0/26 +
+ + +
+ 0% + Branches + 0/1 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/26 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
interface ErrorWithMessage {
+  message: string
+}
+
+function isErrorWithMessage(error: unknown): error is ErrorWithMessage {
+  return typeof error === 'object' && error !== null && 'message' in error && typeof (error as Record<string, unknown>).message === 'string'
+}
+
+function toErrorWithMessage(maybeError: unknown): ErrorWithMessage {
+  if (isErrorWithMessage(maybeError)) return maybeError
+
+  try {
+    return new Error(JSON.stringify(maybeError))
+  }
+  catch {
+    // fallback in case there's an error stringify the maybeError
+    // like with circular references for example.
+    return new Error(String(maybeError))
+  }
+}
+
+function getErrorMessage(error: unknown) {
+  return toErrorWithMessage(error).message
+}
+
+export { getErrorMessage }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/utils/coverage/src/obj/index.html b/packages/utils/coverage/src/obj/index.html new file mode 100644 index 0000000..3f33117 --- /dev/null +++ b/packages/utils/coverage/src/obj/index.html @@ -0,0 +1,161 @@ + + + + + + Code coverage report for src/obj + + + + + + + + + +
+
+

All files src/obj

+
+ +
+ 0% + Statements + 0/130 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/130 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
callback.ts +
+
0%0/120%0/10%0/10%0/12
error-msg.ts +
+
0%0/260%0/10%0/10%0/26
index.ts +
+
0%0/490%0/10%0/10%0/49
options.ts +
+
0%0/430%0/10%0/10%0/43
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/utils/coverage/src/obj/index.ts.html b/packages/utils/coverage/src/obj/index.ts.html new file mode 100644 index 0000000..b65512f --- /dev/null +++ b/packages/utils/coverage/src/obj/index.ts.html @@ -0,0 +1,232 @@ + + + + + + Code coverage report for src/obj/index.ts + + + + + + + + + +
+
+

All files / src/obj index.ts

+
+ +
+ 0% + Statements + 0/49 +
+ + +
+ 0% + Branches + 0/1 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/49 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export * from './callback'
+export * from './error-msg'
+export * from './options'
+
+/**
+ * Get the default values from the props object and merge them with the overrideProps object.
+ * @param props - The props object containing the default values.
+ * @param overrideProps - The object containing the override values.
+ * @returns The merged object with default and override values.
+ */
+function getDefaultFromProps<T = Record<string, any>>(props: Record<string, any>, overrideProps: T): T | Record<string, any> {
+  const defaults = Object.entries(props).reduce<Record<string, any>>((temp, [key, value]) => {
+    temp[key] = value?.default
+    return temp
+  }, {})
+  return {
+    ...defaults,
+    ...overrideProps,
+  }
+}
+
+function obj2QueryString(params?: Record<string, any>): string {
+  if (!params) return ''
+  return Object.keys(params)
+    .map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(String(params[key])).replace('/%20/g', '+')}`)
+    .join('&')
+}
+
+function queryString2Obj(str?: string): Record<string, any> {
+  if (!str) return {}
+  return str.split('&').reduce((acc: Record<string, any>, params: string) => {
+    const p = params.split('=', 2)
+    if (p.length > 1) acc[p[0]] = decodeURIComponent(p[1].replace(/\+/g, ' '))
+    return acc
+  }, {})
+}
+
+function arrayToObject<T extends Record<K, PropertyKey>, K extends keyof any>(array: T[], keyProp: K): Record<T[K], T> {
+  return array.reduce(
+    (obj, item) => {
+      const key = item[keyProp] as PropertyKey // 斷言 key 為 PropertyKey
+      obj[key] = item
+      return obj
+    },
+    {} as Record<T[K], T>,
+  )
+}
+
+export { getDefaultFromProps, obj2QueryString, queryString2Obj, arrayToObject }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/utils/coverage/src/obj/options.ts.html b/packages/utils/coverage/src/obj/options.ts.html new file mode 100644 index 0000000..f54600d --- /dev/null +++ b/packages/utils/coverage/src/obj/options.ts.html @@ -0,0 +1,214 @@ + + + + + + Code coverage report for src/obj/options.ts + + + + + + + + + +
+
+

All files / src/obj options.ts

+
+ +
+ 0% + Statements + 0/43 +
+ + +
+ 0% + Branches + 0/1 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/43 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
type OptionsProp = OptionsPropExtensions[keyof OptionsPropExtensions]
+interface OptionsPropExtensions {
+  arrayOfStrings: string[]
+  arrayOfNumbers: number[]
+  optionsList: Simplify<OptionsList>
+  valueLabelPojo: Record<string | number, string>
+}
+type OptionsList = OptionsItem[]
+interface OptionsItem {
+  label: string
+  value: unknown
+  attrs?: {
+    disabled?: boolean
+  } & Record<string, any>
+  __original?: any
+  [index: string]: any
+}
+
+function normalizeOptions(options: OptionsProp): OptionsList {
+  let i = 1
+  if (Array.isArray(options)) {
+    return options.map((option) => {
+      if (typeof option === 'string' || typeof option === 'number') {
+        return {
+          label: String(option),
+          value: String(option),
+        }
+      }
+      if (typeof option == 'object') {
+        if ('value' in option && typeof option.value !== 'string') {
+          Object.assign(option, {
+            value: `__mask_${i++}`,
+            __original: option.value,
+          })
+        }
+      }
+      return option
+    })
+  }
+  return Object.entries(options).map(([value, label]) => ({ label, value }))
+}
+
+export { normalizeOptions }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/utils/coverage/src/string/index.html b/packages/utils/coverage/src/string/index.html new file mode 100644 index 0000000..ef5ce26 --- /dev/null +++ b/packages/utils/coverage/src/string/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for src/string + + + + + + + + + +
+
+

All files src/string

+
+ +
+ 0% + Statements + 0/36 +
+ + +
+ 0% + Branches + 0/1 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/36 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
0%0/360%0/10%0/10%0/36
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/utils/coverage/src/string/index.ts.html b/packages/utils/coverage/src/string/index.ts.html new file mode 100644 index 0000000..3439898 --- /dev/null +++ b/packages/utils/coverage/src/string/index.ts.html @@ -0,0 +1,193 @@ + + + + + + Code coverage report for src/string/index.ts + + + + + + + + + +
+
+

All files / src/string index.ts

+
+ +
+ 0% + Statements + 0/36 +
+ + +
+ 0% + Branches + 0/1 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/36 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
function formatThousand(price?: number) {
+  if (!price) return '0'
+  return price.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')
+}
+
+function replaceRelativePathsWithAbsolute(htmlContent: string, baseUrl: string) {
+  // 構建用於匹配 img src 屬性和 a href 屬性的正則表達式
+  const regex = /(<img [^>]*src=|<a [^>]*href=)"([^"]*)"/g
+
+  // 替換相對路徑
+  return htmlContent.replace(regex, (match, prefix, url) => {
+    // 檢查是否為相對路徑
+    if (!url.startsWith('http://') && !url.startsWith('https://') && !url.startsWith('//')) {
+      // 構建絕對路徑
+      return `${prefix}"${new URL(url, baseUrl).href}"`
+    }
+    return match
+  })
+}
+
+function replaceImgTagIfSrcContains(htmlContent: string, substring: string, newImgTag: string) {
+  // 構建用於匹配 img 標籤並檢查 src 屬性的正則表達式
+  const regex = /<img [^>]*src="([^"]*)"[^>]*>/g
+
+  // 替換含特定字串的 img 標籤
+  return htmlContent.replace(regex, (match, src) => {
+    // 檢查 src 屬性是否包含特定字串
+    if (src.includes(substring)) {
+      // 替換為新的 img 標籤
+      return newImgTag
+    }
+    return match
+  })
+}
+
+export { formatThousand, replaceRelativePathsWithAbsolute, replaceImgTagIfSrcContains }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/utils/coverage/src/time/index.html b/packages/utils/coverage/src/time/index.html new file mode 100644 index 0000000..53a502b --- /dev/null +++ b/packages/utils/coverage/src/time/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for src/time + + + + + + + + + +
+
+

All files src/time

+
+ +
+ 65.95% + Statements + 31/47 +
+ + +
+ 100% + Branches + 12/12 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 65.95% + Lines + 31/47 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
65.95%31/47100%12/1250%1/265.95%31/47
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/utils/coverage/src/time/index.ts.html b/packages/utils/coverage/src/time/index.ts.html new file mode 100644 index 0000000..b02249e --- /dev/null +++ b/packages/utils/coverage/src/time/index.ts.html @@ -0,0 +1,226 @@ + + + + + + Code coverage report for src/time/index.ts + + + + + + + + + +
+
+

All files / src/time index.ts

+
+ +
+ 65.95% + Statements + 31/47 +
+ + +
+ 100% + Branches + 12/12 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 65.95% + Lines + 31/47 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +4812x +12x +12x +12x +12x +12x +12x +6x +6x +12x +12x +12x +5x +5x +5x +12x +12x +12x +12x +12x +12x +12x +12x +12x +12x +12x +12x +12x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x + 
function getBusinessStatus(now: Date = new Date(), startTime: string, endTime: string, closingTimeThreshold: number = 3600000) {
+  // 開始和結束時間轉換為當天的日期時間。
+  const startDate = new Date(`${now.toDateString()} ${startTime}`)
+  const endDate = new Date(`${now.toDateString()} ${endTime}`)
+ 
+  // 考慮跨午夜的情況
+  if (endDate <= startDate) {
+    endDate.setDate(endDate.getDate() + 1)
+  }
+ 
+  // 調整當前時間是凌晨但在營業時間內的情況
+  if (now < startDate && now.getHours() < 12) {
+    startDate.setDate(startDate.getDate() - 1)
+    endDate.setDate(endDate.getDate() - 1)
+  }
+ 
+  const isOpen = now >= startDate && now < endDate
+  const timeToOpen = isOpen ? -1 : now < startDate ? startDate.getTime() - now.getTime() : startDate.getTime() + 86400000 - now.getTime()
+  const timeToClose = !isOpen ? -1 : endDate.getTime() - now.getTime()
+  const upcomingClosure = isOpen && timeToClose <= closingTimeThreshold
+ 
+  return {
+    isOpen,
+    timeToOpen,
+    timeToClose,
+    upcomingClosure,
+  }
+}
+ 
+function formatCountdown(timeInMilliseconds) {
+  if (timeInMilliseconds < 0) {
+    return { days: 0, hours: 0, minutes: 0, seconds: 0 }
+  }
+
+  let seconds = Math.floor(timeInMilliseconds / 1000)
+  let minutes = Math.floor(seconds / 60)
+  let hours = Math.floor(minutes / 60)
+  const days = Math.floor(hours / 24)
+
+  seconds = seconds % 60
+  minutes = minutes % 60
+  hours = hours % 24
+
+  return { days, hours, minutes, seconds }
+}
+ 
+export { getBusinessStatus, formatCountdown }
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/utils/coverage/src/validator/index.html b/packages/utils/coverage/src/validator/index.html new file mode 100644 index 0000000..6b79479 --- /dev/null +++ b/packages/utils/coverage/src/validator/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for src/validator + + + + + + + + + +
+
+

All files src/validator

+
+ +
+ 100% + Statements + 87/87 +
+ + +
+ 100% + Branches + 16/16 +
+ + +
+ 100% + Functions + 4/4 +
+ + +
+ 100% + Lines + 87/87 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.ts +
+
100%87/87100%16/16100%4/4100%87/87
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/utils/coverage/src/validator/index.ts.html b/packages/utils/coverage/src/validator/index.ts.html new file mode 100644 index 0000000..e25ead4 --- /dev/null +++ b/packages/utils/coverage/src/validator/index.ts.html @@ -0,0 +1,346 @@ + + + + + + Code coverage report for src/validator/index.ts + + + + + + + + + +
+
+

All files / src/validator index.ts

+
+ +
+ 100% + Statements + 87/87 +
+ + +
+ 100% + Branches + 16/16 +
+ + +
+ 100% + Functions + 4/4 +
+ + +
+ 100% + Lines + 87/87 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +881x +1x +14x +14x +14x +14x +14x +14x +14x +14x +1x +112x +112x +112x +1x +112x +112x +112x +1x +1x +1x +1x +1x +1x +1x +1x +1x +24x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +22x +24x +14x +14x +14x +14x +14x +14x +14x +14x +14x +14x +14x +14x +14x +14x +14x +14x +14x +14x +14x +14x +14x +14x +24x +24x +24x +24x + 
// 參考 https://github.com/enylin/taiwan-id-validator
+ 
+function zipWith<T, R>(a1: T[], a2: T[], f: (v1: T, v2: T) => R): R[] {
+  const length = Math.min(a1.length, a2.length)
+  const result: R[] = []
+ 
+  for (let i = 0; i < length; i++) result[i] = f(a1[i], a2[i])
+ 
+  return result
+}
+ 
+function add(a: number, b: number) {
+  return a + b
+}
+ 
+function multiply(a: number, b: number) {
+  return a * b
+}
+ 
+/**
+ * Verify the input is a valid GUI Number (中華民國統一編號)
+ *
+ * @param { string | number } input GUI Number
+ * @param { boolean } extended check input using extended format: https://www.fia.gov.tw/singlehtml/6?cntId=aaa97a9dcf2649d5bdd317f554e24f75
+ * @returns { boolean } is `input` a valid GUI number
+ */
+export function isGuiNumberValid(input: string | number, extended = true): boolean {
+  if (typeof input !== 'string' && typeof input !== 'number') return false
+ 
+  /**
+   * Example: 12345675
+   * Step 1:
+   * 1 * 1 = 1
+   * 2 * 2 = 4
+   * 3 * 1 = 3
+   * 4 * 2 = 8
+   * 5 * 1 = 5
+   * 6 * 2 = 12
+   * 7 * 4 = 28
+   * 5 * 1 = 5
+   *
+   * Step 2:
+   * 1 -> 1
+   * 4 -> 4
+   * 3 -> 3
+   * 8 -> 8
+   * 5 -> 5
+   * 12 -> 1 + 2 = 3
+   * 28 -> 2 + 8 = 10
+   * 5 -> 5
+   *
+   * Step 3:
+   * (1 + 4 + 3 + 8 + 5 + 3 + 10 + 5) % 10 = 9
+   */
+ 
+  const GUI_NUMBER_COEFFICIENTS = [1, 2, 1, 2, 1, 2, 4, 1]
+ 
+  const n = input.toString()
+  const regex = /^\d{8}$/
+ 
+  if (!regex.test(n)) return false
+ 
+  /**
+   * Step 1: 先把統一編號的每個數字分別乘上對應的係數 (1, 2, 1, 2, 1, 2, 4, 1)
+   * Step 2: 再把個別乘積的十位數與個位數相加,得出八個小於 10 的數字
+   */
+ 
+  const intRadix = 10
+  const checksum = zipWith(
+    GUI_NUMBER_COEFFICIENTS,
+    n.split('').map((c) => Number.parseInt(c, intRadix)),
+    multiply,
+  )
+    .map((n) => (n % 10) + Math.floor(n / 10))
+    .reduce(add, 0)
+ 
+  /**
+   * Step 3: 檢查把這 8 個數字相加之後計算此和除以 5 or 10 的餘數
+   * Step 4:
+   *  4-1: 若是餘數為 0,則為正確的統一編號
+   *  4-2: 若是餘數為 9,且原統一編號的第七位是 7,則也為正確的統一編號
+   */
+ 
+  const divisor = extended ? 5 : 10
+ 
+  return checksum % divisor === 0 || (Number.parseInt(n.charAt(6), intRadix) === 7 && (checksum + 1) % divisor === 0)
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/packages/utils/package.json b/packages/utils/package.json new file mode 100644 index 0000000..db94c4b --- /dev/null +++ b/packages/utils/package.json @@ -0,0 +1,59 @@ +{ + "name": "@alanlu-dev/utils", + "type": "module", + "version": "0.0.0", + "description": "A collection of utility functions.", + "author": "Alan Lu (https://github.com/alanlu-zyl)", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/alanlu-dev/web-kit.git", + "directory": "packages/utils" + }, + "bugs": { + "url": "https://github.com/alanlu-dev/web-kit/issues" + }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + } + }, + "./*": { + "import": { + "types": "./dist/*/index.d.mts", + "default": "./dist/*/index.mjs" + }, + "require": { + "types": "./dist/*/index.d.cts", + "default": "./dist/*/index.cjs" + } + } + }, + "main": "./dist/index.cjs", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "postinstall": "pnpm run build", + "build:clean": "npx rimraf --glob ./dist", + "build": "unbuild --minify", + "dev": "unbuild --stub", + "lint:eslint": "eslint --fix .", + "lint:prettier": "prettier --ignore-path ../../.prettierignore --write .", + "lint": "pnpm lint:eslint && pnpm lint:prettier", + "test": "vitest run", + "coverage": "vitest run --coverage" + }, + "devDependencies": { + "@alanlu-dev/eslint-config-base": "workspace:*", + "@alanlu-dev/tsconfig": "workspace:*", + "@alanlu-dev/types": "workspace:*" + } +} diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts new file mode 100644 index 0000000..f548efb --- /dev/null +++ b/packages/utils/src/index.ts @@ -0,0 +1,4 @@ +export * from './obj' +export * from './string' +export * from './time' +export * from './validator' diff --git a/packages/utils/src/obj/callback.ts b/packages/utils/src/obj/callback.ts new file mode 100644 index 0000000..64071d4 --- /dev/null +++ b/packages/utils/src/obj/callback.ts @@ -0,0 +1,12 @@ +type CallbackFunction = (...args: T) => void + +function setCallback(callback: CallbackFunction | undefined, fallback: CallbackFunction): CallbackFunction { + return typeof callback === 'function' + ? (...args: T) => { + callback(...args) + fallback(...args) + } + : fallback +} + +export { setCallback } diff --git a/packages/utils/src/obj/error-msg.ts b/packages/utils/src/obj/error-msg.ts new file mode 100644 index 0000000..b12e716 --- /dev/null +++ b/packages/utils/src/obj/error-msg.ts @@ -0,0 +1,26 @@ +interface ErrorWithMessage { + message: string +} + +function isErrorWithMessage(error: unknown): error is ErrorWithMessage { + return typeof error === 'object' && error !== null && 'message' in error && typeof (error as Record).message === 'string' +} + +function toErrorWithMessage(maybeError: unknown): ErrorWithMessage { + if (isErrorWithMessage(maybeError)) return maybeError + + try { + return new Error(JSON.stringify(maybeError)) + } + catch { + // fallback in case there's an error stringify the maybeError + // like with circular references for example. + return new Error(String(maybeError)) + } +} + +function getErrorMessage(error: unknown) { + return toErrorWithMessage(error).message +} + +export { getErrorMessage } diff --git a/packages/utils/src/obj/index.ts b/packages/utils/src/obj/index.ts new file mode 100644 index 0000000..e5aee96 --- /dev/null +++ b/packages/utils/src/obj/index.ts @@ -0,0 +1,49 @@ +export * from './callback' +export * from './error-msg' +export * from './options' + +/** + * Get the default values from the props object and merge them with the overrideProps object. + * @param props - The props object containing the default values. + * @param overrideProps - The object containing the override values. + * @returns The merged object with default and override values. + */ +function getDefaultFromProps>(props: Record, overrideProps: T): T | Record { + const defaults = Object.entries(props).reduce>((temp, [key, value]) => { + temp[key] = value?.default + return temp + }, {}) + return { + ...defaults, + ...overrideProps, + } +} + +function obj2QueryString(params?: Record): string { + if (!params) return '' + return Object.keys(params) + .map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(String(params[key])).replace('/%20/g', '+')}`) + .join('&') +} + +function queryString2Obj(str?: string): Record { + if (!str) return {} + return str.split('&').reduce((acc: Record, params: string) => { + const p = params.split('=', 2) + if (p.length > 1) acc[p[0]] = decodeURIComponent(p[1].replace(/\+/g, ' ')) + return acc + }, {}) +} + +function arrayToObject, K extends keyof any>(array: T[], keyProp: K): Record { + return array.reduce( + (obj, item) => { + const key = item[keyProp] as PropertyKey // 斷言 key 為 PropertyKey + obj[key] = item + return obj + }, + {} as Record, + ) +} + +export { getDefaultFromProps, obj2QueryString, queryString2Obj, arrayToObject } diff --git a/packages/utils/src/obj/options.ts b/packages/utils/src/obj/options.ts new file mode 100644 index 0000000..2d5b1b6 --- /dev/null +++ b/packages/utils/src/obj/options.ts @@ -0,0 +1,43 @@ +type OptionsProp = OptionsPropExtensions[keyof OptionsPropExtensions] +interface OptionsPropExtensions { + arrayOfStrings: string[] + arrayOfNumbers: number[] + optionsList: Simplify + valueLabelPojo: Record +} +type OptionsList = OptionsItem[] +interface OptionsItem { + label: string + value: unknown + attrs?: { + disabled?: boolean + } & Record + __original?: any + [index: string]: any +} + +function normalizeOptions(options: OptionsProp): OptionsList { + let i = 1 + if (Array.isArray(options)) { + return options.map((option) => { + if (typeof option === 'string' || typeof option === 'number') { + return { + label: String(option), + value: String(option), + } + } + if (typeof option == 'object') { + if ('value' in option && typeof option.value !== 'string') { + Object.assign(option, { + value: `__mask_${i++}`, + __original: option.value, + }) + } + } + return option + }) + } + return Object.entries(options).map(([value, label]) => ({ label, value })) +} + +export { normalizeOptions } diff --git a/packages/utils/src/string/index.ts b/packages/utils/src/string/index.ts new file mode 100644 index 0000000..7b5c5fc --- /dev/null +++ b/packages/utils/src/string/index.ts @@ -0,0 +1,36 @@ +function formatThousand(price?: number) { + if (!price) return '0' + return price.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') +} + +function replaceRelativePathsWithAbsolute(htmlContent: string, baseUrl: string) { + // 構建用於匹配 img src 屬性和 a href 屬性的正則表達式 + const regex = /(]*src=|]*href=)"([^"]*)"/g + + // 替換相對路徑 + return htmlContent.replace(regex, (match, prefix, url) => { + // 檢查是否為相對路徑 + if (!url.startsWith('http://') && !url.startsWith('https://') && !url.startsWith('//')) { + // 構建絕對路徑 + return `${prefix}"${new URL(url, baseUrl).href}"` + } + return match + }) +} + +function replaceImgTagIfSrcContains(htmlContent: string, substring: string, newImgTag: string) { + // 構建用於匹配 img 標籤並檢查 src 屬性的正則表達式 + const regex = /]*src="([^"]*)"[^>]*>/g + + // 替換含特定字串的 img 標籤 + return htmlContent.replace(regex, (match, src) => { + // 檢查 src 屬性是否包含特定字串 + if (src.includes(substring)) { + // 替換為新的 img 標籤 + return newImgTag + } + return match + }) +} + +export { formatThousand, replaceRelativePathsWithAbsolute, replaceImgTagIfSrcContains } diff --git a/packages/utils/src/time/index.test.ts b/packages/utils/src/time/index.test.ts new file mode 100644 index 0000000..b7f708e --- /dev/null +++ b/packages/utils/src/time/index.test.ts @@ -0,0 +1,116 @@ +import { getBusinessStatus } from './index' + +const closingTimeThreshold = 3600000 // 1 hour + +vi.useFakeTimers() +describe('營業狀態(白天)', () => { + it('營業前', () => { + vi.setSystemTime(new Date('2023-12-04T07:59:00')) + const status = getBusinessStatus(new Date(), '08:00', '18:00', closingTimeThreshold) + expect(status.isOpen).toBe(false) + expect(status.timeToOpen).toBe(60 * 1000) // 1 分鐘後開業 + expect(status.timeToClose).toBe(-1) + expect(status.upcomingClosure).toBe(false) + }) + + it('營業開始時', () => { + vi.setSystemTime(new Date('2023-12-04T08:00:00')) + const status = getBusinessStatus(new Date(), '08:00', '18:00', closingTimeThreshold) + expect(status.isOpen).toBe(true) + expect(status.timeToOpen).toBe(-1) + expect(status.timeToClose).toBe(10 * 60 * 60 * 1000) // 10 小時後關業 + expect(status.upcomingClosure).toBe(false) + }) + + it('營業中', () => { + vi.setSystemTime(new Date('2023-12-04T12:00:00')) + const status = getBusinessStatus(new Date(), '08:00', '18:00', closingTimeThreshold) + expect(status.isOpen).toBe(true) + expect(status.timeToOpen).toBe(-1) + expect(status.timeToClose).toBe(6 * 60 * 60 * 1000) // 6 小時後關業 + expect(status.upcomingClosure).toBe(false) + }) + + it('營業即將結束', () => { + vi.setSystemTime(new Date('2023-12-04T17:00:00')) + const status = getBusinessStatus(new Date(), '08:00', '18:00', closingTimeThreshold) + expect(status.isOpen).toBe(true) + expect(status.timeToOpen).toBe(-1) + expect(status.timeToClose).toBe(1 * 60 * 60 * 1000) // 1 小時後關業 + expect(status.upcomingClosure).toBe(true) + }) + + it('營業結束時', () => { + vi.setSystemTime(new Date('2023-12-04T18:00:00')) + const status = getBusinessStatus(new Date(), '08:00', '18:00', closingTimeThreshold) + expect(status.isOpen).toBe(false) + expect(status.timeToOpen).toBe(14 * 60 * 60 * 1000) // 14 小時後再次開業 + expect(status.timeToClose).toBe(-1) + expect(status.upcomingClosure).toBe(false) + }) + + it('營業結束後', () => { + vi.setSystemTime(new Date('2023-12-04T19:00:00')) + const status = getBusinessStatus(new Date(), '08:00', '18:00', closingTimeThreshold) + expect(status.isOpen).toBe(false) + expect(status.timeToOpen).toBe(13 * 60 * 60 * 1000) // 13 小時後再次開業 + expect(status.timeToClose).toBe(-1) + expect(status.upcomingClosure).toBe(false) + }) +}) + +describe('營業狀態(跨夜)', () => { + it('營業前', () => { + vi.setSystemTime(new Date('2023-12-04T21:59:00')) + const status = getBusinessStatus(new Date(), '22:00', '02:00', closingTimeThreshold) + expect(status.isOpen).toBe(false) + expect(status.timeToOpen).toBe(60 * 1000) // 1 分鐘後開業 + expect(status.timeToClose).toBe(-1) + expect(status.upcomingClosure).toBe(false) + }) + + it('營業開始時', () => { + vi.setSystemTime(new Date('2023-12-04T22:00:00')) + const status = getBusinessStatus(new Date(), '22:00', '02:00', closingTimeThreshold) + expect(status.isOpen).toBe(true) + expect(status.timeToOpen).toBe(-1) + expect(status.timeToClose).toBe(4 * 60 * 60 * 1000) // 4 小時後關業 + expect(status.upcomingClosure).toBe(false) + }) + + it('營業中', () => { + vi.setSystemTime(new Date('2023-12-05T00:00:00')) + const status = getBusinessStatus(new Date(), '22:00', '02:00', closingTimeThreshold) + expect(status.isOpen).toBe(true) + expect(status.timeToOpen).toBe(-1) + expect(status.timeToClose).toBe(2 * 60 * 60 * 1000) // 2 小時後關業 + expect(status.upcomingClosure).toBe(false) + }) + + it('營業即將結束', () => { + vi.setSystemTime(new Date('2023-12-05T01:00:00')) + const status = getBusinessStatus(new Date(), '22:00', '02:00', closingTimeThreshold) + expect(status.isOpen).toBe(true) + expect(status.timeToOpen).toBe(-1) + expect(status.timeToClose).toBe(1 * 60 * 60 * 1000) // 1 小時後關業 + expect(status.upcomingClosure).toBe(true) + }) + + it('營業結束時', () => { + vi.setSystemTime(new Date('2023-12-05T02:00:00')) + const status = getBusinessStatus(new Date(), '22:00', '02:00', closingTimeThreshold) + expect(status.isOpen).toBe(false) + expect(status.timeToOpen).toBe(20 * 60 * 60 * 1000) // 20 小時後再次開業 + expect(status.timeToClose).toBe(-1) + expect(status.upcomingClosure).toBe(false) + }) + + it('營業結束後', () => { + vi.setSystemTime(new Date('2023-12-05T03:00:00')) + const status = getBusinessStatus(new Date(), '22:00', '02:00', closingTimeThreshold) + expect(status.isOpen).toBe(false) + expect(status.timeToOpen).toBe(19 * 60 * 60 * 1000) // 19 小時後再次開業 + expect(status.timeToClose).toBe(-1) + expect(status.upcomingClosure).toBe(false) + }) +}) diff --git a/packages/utils/src/time/index.ts b/packages/utils/src/time/index.ts new file mode 100644 index 0000000..3e743c4 --- /dev/null +++ b/packages/utils/src/time/index.ts @@ -0,0 +1,47 @@ +function getBusinessStatus(now: Date = new Date(), startTime: string, endTime: string, closingTimeThreshold: number = 3600000) { + // 開始和結束時間轉換為當天的日期時間。 + const startDate = new Date(`${now.toDateString()} ${startTime}`) + const endDate = new Date(`${now.toDateString()} ${endTime}`) + + // 考慮跨午夜的情況 + if (endDate <= startDate) { + endDate.setDate(endDate.getDate() + 1) + } + + // 調整當前時間是凌晨但在營業時間內的情況 + if (now < startDate && now.getHours() < 12) { + startDate.setDate(startDate.getDate() - 1) + endDate.setDate(endDate.getDate() - 1) + } + + const isOpen = now >= startDate && now < endDate + const timeToOpen = isOpen ? -1 : now < startDate ? startDate.getTime() - now.getTime() : startDate.getTime() + 86400000 - now.getTime() + const timeToClose = !isOpen ? -1 : endDate.getTime() - now.getTime() + const upcomingClosure = isOpen && timeToClose <= closingTimeThreshold + + return { + isOpen, + timeToOpen, + timeToClose, + upcomingClosure, + } +} + +function formatCountdown(timeInMilliseconds) { + if (timeInMilliseconds < 0) { + return { days: 0, hours: 0, minutes: 0, seconds: 0 } + } + + let seconds = Math.floor(timeInMilliseconds / 1000) + let minutes = Math.floor(seconds / 60) + let hours = Math.floor(minutes / 60) + const days = Math.floor(hours / 24) + + seconds = seconds % 60 + minutes = minutes % 60 + hours = hours % 24 + + return { days, hours, minutes, seconds } +} + +export { getBusinessStatus, formatCountdown } diff --git a/packages/utils/src/validator/index.test.ts b/packages/utils/src/validator/index.test.ts new file mode 100644 index 0000000..321353d --- /dev/null +++ b/packages/utils/src/validator/index.test.ts @@ -0,0 +1,44 @@ +import { isGuiNumberValid } from './index' + +describe('isGuiNumValid', () => { + it('should only accept 8-digit of string or number', () => { + expect(isGuiNumberValid({} as number)).toBe(false) + expect(isGuiNumberValid(undefined as unknown as string)).toBe(false) + }) + + it('should return true if the input is correct', () => { + expect(isGuiNumberValid(12345676, false)).toBe(true) + expect(isGuiNumberValid('12345675', false)).toBe(true) + expect(isGuiNumberValid('12345676', false)).toBe(true) // 6th char is 7 + expect(isGuiNumberValid('04595257', false)).toBe(true) + }) + + it('should return false if the input is incorrect', () => { + expect(isGuiNumberValid('1234567', false)).toBe(false) + expect(isGuiNumberValid(1234567, false)).toBe(false) + expect(isGuiNumberValid('123456769', false)).toBe(false) + expect(isGuiNumberValid(123456769, false)).toBe(false) + expect(isGuiNumberValid('12345678', false)).toBe(false) + expect(isGuiNumberValid('12345670', false)).toBe(false) + expect(isGuiNumberValid('04595252', false)).toBe(false) + }) +}) + +describe('isGuiNumValid extended format', () => { + it('should return true if the input is correct', () => { + expect(isGuiNumberValid(12345676)).toBe(true) + expect(isGuiNumberValid('12345675', true)).toBe(true) + expect(isGuiNumberValid('12345676', true)).toBe(true) // 6th char is 7 + expect(isGuiNumberValid('12345670', true)).toBe(true) + expect(isGuiNumberValid('04595257', true)).toBe(true) + expect(isGuiNumberValid('04595252', true)).toBe(true) + }) + + it('should return false if the input is incorrect', () => { + expect(isGuiNumberValid('1234567', true)).toBe(false) + expect(isGuiNumberValid(1234567, true)).toBe(false) + expect(isGuiNumberValid('123456769', true)).toBe(false) + expect(isGuiNumberValid(123456769, true)).toBe(false) + expect(isGuiNumberValid('12345678', true)).toBe(false) + }) +}) diff --git a/packages/utils/src/validator/index.ts b/packages/utils/src/validator/index.ts new file mode 100644 index 0000000..f2566e8 --- /dev/null +++ b/packages/utils/src/validator/index.ts @@ -0,0 +1,87 @@ +// 參考 https://github.com/enylin/taiwan-id-validator + +function zipWith(a1: T[], a2: T[], f: (v1: T, v2: T) => R): R[] { + const length = Math.min(a1.length, a2.length) + const result: R[] = [] + + for (let i = 0; i < length; i++) result[i] = f(a1[i], a2[i]) + + return result +} + +function add(a: number, b: number) { + return a + b +} + +function multiply(a: number, b: number) { + return a * b +} + +/** + * Verify the input is a valid GUI Number (中華民國統一編號) + * + * @param { string | number } input GUI Number + * @param { boolean } extended check input using extended format: https://www.fia.gov.tw/singlehtml/6?cntId=aaa97a9dcf2649d5bdd317f554e24f75 + * @returns { boolean } is `input` a valid GUI number + */ +export function isGuiNumberValid(input: string | number, extended = true): boolean { + if (typeof input !== 'string' && typeof input !== 'number') return false + + /** + * Example: 12345675 + * Step 1: + * 1 * 1 = 1 + * 2 * 2 = 4 + * 3 * 1 = 3 + * 4 * 2 = 8 + * 5 * 1 = 5 + * 6 * 2 = 12 + * 7 * 4 = 28 + * 5 * 1 = 5 + * + * Step 2: + * 1 -> 1 + * 4 -> 4 + * 3 -> 3 + * 8 -> 8 + * 5 -> 5 + * 12 -> 1 + 2 = 3 + * 28 -> 2 + 8 = 10 + * 5 -> 5 + * + * Step 3: + * (1 + 4 + 3 + 8 + 5 + 3 + 10 + 5) % 10 = 9 + */ + + const GUI_NUMBER_COEFFICIENTS = [1, 2, 1, 2, 1, 2, 4, 1] + + const n = input.toString() + const regex = /^\d{8}$/ + + if (!regex.test(n)) return false + + /** + * Step 1: 先把統一編號的每個數字分別乘上對應的係數 (1, 2, 1, 2, 1, 2, 4, 1) + * Step 2: 再把個別乘積的十位數與個位數相加,得出八個小於 10 的數字 + */ + + const intRadix = 10 + const checksum = zipWith( + GUI_NUMBER_COEFFICIENTS, + n.split('').map((c) => Number.parseInt(c, intRadix)), + multiply, + ) + .map((n) => (n % 10) + Math.floor(n / 10)) + .reduce(add, 0) + + /** + * Step 3: 檢查把這 8 個數字相加之後計算此和除以 5 or 10 的餘數 + * Step 4: + * 4-1: 若是餘數為 0,則為正確的統一編號 + * 4-2: 若是餘數為 9,且原統一編號的第七位是 7,則也為正確的統一編號 + */ + + const divisor = extended ? 5 : 10 + + return checksum % divisor === 0 || (Number.parseInt(n.charAt(6), intRadix) === 7 && (checksum + 1) % divisor === 0) +} diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json new file mode 100644 index 0000000..2707a71 --- /dev/null +++ b/packages/utils/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "@alanlu-dev/tsconfig/base.json", + "compilerOptions": { + "types": ["vitest/globals", "@alanlu-dev/types/globals"] + } +} diff --git a/packages/utils/vitest.config.ts b/packages/utils/vitest.config.ts new file mode 100644 index 0000000..1e37caf --- /dev/null +++ b/packages/utils/vitest.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + globals: true, + coverage: { + include: ['src/**'], + }, + }, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 78dd4a9..1046cde 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,93 +8,414 @@ importers: .: devDependencies: - '@alanlu-dev/eslint-config': + '@alanlu-dev/changeset': specifier: workspace:* - version: link:packages/linters/eslint-config + version: link:packages/changeset + '@alanlu-dev/commitlint-config': + specifier: workspace:* + version: link:packages/linters/commitlint-config + '@alanlu-dev/eslint-config-base': + specifier: workspace:* + version: link:packages/linters/eslint-config/base + '@alanlu-dev/lint-staged-config': + specifier: workspace:* + version: link:packages/linters/lint-staged-config '@alanlu-dev/markdownlint-config': specifier: workspace:* version: link:packages/linters/markdownlint-config + '@alanlu-dev/mastercss-config': + specifier: workspace:* + version: link:packages/mastercss/config '@alanlu-dev/prettier-config': specifier: workspace:* version: link:packages/linters/prettier-config - '@changesets/changelog-github': - specifier: ^0.5.0 - version: 0.5.0 + '@alanlu-dev/stylelint-config': + specifier: workspace:* + version: link:packages/linters/stylelint-config + '@alanlu-dev/tsconfig': + specifier: workspace:* + version: link:packages/linters/tsconfig + '@alanlu-dev/types': + specifier: workspace:* + version: link:packages/types '@changesets/cli': specifier: ^2.27.1 version: 2.27.1 - '@commitlint/cli': - specifier: ^19.0.3 - version: 19.0.3(@types/node@20.11.24)(typescript@5.3.3) - '@commitlint/config-conventional': - specifier: ^19.0.3 - version: 19.0.3 + '@types/node': + specifier: ^20.11.30 + version: 20.11.30 + '@vitest/coverage-v8': + specifier: ^1.4 + version: 1.4.0(vitest@1.4.0) cspell: - specifier: ^8.5.0 - version: 8.5.0 - czg: - specifier: ^1.9.0 - version: 1.9.0 - eslint: - specifier: ^8.57.0 - version: 8.57.0 + specifier: ^8.6.1 + version: 8.6.1 + dotenv: + specifier: ^16.4.5 + version: 16.4.5 + happy-dom: + specifier: ^14.3.8 + version: 14.3.8 husky: specifier: ^9.0.11 version: 9.0.11 - lint-staged: - specifier: ^15.2.2 - version: 15.2.2 - markdownlint-cli2: - specifier: ^0.12.1 - version: 0.12.1 - prettier: - specifier: ^3.2.5 - version: 3.2.5 + playwright-core: + specifier: ^1.42.1 + version: 1.42.1 + tsup: + specifier: ^8.0.2 + version: 8.0.2(postcss@8.4.38)(typescript@5.4.3) + tsx: + specifier: ^4.7.1 + version: 4.7.1 turbo: - specifier: ^1.12.4 - version: 1.12.4 + specifier: ^1.13.0 + version: 1.13.0 + unbuild: + specifier: 3.0.0-rc.1 + version: 3.0.0-rc.1(typescript@5.4.3) + vite: + specifier: ^5.2.6 + version: 5.2.6(@types/node@20.11.30) + vitest: + specifier: ^1.4.0 + version: 1.4.0(@types/node@20.11.30)(happy-dom@14.3.8) - apps/nuxt/nuxt-demo: + apps/nuxt-base: dependencies: + '@alanlu-dev/utils': + specifier: workspace:* + version: link:../../packages/utils + '@vueuse/core': + specifier: ^10.9.0 + version: 10.9.0(vue@3.4.21) + class-variant: + specifier: ^2.0.2 + version: 2.0.2 + nanoid: + specifier: ^5.0.6 + version: 5.0.6 + pinia: + specifier: ^2.1.7 + version: 2.1.7(typescript@5.4.3)(vue@3.4.21) + vue: + specifier: ^3.4.21 + version: 3.4.21(typescript@5.4.3) + vue-final-modal: + specifier: ^4.5.4 + version: 4.5.4(@vueuse/core@10.9.0)(@vueuse/integrations@10.9.0)(focus-trap@7.5.4)(vue@3.4.21) + vue-router: + specifier: ^4.3.0 + version: 4.3.0(vue@3.4.21) + zod: + specifier: ^3.22.4 + version: 3.22.4 + devDependencies: + '@alanlu-dev/eslint-config-base': + specifier: workspace:* + version: link:../../packages/linters/eslint-config/base + '@alanlu-dev/mastercss-config': + specifier: workspace:* + version: link:../../packages/mastercss/config + '@alanlu-dev/mastercss-helpers': + specifier: workspace:* + version: link:../../packages/mastercss/helpers + '@alanlu-dev/scss': + specifier: workspace:* + version: link:../../packages/scss + '@alanlu-dev/types': + specifier: workspace:* + version: link:../../packages/types + '@element-plus/nuxt': + specifier: ^1.0.8 + version: 1.0.8(@element-plus/icons-vue@2.3.1)(element-plus@2.6.2)(rollup@4.13.0) + '@formkit/addons': + specifier: ^1.6.0 + version: 1.6.0 + '@formkit/core': + specifier: ^1.6.0 + version: 1.6.0 + '@formkit/i18n': + specifier: ^1.6.0 + version: 1.6.0 + '@formkit/icons': + specifier: ^1.6.0 + version: 1.6.0 + '@formkit/inputs': + specifier: ^1.6.0 + version: 1.6.0 + '@formkit/nuxt': + specifier: ^1.6.0 + version: 1.6.0(esbuild@0.19.12)(rollup@4.13.0)(tailwindcss@3.4.1)(unocss@0.58.7)(vite@5.2.6)(vue@3.4.21) + '@formkit/themes': + specifier: ^1.6.0 + version: 1.6.0(tailwindcss@3.4.1)(unocss@0.58.7) + '@formkit/vue': + specifier: ^1.6.0 + version: 1.6.0(tailwindcss@3.4.1)(unocss@0.58.7)(vue@3.4.21) + '@formkit/zod': + specifier: ^1.6.0 + version: 1.6.0(zod@3.22.4) + '@master/css.nuxt': + specifier: 2.0.0-rc.26 + version: 2.0.0-rc.26(rollup@4.13.0)(vue@3.4.21) + '@nuxt/content': + specifier: ^2.12.1 + version: 2.12.1(nuxt@3.11.1)(rollup@4.13.0)(vue@3.4.21) + '@nuxt/devtools': + specifier: ^1.1.4 + version: 1.1.4(@unocss/reset@0.58.7)(floating-vue@5.2.2)(nuxt@3.11.1)(rollup@4.13.0)(unocss@0.58.7)(vite@5.2.6)(vue@3.4.21) + '@nuxt/image': + specifier: ^1.4.0 + version: 1.4.0(rollup@4.13.0) + '@nuxt/kit': + specifier: ^3.11.1 + version: 3.11.1(rollup@4.13.0) + '@nuxt/schema': + specifier: 3.11.1 + version: 3.11.1(rollup@4.13.0) + '@nuxt/ui': + specifier: ^2.15.0 + version: 2.15.0(focus-trap@7.5.4)(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21) + '@nuxtjs/color-mode': + specifier: ^3.3.3 + version: 3.3.3(rollup@4.13.0) + '@nuxtjs/fontaine': + specifier: ^0.4.1 + version: 0.4.1(rollup@4.13.0) + '@nuxtjs/google-fonts': + specifier: ^3.2.0 + version: 3.2.0(rollup@4.13.0) + '@pinia-plugin-persistedstate/nuxt': + specifier: ^1.2.0 + version: 1.2.0(@pinia/nuxt@0.5.1)(pinia@2.1.7)(rollup@4.13.0) + '@pinia/nuxt': + specifier: ^0.5.1 + version: 0.5.1(rollup@4.13.0)(typescript@5.4.3)(vue@3.4.21) + '@vue-final-modal/nuxt': + specifier: ^1.0.3 + version: 1.0.3(rollup@4.13.0)(vue-final-modal@4.5.4) + '@vueuse/nuxt': + specifier: ^10.9.0 + version: 10.9.0(nuxt@3.11.1)(rollup@4.13.0)(vue@3.4.21) + focus-trap: + specifier: ^7.5.4 + version: 7.5.4 nuxt: - specifier: ^3.10.3 - version: 3.10.3(@types/node@20.11.24)(eslint@8.57.0)(typescript@5.3.3)(vite@5.1.4) + specifier: ^3.11.1 + version: 3.11.1(@types/node@20.11.30)(@unocss/reset@0.58.7)(floating-vue@5.2.2)(rollup@4.13.0)(typescript@5.4.3)(unocss@0.58.7)(vite@5.2.6)(vue-tsc@2.0.7) + nuxt-icon: + specifier: ^0.6.10 + version: 0.6.10(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21) + unstorage: + specifier: ^1.10.2 + version: 1.10.2(ioredis@5.3.2) + vue-tsc: + specifier: ^2.0.7 + version: 2.0.7(typescript@5.4.3) + + apps/nuxt-demo: + dependencies: + '@splidejs/splide': + specifier: ^4.1.4 + version: 4.1.4 + '@splidejs/splide-extension-intersection': + specifier: ^0.2.0 + version: 0.2.0 + '@vueuse/core': + specifier: ^10.9.0 + version: 10.9.0(vue@3.4.21) + class-variant: + specifier: ^2.0.2 + version: 2.0.2 + floating-vue: + specifier: ^5.2.2 + version: 5.2.2(@nuxt/kit@3.11.1)(vue@3.4.21) + i18next: + specifier: ^23.10.1 + version: 23.10.1 + maska: + specifier: ^2.1.11 + version: 2.1.11 + pinia: + specifier: ^2.1.7 + version: 2.1.7(typescript@5.4.3)(vue@3.4.21) vue: specifier: ^3.4.21 - version: 3.4.21(typescript@5.3.3) + version: 3.4.21(typescript@5.4.3) + vue-final-modal: + specifier: ^4.5.4 + version: 4.5.4(@vueuse/core@10.9.0)(@vueuse/integrations@10.9.0)(focus-trap@7.5.4)(vue@3.4.21) vue-router: specifier: ^4.3.0 version: 4.3.0(vue@3.4.21) + vue3-toastify: + specifier: ^0.2.1 + version: 0.2.1(vue@3.4.21) + zod: + specifier: ^3.22.4 + version: 3.22.4 + zod-i18n-map: + specifier: ^2.27.0 + version: 2.27.0(i18next@23.10.1)(zod@3.22.4) + devDependencies: + '@alanlu-dev/nuxt-base': + specifier: workspace:* + version: link:../nuxt-base + '@formkit/core': + specifier: ^1.6.0 + version: 1.6.0 + '@formkit/vue': + specifier: ^1.6.0 + version: 1.6.0(tailwindcss@3.4.1)(unocss@0.58.7)(vue@3.4.21) + '@gtm-support/vue-gtm': + specifier: ^2.2.0 + version: 2.2.0(vue@3.4.21) + '@intlify/unplugin-vue-i18n': + specifier: ^4.0.0 + version: 4.0.0(rollup@4.13.0) + '@nuxt/test-utils': + specifier: ^3.12.0 + version: 3.12.0(@testing-library/vue@8.0.3)(@vue/test-utils@2.4.5)(h3@1.11.1)(happy-dom@14.3.8)(playwright-core@1.42.1)(rollup@4.13.0)(vite@5.2.6)(vitest@1.4.0)(vue-router@4.3.0)(vue@3.4.21) + '@nuxtjs/i18n': + specifier: ^8.2.0 + version: 8.2.0(rollup@4.13.0)(vue@3.4.21) + '@nuxtjs/seo': + specifier: 2.0.0-rc.10 + version: 2.0.0-rc.10(@lezer/common@1.2.1)(@nuxt/devtools@1.1.4)(@unhead/shared@1.9.1)(@vue/compiler-core@3.4.21)(h3@1.11.1)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(unhead@1.9.1)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + '@testing-library/vue': + specifier: 8.0.3 + version: 8.0.3(vue@3.4.21) + '@vue/test-utils': + specifier: ^2.4.5 + version: 2.4.5 + nuxt: + specifier: ^3.11.1 + version: 3.11.1(@types/node@20.11.30)(@unocss/reset@0.58.7)(floating-vue@5.2.2)(rollup@4.13.0)(typescript@5.4.3)(unocss@0.58.7)(vite@5.2.6)(vue-tsc@2.0.7) + nuxt-gtag: + specifier: ^2.0.5 + version: 2.0.5(rollup@4.13.0) + nuxt-security: + specifier: ^1.2.2 + version: 1.2.2(rollup@4.13.0) + nuxt-splide: + specifier: ^1.1.0 + version: 1.1.0(rollup@4.13.0) + vue-tsc: + specifier: ^2.0.7 + version: 2.0.7(typescript@5.4.3) + + packages/changeset: + dependencies: + '@changesets/config': + specifier: ^3.0.0 + version: 3.0.0 + '@changesets/read': + specifier: ^0.6.0 + version: 0.6.0 + '@changesets/write': + specifier: ^0.3.0 + version: 0.3.0 + '@manypkg/get-packages': + specifier: ^2.2.1 + version: 2.2.1 + commander: + specifier: ^12.0.0 + version: 12.0.0 + devDependencies: + '@alanlu-dev/eslint-config-base': + specifier: workspace:* + version: link:../linters/eslint-config/base + '@alanlu-dev/tsconfig': + specifier: workspace:* + version: link:../linters/tsconfig + '@alanlu-dev/types': + specifier: workspace:* + version: link:../types + '@changesets/types': + specifier: ^6.0.0 + version: 6.0.0 + + packages/linters/commitlint-config: + devDependencies: + '@alanlu-dev/eslint-config-base': + specifier: workspace:* + version: link:../eslint-config/base + '@commitlint/cli': + specifier: ^19.2.1 + version: 19.2.1(@types/node@20.11.30)(typescript@5.4.3) + '@commitlint/config-conventional': + specifier: ^19.1.0 + version: 19.1.0 + czg: + specifier: ^1.9.0 + version: 1.9.0 - packages/linters/eslint-config: + packages/linters/eslint-config/base: devDependencies: '@antfu/eslint-config': - specifier: ^2.7.0 - version: 2.7.0(@vue/compiler-sfc@3.4.21)(eslint@8.57.0)(typescript@5.3.3) + specifier: 0.43.1 + version: 0.43.1(eslint@8.57.0)(typescript@5.4.3) + '@master/eslint-config-css': + specifier: 2.0.0-rc.26 + version: 2.0.0-rc.26(eslint@8.57.0)(typescript@5.4.3) + eslint: + specifier: ^8.57.0 + version: 8.57.0 eslint-config-prettier: specifier: ^9.1.0 version: 9.1.0(eslint@8.57.0) - eslint-plugin-markdown: - specifier: ^3.0.1 - version: 3.0.1(eslint@8.57.0) - eslint-plugin-mdx: - specifier: ^3.1.5 - version: 3.1.5(eslint@8.57.0) eslint-plugin-prettier: specifier: ^5.1.3 version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) + eslint-plugin-vitest: + specifier: ^0.4.0 + version: 0.4.0(eslint@8.57.0)(typescript@5.4.3)(vitest@1.4.0) + + packages/linters/lint-staged-config: + devDependencies: + '@alanlu-dev/eslint-config-base': + specifier: workspace:* + version: link:../eslint-config/base + eslint: + specifier: ^8.57.0 + version: 8.57.0 + lint-staged: + specifier: ^15.2.2 + version: 15.2.2 + markdownlint-cli2: + specifier: ^0.12.1 + version: 0.12.1 + prettier: + specifier: ^3.2.5 + version: 3.2.5 + stylelint: + specifier: ^16.3.1 + version: 16.3.1(typescript@5.4.3) packages/linters/markdownlint-config: devDependencies: + '@alanlu-dev/eslint-config-base': + specifier: workspace:* + version: link:../eslint-config/base '@github/markdownlint-github': - specifier: ^0.6.0 - version: 0.6.0 + specifier: ^0.6.2 + version: 0.6.2 + markdownlint-cli2: + specifier: ^0.12.1 + version: 0.12.1 markdownlint-cli2-formatter-pretty: specifier: ^0.0.5 version: 0.0.5(markdownlint-cli2@0.12.1) packages/linters/prettier-config: devDependencies: + '@alanlu-dev/eslint-config-base': + specifier: workspace:* + version: link:../eslint-config/base + prettier: + specifier: ^3.2.5 + version: 3.2.5 prettier-plugin-brace-style: specifier: ^0.6.0 version: 0.6.0(prettier@3.2.5) @@ -102,13 +423,115 @@ importers: specifier: ^0.6.0 version: 0.6.0(prettier@3.2.5) + packages/linters/stylelint-config: + devDependencies: + '@alanlu-dev/eslint-config-base': + specifier: workspace:* + version: link:../eslint-config/base + postcss: + specifier: ^8.4.38 + version: 8.4.38 + postcss-html: + specifier: ^1.6.0 + version: 1.6.0 + postcss-preset-env: + specifier: ^9.5.2 + version: 9.5.2(postcss@8.4.38) + postcss-scss: + specifier: ^4.0.9 + version: 4.0.9(postcss@8.4.38) + sass: + specifier: ^1.72.0 + version: 1.72.0 + stylelint: + specifier: ^16.3.1 + version: 16.3.1(typescript@5.4.3) + stylelint-config-recess-order: + specifier: ^5.0.0 + version: 5.0.0(stylelint@16.3.1) + stylelint-config-recommended-vue: + specifier: ^1.5.0 + version: 1.5.0(postcss-html@1.6.0)(stylelint@16.3.1) + stylelint-config-standard-scss: + specifier: ^13.0.0 + version: 13.0.0(postcss@8.4.38)(stylelint@16.3.1) + + packages/linters/tsconfig: + devDependencies: + '@alanlu-dev/eslint-config-base': + specifier: workspace:* + version: link:../eslint-config/base + '@types/node': + specifier: ^20.11.30 + version: 20.11.30 + typescript: + specifier: ^5.4.3 + version: 5.4.3 + + packages/mastercss/config: + devDependencies: + '@alanlu-dev/eslint-config-base': + specifier: workspace:* + version: link:../../linters/eslint-config/base + '@alanlu-dev/mastercss-helpers': + specifier: workspace:* + version: link:../helpers + '@master/css': + specifier: 2.0.0-rc.26 + version: 2.0.0-rc.26 + '@master/css-validator': + specifier: 2.0.0-rc.26 + version: 2.0.0-rc.26 + ts-deepmerge: + specifier: ^7.0.0 + version: 7.0.0 + packages/mastercss/helpers: {} + packages/scss: + devDependencies: + '@alanlu-dev/stylelint-config': + specifier: workspace:* + version: link:../linters/stylelint-config + sass: + specifier: ^1.72.0 + version: 1.72.0 + + packages/types: + devDependencies: + '@alanlu-dev/eslint-config-base': + specifier: workspace:* + version: link:../linters/eslint-config/base + '@types/node': + specifier: ^20.11.30 + version: 20.11.30 + typescript: + specifier: ^5.4.3 + version: 5.4.3 + + packages/utils: + devDependencies: + '@alanlu-dev/eslint-config-base': + specifier: workspace:* + version: link:../linters/eslint-config/base + '@alanlu-dev/tsconfig': + specifier: workspace:* + version: link:../linters/tsconfig + '@alanlu-dev/types': + specifier: workspace:* + version: link:../types + packages: /@aashutoshrathi/word-wrap@1.2.6: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} + dev: true + + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: true /@ampproject/remapping@2.3.0: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} @@ -116,132 +539,141 @@ packages: dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - dev: false - /@antfu/eslint-config@2.7.0(@vue/compiler-sfc@3.4.21)(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-CMILR+ZeiahWk8LhDlsHij/LPygX6QvQxl5AknTXm2QcFpMR6CZ14JHxTgkQJnRLM78D/CYZXwV38rU3us3PlQ==} - hasBin: true - peerDependencies: - '@unocss/eslint-plugin': '>=0.50.0' - astro-eslint-parser: ^0.16.3 - eslint: '>=8.40.0' - eslint-plugin-astro: ^0.31.4 - eslint-plugin-format: '>=0.1.0' - eslint-plugin-react: ^7.33.2 - eslint-plugin-react-hooks: ^4.6.0 - eslint-plugin-react-refresh: ^0.4.4 - eslint-plugin-svelte: ^2.34.1 - prettier-plugin-slidev: ^1.0.5 - svelte-eslint-parser: ^0.33.1 - peerDependenciesMeta: - '@unocss/eslint-plugin': - optional: true - astro-eslint-parser: - optional: true - eslint-plugin-astro: - optional: true - eslint-plugin-format: - optional: true - eslint-plugin-react: - optional: true - eslint-plugin-react-hooks: - optional: true - eslint-plugin-react-refresh: - optional: true - eslint-plugin-svelte: - optional: true - prettier-plugin-slidev: - optional: true - svelte-eslint-parser: - optional: true + /@antfu/eslint-config-basic@0.43.1(@typescript-eslint/eslint-plugin@6.21.0)(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-SW6hmGmqI985fsCJ+oivo4MbiMmRMgCJ0Ne8j/hwCB6O6Mc0m5bDqYeKn5HqFhvZhG84GEg5jPDKNiHrBYnQjw==} + peerDependencies: + eslint: '>=7.4.0' dependencies: - '@antfu/eslint-define-config': 1.23.0-2 - '@antfu/install-pkg': 0.3.1 - '@eslint-types/jsdoc': 46.8.2-1 - '@eslint-types/typescript-eslint': 7.0.2 - '@eslint-types/unicorn': 51.0.1 - '@stylistic/eslint-plugin': 1.6.3(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/eslint-plugin': 7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@stylistic/eslint-plugin-js': 0.0.4 eslint: 8.57.0 - eslint-config-flat-gitignore: 0.1.3 - eslint-merge-processors: 0.1.0(eslint@8.57.0) - eslint-plugin-antfu: 2.1.2(eslint@8.57.0) + eslint-plugin-antfu: 0.43.1(eslint@8.57.0)(typescript@5.4.3) eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) - eslint-plugin-i: 2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0) - eslint-plugin-jsdoc: 48.2.0(eslint@8.57.0) - eslint-plugin-jsonc: 2.13.0(eslint@8.57.0) + eslint-plugin-html: 7.1.0 + eslint-plugin-import: /eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0) + eslint-plugin-jsdoc: 46.10.1(eslint@8.57.0) + eslint-plugin-jsonc: 2.14.1(eslint@8.57.0) eslint-plugin-markdown: 3.0.1(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-perfectionist: 2.5.0(eslint@8.57.0)(typescript@5.3.3)(vue-eslint-parser@9.4.2) - eslint-plugin-toml: 0.9.2(eslint@8.57.0) - eslint-plugin-unicorn: 51.0.1(eslint@8.57.0) - eslint-plugin-unused-imports: 3.1.0(@typescript-eslint/eslint-plugin@7.1.0)(eslint@8.57.0) - eslint-plugin-vitest: 0.3.22(@typescript-eslint/eslint-plugin@7.1.0)(eslint@8.57.0)(typescript@5.3.3) - eslint-plugin-vue: 9.22.0(eslint@8.57.0) - eslint-plugin-yml: 1.12.2(eslint@8.57.0) - eslint-processor-vue-blocks: 0.1.1(@vue/compiler-sfc@3.4.21)(eslint@8.57.0) - globals: 14.0.0 + eslint-plugin-promise: 6.1.1(eslint@8.57.0) + eslint-plugin-unicorn: 48.0.1(eslint@8.57.0) + eslint-plugin-unused-imports: 3.1.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.57.0) + eslint-plugin-yml: 1.13.2(eslint@8.57.0) jsonc-eslint-parser: 2.4.0 - local-pkg: 0.5.0 - parse-gitignore: 2.0.0 - picocolors: 1.0.0 - prompts: 2.4.2 - toml-eslint-parser: 0.9.3 - vue-eslint-parser: 9.4.2(eslint@8.57.0) yaml-eslint-parser: 1.2.2 - yargs: 17.7.2 transitivePeerDependencies: - - '@vue/compiler-sfc' + - '@typescript-eslint/eslint-plugin' + - '@typescript-eslint/parser' - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - - svelte - typescript - - vitest dev: true - /@antfu/eslint-define-config@1.23.0-2: - resolution: {integrity: sha512-LvxY21+ZhpuBf/aHeBUtGQhSEfad4PkNKXKvDOSvukaM3XVTfBhwmHX2EKwAsdq5DlfjbT3qqYyMiueBIO5iDQ==} - engines: {node: '>=18.0.0', npm: '>=9.0.0', pnpm: '>= 8.6.0'} + /@antfu/eslint-config-ts@0.43.1(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-s3zItBSopYbM/3eii/JKas1PmWR+wCPRNS89qUi4zxPvpuIgN5mahkBvbsCiWacrNFtLxe1zGgo5qijBhVfuvA==} + peerDependencies: + eslint: '>=7.4.0' + typescript: '>=3.9' + dependencies: + '@antfu/eslint-config-basic': 0.43.1(@typescript-eslint/eslint-plugin@6.21.0)(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.3) + '@stylistic/eslint-plugin-ts': 0.0.4(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3) + eslint: 8.57.0 + eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.57.0)(typescript@5.4.3) + typescript: 5.4.3 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color dev: true - /@antfu/install-pkg@0.3.1: - resolution: {integrity: sha512-A3zWY9VeTPnxlMiZtsGHw2lSd3ghwvL8s9RiGOtqvDxhhFfZ781ynsGBa/iUnDJ5zBrmTFQrJDud3TGgRISaxw==} + /@antfu/eslint-config-vue@0.43.1(@typescript-eslint/eslint-plugin@6.21.0)(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-HxOfe8Vl+DPrzssbs5LHRDCnBtCy1LSA1DIeV71IC+iTpzoASFahSsVX5qckYu1InFgUm93XOhHCWm34LzPsvg==} + peerDependencies: + eslint: '>=7.4.0' dependencies: - execa: 8.0.1 + '@antfu/eslint-config-basic': 0.43.1(@typescript-eslint/eslint-plugin@6.21.0)(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.3) + '@antfu/eslint-config-ts': 0.43.1(eslint@8.57.0)(typescript@5.4.3) + eslint: 8.57.0 + eslint-plugin-vue: 9.24.0(eslint@8.57.0) + local-pkg: 0.4.3 + transitivePeerDependencies: + - '@typescript-eslint/eslint-plugin' + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + - typescript + dev: true + + /@antfu/eslint-config@0.43.1(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-kTOJeCqhotaiQ/Rv6JxgfAX+SxUq2GII4ZIvTa3GWBUXhFMBvehdUNtxcmO8/HxwxYKkm34/qeF+v7osBsMF1w==} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + '@antfu/eslint-config-vue': 0.43.1(@typescript-eslint/eslint-plugin@6.21.0)(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3) + eslint: 8.57.0 + eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) + eslint-plugin-html: 7.1.0 + eslint-plugin-import: /eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0) + eslint-plugin-jsonc: 2.14.1(eslint@8.57.0) + eslint-plugin-n: 16.6.2(eslint@8.57.0) + eslint-plugin-promise: 6.1.1(eslint@8.57.0) + eslint-plugin-unicorn: 48.0.1(eslint@8.57.0) + eslint-plugin-vue: 9.24.0(eslint@8.57.0) + eslint-plugin-yml: 1.13.2(eslint@8.57.0) + jsonc-eslint-parser: 2.4.0 + yaml-eslint-parser: 1.2.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + - typescript + dev: true + + /@antfu/install-pkg@0.1.1: + resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} + dependencies: + execa: 5.1.1 + find-up: 5.0.0 dev: true /@antfu/utils@0.7.7: resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==} - dev: false + dev: true - /@babel/code-frame@7.23.5: - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + /@babel/code-frame@7.24.2: + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 - /@babel/compat-data@7.23.5: - resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + /@babel/compat-data@7.24.1: + resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} engines: {node: '>=6.9.0'} - dev: false - /@babel/core@7.24.0: - resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} + /@babel/core@7.24.3: + resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.1 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helpers': 7.24.0 - '@babel/parser': 7.24.0 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) + '@babel/helpers': 7.24.1 + '@babel/parser': 7.24.1 '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 + '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 convert-source-map: 2.0.0 debug: 4.3.4 @@ -250,58 +682,54 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: false - /@babel/generator@7.23.6: - resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} + /@babel/generator@7.24.1: + resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - dev: false /@babel/helper-annotate-as-pure@7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - dev: false + dev: true /@babel/helper-compilation-targets@7.23.6: resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.23.5 + '@babel/compat-data': 7.24.1 '@babel/helper-validator-option': 7.23.5 browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 - dev: false - /@babel/helper-create-class-features-plugin@7.24.0(@babel/core@7.24.0): - resolution: {integrity: sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==} + /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - dev: false + dev: true /@babel/helper-environment-visitor@7.22.20: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} - dev: false /@babel/helper-function-name@7.23.0: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} @@ -309,90 +737,91 @@ packages: dependencies: '@babel/template': 7.24.0 '@babel/types': 7.24.0 - dev: false /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - dev: false /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - dev: false + dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - dev: false + dev: true + + /@babel/helper-module-imports@7.24.3: + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 - /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 + '@babel/helper-module-imports': 7.24.3 '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 - dev: false /@babel/helper-optimise-call-expression@7.22.5: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - dev: false + dev: true /@babel/helper-plugin-utils@7.24.0: resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} - dev: false + dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.24.0): - resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - dev: false + dev: true /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - dev: false /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - dev: false + dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - dev: false - /@babel/helper-string-parser@7.23.4: - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + /@babel/helper-string-parser@7.24.1: + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} /@babel/helper-validator-identifier@7.22.20: @@ -402,159 +831,198 @@ packages: /@babel/helper-validator-option@7.23.5: resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} - dev: false - /@babel/helpers@7.24.0: - resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} + /@babel/helpers@7.24.1: + resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 + '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 transitivePeerDependencies: - supports-color - dev: false - /@babel/highlight@7.23.4: - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + /@babel/highlight@7.24.2: + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 + picocolors: 1.0.0 - /@babel/parser@7.24.0: - resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} + /@babel/parser@7.24.1: + resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: '@babel/types': 7.24.0 - /@babel/plugin-proposal-decorators@7.24.0(@babel/core@7.24.0): - resolution: {integrity: sha512-LiT1RqZWeij7X+wGxCoYh3/3b8nVOX6/7BZ9wiQgAIyjoeQWdROaodJCgT+dwtbjHaz0r7bEbHJzjSbVfcOyjQ==} + /@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) + '@babel/core': 7.24.3 + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-decorators': 7.24.0(@babel/core@7.24.0) - dev: false + '@babel/plugin-syntax-decorators': 7.24.1(@babel/core@7.24.3) + dev: true - /@babel/plugin-syntax-decorators@7.24.0(@babel/core@7.24.0): - resolution: {integrity: sha512-MXW3pQCu9gUiVGzqkGqsgiINDVYXoAnrY8FYF/rmb+OfufNF0zHMpHPN4ulRrinxYT8Vk/aZJxYqOKsDECjKAw==} + /@babel/plugin-syntax-decorators@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} + /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} + /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - dev: false + dev: true + + /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-simple-access': 7.22.5 + dev: true - /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.24.0): - resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} + /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0) - dev: false + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3) + dev: true - /@babel/runtime@7.24.0: - resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} + /@babel/preset-typescript@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - regenerator-runtime: 0.14.1 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3) dev: true - /@babel/standalone@7.24.0: - resolution: {integrity: sha512-yIZ/X3EAASgX/MW1Bn8iZKxCwixgYJAUaIScoZ9C6Gapw5l3eKIbtVSgO/IGldQed9QXm22yurKVWyWj5/j+SQ==} + /@babel/runtime@7.24.1: + resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + + /@babel/standalone@7.24.3: + resolution: {integrity: sha512-PbObiI21Z/1DoJLr6DKsdmyp7uUIuw6zv5zIMorH98rOBE/TehkjK7xqXiwJmbCqi7deVbIksDerZ9Ds9hRLGw==} engines: {node: '>=6.9.0'} - dev: false /@babel/template@7.24.0: resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.24.0 + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.1 '@babel/types': 7.24.0 - dev: false - /@babel/traverse@7.24.0: - resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} + /@babel/traverse@7.24.1: + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.1 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.0 + '@babel/parser': 7.24.1 '@babel/types': 7.24.0 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: false /@babel/types@7.24.0: resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.23.4 + '@babel/helper-string-parser': 7.24.1 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@capsizecss/metrics@1.3.0: + resolution: {integrity: sha512-dcAXsrrNs2zF3MC4T5iMGsiPm1NqTSdGgYI4YG17tAXL7jxKq0eWRsOWsY/gaYMTLXllgmZ+yaiKEVQ9UmEZrA==} + dev: true + + /@capsizecss/unpack@1.0.0: + resolution: {integrity: sha512-cXPI7IWQrPANXKYZwqZf53q2SuYnDkexpi9KzGNWls1NDK26lZqkE1Ry2XuMo9eGkqcmMSgVI8gJbMEgjX7bTQ==} + dependencies: + blob-to-buffer: 1.2.9 + cross-fetch: 3.1.8 + fontkit: 2.0.2 + transitivePeerDependencies: + - encoding + dev: true + /@changesets/apply-release-plan@7.0.0: resolution: {integrity: sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==} dependencies: - '@babel/runtime': 7.24.0 + '@babel/runtime': 7.24.1 '@changesets/config': 3.0.0 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.0 @@ -572,7 +1040,7 @@ packages: /@changesets/assemble-release-plan@6.0.0: resolution: {integrity: sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw==} dependencies: - '@babel/runtime': 7.24.0 + '@babel/runtime': 7.24.1 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.0.0 '@changesets/types': 6.0.0 @@ -586,21 +1054,11 @@ packages: '@changesets/types': 6.0.0 dev: true - /@changesets/changelog-github@0.5.0: - resolution: {integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==} - dependencies: - '@changesets/get-github-info': 0.6.0 - '@changesets/types': 6.0.0 - dotenv: 8.6.0 - transitivePeerDependencies: - - encoding - dev: true - /@changesets/cli@2.27.1: resolution: {integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==} hasBin: true dependencies: - '@babel/runtime': 7.24.0 + '@babel/runtime': 7.24.1 '@changesets/apply-release-plan': 7.0.0 '@changesets/assemble-release-plan': 6.0.0 '@changesets/changelog-git': 0.2.0 @@ -644,13 +1102,11 @@ packages: '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 micromatch: 4.0.5 - dev: true /@changesets/errors@0.2.0: resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} dependencies: extendable-error: 0.1.7 - dev: true /@changesets/get-dependents-graph@2.0.0: resolution: {integrity: sha512-cafUXponivK4vBgZ3yLu944mTvam06XEn2IZGjjKc0antpenkYANXiiE6GExV/yKdsCnE8dXVZ25yGqLYZmScA==} @@ -660,21 +1116,11 @@ packages: chalk: 2.4.2 fs-extra: 7.0.1 semver: 7.6.0 - dev: true - - /@changesets/get-github-info@0.6.0: - resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} - dependencies: - dataloader: 1.4.0 - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - dev: true /@changesets/get-release-plan@4.0.0: resolution: {integrity: sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==} dependencies: - '@babel/runtime': 7.24.0 + '@babel/runtime': 7.24.1 '@changesets/assemble-release-plan': 6.0.0 '@changesets/config': 3.0.0 '@changesets/pre': 2.0.0 @@ -690,32 +1136,29 @@ packages: /@changesets/git@3.0.0: resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} dependencies: - '@babel/runtime': 7.24.0 + '@babel/runtime': 7.24.1 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 is-subdir: 1.2.0 micromatch: 4.0.5 spawndamnit: 2.0.0 - dev: true /@changesets/logger@0.1.0: resolution: {integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==} dependencies: chalk: 2.4.2 - dev: true /@changesets/parse@0.4.0: resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} dependencies: '@changesets/types': 6.0.0 js-yaml: 3.14.1 - dev: true /@changesets/pre@2.0.0: resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} dependencies: - '@babel/runtime': 7.24.0 + '@babel/runtime': 7.24.1 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -725,7 +1168,7 @@ packages: /@changesets/read@0.6.0: resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} dependencies: - '@babel/runtime': 7.24.0 + '@babel/runtime': 7.24.1 '@changesets/git': 3.0.0 '@changesets/logger': 0.1.0 '@changesets/parse': 0.4.0 @@ -733,41 +1176,106 @@ packages: chalk: 2.4.2 fs-extra: 7.0.1 p-filter: 2.1.0 - dev: true /@changesets/types@4.1.0: resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} - dev: true /@changesets/types@6.0.0: resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} - dev: true /@changesets/write@0.3.0: resolution: {integrity: sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw==} dependencies: - '@babel/runtime': 7.24.0 + '@babel/runtime': 7.24.1 '@changesets/types': 6.0.0 fs-extra: 7.0.1 human-id: 1.0.2 prettier: 2.8.8 - dev: true /@cloudflare/kv-asset-handler@0.3.1: resolution: {integrity: sha512-lKN2XCfKCmpKb86a1tl4GIwsJYDy9TGuwjhDELLmpKygQhw8X2xR4dusgpC5Tg7q1pB96Eb0rBo81kxSILQMwA==} dependencies: mime: 3.0.0 - dev: false + dev: true + + /@codemirror/autocomplete@6.15.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.0)(@lezer/common@1.2.1): + resolution: {integrity: sha512-G2Zm0mXznxz97JhaaOdoEG2cVupn4JjPaS4AcNvZzhOsnnG9YVN68VzfoUw6dYTsIxT6a/cmoFEN47KAWhXaOg==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.0 + '@lezer/common': 1.2.1 + dev: true + + /@codemirror/commands@6.3.3: + resolution: {integrity: sha512-dO4hcF0fGT9tu1Pj1D2PvGvxjeGkbC6RGcZw6Qs74TH+Ed1gw98jmUgd2axWvIZEqTeTuFrg1lEB1KV6cK9h1A==} + dependencies: + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.0 + '@lezer/common': 1.2.1 + dev: true + + /@codemirror/lang-json@6.0.1: + resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} + dependencies: + '@codemirror/language': 6.10.1 + '@lezer/json': 1.0.2 + dev: true + + /@codemirror/language@6.10.1: + resolution: {integrity: sha512-5GrXzrhq6k+gL5fjkAwt90nYDmjlzTIJV8THnxNFtNKWotMIlzzN+CpqxqwXOECnUdOndmSeWntVrVcv5axWRQ==} + dependencies: + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.0 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + style-mod: 4.1.2 + dev: true + + /@codemirror/lint@6.5.0: + resolution: {integrity: sha512-+5YyicIaaAZKU8K43IQi8TBy6mF6giGeWAH7N96Z5LC30Wm5JMjqxOYIE9mxwMG1NbhT2mA3l9hA4uuKUM3E5g==} + dependencies: + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.0 + crelt: 1.0.6 + dev: true + + /@codemirror/search@6.5.6: + resolution: {integrity: sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==} + dependencies: + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.0 + crelt: 1.0.6 + dev: true + + /@codemirror/state@6.4.1: + resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} + dev: true + + /@codemirror/view@6.26.0: + resolution: {integrity: sha512-nSSmzONpqsNzshPOxiKhK203R6BvABepugAe34QfQDbNDslyjkqBuKgrK5ZBvqNXpfxz5iLrlGTmEfhbQyH46A==} + dependencies: + '@codemirror/state': 6.4.1 + style-mod: 4.1.2 + w3c-keyname: 2.2.8 + dev: true - /@commitlint/cli@19.0.3(@types/node@20.11.24)(typescript@5.3.3): - resolution: {integrity: sha512-mGhh/aYPib4Vy4h+AGRloMY+CqkmtdeKPV9poMcZeImF5e3knQ5VYaSeAM0mEzps1dbKsHvABwaDpafLUuM96g==} + /@commitlint/cli@19.2.1(@types/node@20.11.30)(typescript@5.4.3): + resolution: {integrity: sha512-cbkYUJsLqRomccNxvoJTyv5yn0bSy05BBizVyIcLACkRbVUqYorC351Diw/XFSWC/GtpwiwT2eOvQgFZa374bg==} engines: {node: '>=v18'} hasBin: true dependencies: '@commitlint/format': 19.0.3 - '@commitlint/lint': 19.0.3 - '@commitlint/load': 19.0.3(@types/node@20.11.24)(typescript@5.3.3) - '@commitlint/read': 19.0.3 + '@commitlint/lint': 19.1.0 + '@commitlint/load': 19.2.0(@types/node@20.11.30)(typescript@5.4.3) + '@commitlint/read': 19.2.1 '@commitlint/types': 19.0.3 execa: 8.0.1 yargs: 17.7.2 @@ -776,8 +1284,8 @@ packages: - typescript dev: true - /@commitlint/config-conventional@19.0.3: - resolution: {integrity: sha512-vh0L8XeLaEzTe8VCxSd0gAFvfTK0RFolrzw4o431bIuWJfi/yRCHJlsDwus7wW2eJaFFDR0VFXJyjGyDQhi4vA==} + /@commitlint/config-conventional@19.1.0: + resolution: {integrity: sha512-KIKD2xrp6Uuk+dcZVj3++MlzIr/Su6zLE8crEDQCZNvWHNQSeeGbzOlNtsR32TUy6H3JbP7nWgduAHCaiGQ6EA==} engines: {node: '>=v18'} dependencies: '@commitlint/types': 19.0.3 @@ -825,8 +1333,8 @@ packages: semver: 7.6.0 dev: true - /@commitlint/lint@19.0.3: - resolution: {integrity: sha512-uHPyRqIn57iIplYa5xBr6oNu5aPXKGC4WLeuHfqQHclwIqbJ33g3yA5fIA+/NYnp5ZM2EFiujqHFaVUYj6HlKA==} + /@commitlint/lint@19.1.0: + resolution: {integrity: sha512-ESjaBmL/9cxm+eePyEr6SFlBUIYlYpI80n+Ltm7IA3MAcrmiP05UMhJdAD66sO8jvo8O4xdGn/1Mt2G5VzfZKw==} engines: {node: '>=v18'} dependencies: '@commitlint/is-ignored': 19.0.3 @@ -835,17 +1343,17 @@ packages: '@commitlint/types': 19.0.3 dev: true - /@commitlint/load@19.0.3(@types/node@20.11.24)(typescript@5.3.3): - resolution: {integrity: sha512-18Tk/ZcDFRKIoKfEcl7kC+bYkEQ055iyKmGsYDoYWpKf6FUvBrP9bIWapuy/MB+kYiltmP9ITiUx6UXtqC9IRw==} + /@commitlint/load@19.2.0(@types/node@20.11.30)(typescript@5.4.3): + resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} engines: {node: '>=v18'} dependencies: '@commitlint/config-validator': 19.0.3 '@commitlint/execute-rule': 19.0.0 - '@commitlint/resolve-extends': 19.0.3 + '@commitlint/resolve-extends': 19.1.0 '@commitlint/types': 19.0.3 chalk: 5.3.0 - cosmiconfig: 8.3.6(typescript@5.3.3) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.11.24)(cosmiconfig@8.3.6)(typescript@5.3.3) + cosmiconfig: 9.0.0(typescript@5.4.3) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.11.30)(cosmiconfig@9.0.0)(typescript@5.4.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -868,18 +1376,19 @@ packages: conventional-commits-parser: 5.0.0 dev: true - /@commitlint/read@19.0.3: - resolution: {integrity: sha512-b5AflTyAXkUx5qKw4TkjjcOccXZHql3JqMi522knTQktq2AubKXFz60Sws+K4FsefwPws6fGz9mqiI/NvsvxFA==} + /@commitlint/read@19.2.1: + resolution: {integrity: sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==} engines: {node: '>=v18'} dependencies: '@commitlint/top-level': 19.0.0 '@commitlint/types': 19.0.3 + execa: 8.0.1 git-raw-commits: 4.0.0 minimist: 1.2.8 dev: true - /@commitlint/resolve-extends@19.0.3: - resolution: {integrity: sha512-18BKmta8OC8+Ub+Q3QGM9l27VjQaXobloVXOrMvu8CpEwJYv62vC/t7Ka5kJnsW0tU9q1eMqJFZ/nN9T/cOaIA==} + /@commitlint/resolve-extends@19.1.0: + resolution: {integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==} engines: {node: '>=v18'} dependencies: '@commitlint/config-validator': 19.0.3 @@ -921,8 +1430,8 @@ packages: chalk: 5.3.0 dev: true - /@cspell/cspell-bundled-dicts@8.5.0: - resolution: {integrity: sha512-bwiu+D3UZlLn4buaehtkn8BuVEMtJcmfudci5/NmbuSwS1ayzl17T76D4R2e1kalad0cR+yYMrd+eshMx3loaw==} + /@cspell/cspell-bundled-dicts@8.6.1: + resolution: {integrity: sha512-s6Av1xIgctYLuUiazKZjQ2WRUXc9dU38BOZXwM/lb7y8grQMEuTjST1c+8MOkZkppx48/sO7GHIF3k9rEzD3fg==} engines: {node: '>=18'} dependencies: '@cspell/dict-ada': 4.0.2 @@ -952,6 +1461,7 @@ packages: '@cspell/dict-html': 4.0.5 '@cspell/dict-html-symbol-entities': 4.0.0 '@cspell/dict-java': 5.0.6 + '@cspell/dict-julia': 1.0.1 '@cspell/dict-k8s': 1.0.2 '@cspell/dict-latex': 4.0.0 '@cspell/dict-lorem-ipsum': 4.0.0 @@ -971,36 +1481,37 @@ packages: '@cspell/dict-sql': 2.1.3 '@cspell/dict-svelte': 1.0.2 '@cspell/dict-swift': 2.0.1 + '@cspell/dict-terraform': 1.0.0 '@cspell/dict-typescript': 3.1.2 '@cspell/dict-vue': 3.0.0 dev: true - /@cspell/cspell-json-reporter@8.5.0: - resolution: {integrity: sha512-9oQWdQYZP+z3GHyKj0yrfDEOd3oVAkPLxfBrELdk1+igFl63jSYz3TyH0/x07yhEQtjdb2K7Vem58mP1mXQlUg==} + /@cspell/cspell-json-reporter@8.6.1: + resolution: {integrity: sha512-75cmJgU9iQgrDnLFIUyvgybySJJi29BPw71z+8ZO9WhNofufxoSjaWepZeYV2nK0nHXM+MbdQG5Mmj/Lv6J1FA==} engines: {node: '>=18'} dependencies: - '@cspell/cspell-types': 8.5.0 + '@cspell/cspell-types': 8.6.1 dev: true - /@cspell/cspell-pipe@8.5.0: - resolution: {integrity: sha512-PDg6TgH4COs/v5dq+Isfxzk8omuJ86bZBR9UCuK2zwn5EsGouAPsdcFoNLcEdDkjKLObGzM0o9XSj0/TdaOmIQ==} + /@cspell/cspell-pipe@8.6.1: + resolution: {integrity: sha512-guIlGhhOLQwfqevBSgp26b+SX4I1hCH+puAksWAk93bybKkcGtGpcavAQSN9qvamox4zcHnvGutEPF+UcXuceQ==} engines: {node: '>=18'} dev: true - /@cspell/cspell-resolver@8.5.0: - resolution: {integrity: sha512-zv1lk21OneXuAF4wWe1eEw9zTMJCRUQifslM3IuzfcpahttgjLSfCiFv0x58YqCwtY7hD4M+vwXHmxV5p1Q/5g==} + /@cspell/cspell-resolver@8.6.1: + resolution: {integrity: sha512-ZUbYcvEhfokHG9qfUlIylUqEobG84PiDozCkE8U4h/rTSmYkf/nAD+M6yg+jQ0F2aTFGNbvpKKGFlfXFXveX7A==} engines: {node: '>=18'} dependencies: global-directory: 4.0.1 dev: true - /@cspell/cspell-service-bus@8.5.0: - resolution: {integrity: sha512-GnCK2jSWflvvHUurwCxVxJpupr3G1xAUeUNG1R3+sFRF51/kZ2ZtjJxUOby1a3lyHLBte4o6N3GbqxFFvh27nw==} + /@cspell/cspell-service-bus@8.6.1: + resolution: {integrity: sha512-WpI3fSW8t00UMetfd6tS8f9+xE3+ElIUO/bQ1YKK95TMIRdEUcH+QDxcHM66pJXEm4WiaN3H/MfWk1fIhGlJ8g==} engines: {node: '>=18'} dev: true - /@cspell/cspell-types@8.5.0: - resolution: {integrity: sha512-2C7BFF9TzQsA0972/TriDRtwD5X1UUuSNWZ/NCpWzgZAw9JXmTIXj6D5QQWq2fcQ2KzcKaEeL6TanOl2iZfxlA==} + /@cspell/cspell-types@8.6.1: + resolution: {integrity: sha512-MXa9v6sXbbwyiNno7v7vczNph6AsMNWnpMRCcW3h/siXNQYRuMssdxqT5sQJ8Kurh3M/Wo7DlKX4n74elKL3iQ==} engines: {node: '>=18'} dev: true @@ -1116,6 +1627,10 @@ packages: resolution: {integrity: sha512-kdE4AHHHrixyZ5p6zyms1SLoYpaJarPxrz8Tveo6gddszBVVwIUZ+JkQE1bWNLK740GWzIXdkznpUfw1hP9nXw==} dev: true + /@cspell/dict-julia@1.0.1: + resolution: {integrity: sha512-4JsCLCRhhLMLiaHpmR7zHFjj1qOauzDI5ZzCNQS31TUMfsOo26jAKDfo0jljFAKgw5M2fEG7sKr8IlPpQAYrmQ==} + dev: true + /@cspell/dict-k8s@1.0.2: resolution: {integrity: sha512-tLT7gZpNPnGa+IIFvK9SP1LrSpPpJ94a/DulzAPOb1Q2UBFwdpFd82UWhio0RNShduvKG/WiMZf/wGl98pn+VQ==} dev: true @@ -1194,6 +1709,10 @@ packages: resolution: {integrity: sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==} dev: true + /@cspell/dict-terraform@1.0.0: + resolution: {integrity: sha512-Ak+vy4HP/bOgzf06BAMC30+ZvL9mzv21xLM2XtfnBLTDJGdxlk/nK0U6QT8VfFLqJ0ZZSpyOxGsUebWDCTr/zQ==} + dev: true + /@cspell/dict-typescript@3.1.2: resolution: {integrity: sha512-lcNOYWjLUvDZdLa0UMNd/LwfVdxhE9rKA+agZBGjL3lTA3uNvH7IUqSJM/IXhJoBpLLMVEOk8v1N9xi+vDuCdA==} dev: true @@ -1202,2061 +1721,4981 @@ packages: resolution: {integrity: sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==} dev: true - /@cspell/dynamic-import@8.5.0: - resolution: {integrity: sha512-IBrPx+Eo1yZF43oY4Iy5ESGsVkhHrfbYNcOAwfE3IJm2lbuWkR1aWIuWA/b69O88e/G0dEOFAlPfztrZVDG/Qw==} + /@cspell/dynamic-import@8.6.1: + resolution: {integrity: sha512-Fjvkcb5umIAcHfw/iiciYWgO2mXVuRZzQAWPSub6UFCxxcJlRz39YPXa+3O/m3lnXCeo8ChoaEN8qnuV4ogk6g==} engines: {node: '>=18.0'} dependencies: import-meta-resolve: 4.0.0 dev: true - /@cspell/strong-weak-map@8.5.0: - resolution: {integrity: sha512-9pmhmYJVOUtO4G3mtSI0qjgxGQsz6rbFjm5dewolIEK+8rha3rcrlBqXy/h6RDgLVuBfA7kEcBZQ70wzEwETwA==} + /@cspell/strong-weak-map@8.6.1: + resolution: {integrity: sha512-X6/7cy+GGVJFXsfrZapxVKn5mtehNTr7hTlg0bVj3iFoNYEPW9zq9l6WIcI4psmaU8G4DSrNsBK7pp87W3u16A==} engines: {node: '>=18'} dev: true - /@es-joy/jsdoccomment@0.42.0: - resolution: {integrity: sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==} - engines: {node: '>=16'} - dependencies: - comment-parser: 1.4.1 - esquery: 1.5.0 - jsdoc-type-pratt-parser: 4.0.0 - dev: true - - /@esbuild/aix-ppc64@0.19.12: - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - dev: false - optional: true - - /@esbuild/aix-ppc64@0.20.1: - resolution: {integrity: sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - dev: false - optional: true - - /@esbuild/android-arm64@0.19.12: - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@esbuild/android-arm64@0.20.1: - resolution: {integrity: sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@esbuild/android-arm@0.19.12: - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@esbuild/android-arm@0.20.1: - resolution: {integrity: sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==} - engines: {node: '>=12'} + /@css-inline/css-inline-android-arm-eabi@0.13.1: + resolution: {integrity: sha512-IpELOLMh6PIec6/2V9wtaIyWmoed7v5H3XA3N91sMdNqxX7B9FIiEEIBeg9lq+6f1rQWaC7/iC7gp0Ep5QChRA==} + engines: {node: '>= 10'} cpu: [arm] os: [android] requiresBuild: true - dev: false - optional: true - - /@esbuild/android-x64@0.19.12: - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@esbuild/android-x64@0.20.1: - resolution: {integrity: sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: false + dev: true optional: true - /@esbuild/darwin-arm64@0.19.12: - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} + /@css-inline/css-inline-android-arm64@0.13.1: + resolution: {integrity: sha512-fmcYqIXKm9r1DLVY64gMi09fKz+u3lt49u+093S1l+u0ES77IfImlbPWJxqtbUIZG7CELj5jcbfdgK9H8Z0ohg==} + engines: {node: '>= 10'} cpu: [arm64] - os: [darwin] + os: [android] requiresBuild: true - dev: false + dev: true optional: true - /@esbuild/darwin-arm64@0.20.1: - resolution: {integrity: sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==} - engines: {node: '>=12'} + /@css-inline/css-inline-darwin-arm64@0.13.1: + resolution: {integrity: sha512-2+2S7Qr1klU1rWQK5/Ru6XNyRvzXdjqCSM5FBdtT/mfKGCKQKAuh17kg9FNm4OOnCv5D8sNO24CZdeo0+xYL6A==} + engines: {node: '>= 10'} cpu: [arm64] os: [darwin] requiresBuild: true - dev: false + dev: true optional: true - /@esbuild/darwin-x64@0.19.12: - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} + /@css-inline/css-inline-darwin-x64@0.13.1: + resolution: {integrity: sha512-P078CMwyDLb7um3i5jkULsOQj0b9P0E5RVXjxQLoxQFromJpGABbwHdOD8xExo5f+jnCgK7AaVH4EPPj2UT5TQ==} + engines: {node: '>= 10'} cpu: [x64] os: [darwin] requiresBuild: true - dev: false + dev: true optional: true - /@esbuild/darwin-x64@0.20.1: - resolution: {integrity: sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] + /@css-inline/css-inline-linux-arm-gnueabihf@0.13.1: + resolution: {integrity: sha512-Mcxqz0Xg+yStGR0ZMiRZ4NnINcsEXwMt1C5GXNaFbp/cj7jIrfsZ9TSqCzD38yd2v3L44i1EP1wtV3GthI66Tw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /@esbuild/freebsd-arm64@0.19.12: - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} + /@css-inline/css-inline-linux-arm64-gnu@0.13.1: + resolution: {integrity: sha512-s42N8BUJKX+LSdjlJkRQdxE+0OrjW8fB6gnWbXs3omGPHQEi8mYRlfv0LDHWffEE9A5YagK34S6vycJIk4R1Qw==} + engines: {node: '>= 10'} cpu: [arm64] - os: [freebsd] + os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /@esbuild/freebsd-arm64@0.20.1: - resolution: {integrity: sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==} - engines: {node: '>=12'} + /@css-inline/css-inline-linux-arm64-musl@0.13.1: + resolution: {integrity: sha512-y/WJ68ZQmSp2PRKL1MNYVxTn0wVsBDiKsWxmObl9AvgXR508Cj0334/EWfGseGc6nd3wa7pnnPnJ6exZZ1avSw==} + engines: {node: '>= 10'} cpu: [arm64] - os: [freebsd] + os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /@esbuild/freebsd-x64@0.19.12: - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} + /@css-inline/css-inline-linux-x64-gnu@0.13.1: + resolution: {integrity: sha512-cozfGHUYfrq0sxp0GVNxkqkOCHnl0oBsCi8PmWaKSnLfo/rpVe9KzTOpo6loU9svAaxOm3injhyImvre6Zu0ig==} + engines: {node: '>= 10'} cpu: [x64] - os: [freebsd] + os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /@esbuild/freebsd-x64@0.20.1: - resolution: {integrity: sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==} - engines: {node: '>=12'} + /@css-inline/css-inline-linux-x64-musl@0.13.1: + resolution: {integrity: sha512-RFwWrFIKRJsU6YsXQyLsjirn/6sNezMiBzr9UoMwmLQYC/Ia9dXzJZtWwB0KThpnCiHDUR+fTEj2GrmUleRoVw==} + engines: {node: '>= 10'} cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-arm64@0.19.12: - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} - cpu: [arm64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /@esbuild/linux-arm64@0.20.1: - resolution: {integrity: sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@css-inline/css-inline-wasm@0.12.1: + resolution: {integrity: sha512-yw1PvRUIMky0JGLcLvJZ3sPSyhm77alDeN8M+NvUiQhXz8WhPZVF5EuJNHbKY5fozQIjYqk3GGEmwsbNqYlc6g==} + engines: {node: '>= 10'} + dev: true - /@esbuild/linux-arm@0.19.12: - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] + /@css-inline/css-inline-win32-x64-msvc@0.13.1: + resolution: {integrity: sha512-+LxH/kkDYWOcyJsutBM/0jFxiF/lYhrG1mu1K1/85p2Bc9Aldd/dGBmGu7GSNQwGsKYZLWsIeNNdehT7YfOj5A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] requiresBuild: true - dev: false + dev: true optional: true - /@esbuild/linux-arm@0.20.1: - resolution: {integrity: sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@css-inline/css-inline@0.13.1: + resolution: {integrity: sha512-X/apnCEVKPujmTdXOL0lWM74ac9+QRZnM2BmoV4Wt06DTy61wSr6LEJEbPX4BnFxRChfm6KnbZcAUqifBZFFRw==} + engines: {node: '>= 10'} + optionalDependencies: + '@css-inline/css-inline-android-arm-eabi': 0.13.1 + '@css-inline/css-inline-android-arm64': 0.13.1 + '@css-inline/css-inline-darwin-arm64': 0.13.1 + '@css-inline/css-inline-darwin-x64': 0.13.1 + '@css-inline/css-inline-linux-arm-gnueabihf': 0.13.1 + '@css-inline/css-inline-linux-arm64-gnu': 0.13.1 + '@css-inline/css-inline-linux-arm64-musl': 0.13.1 + '@css-inline/css-inline-linux-x64-gnu': 0.13.1 + '@css-inline/css-inline-linux-x64-musl': 0.13.1 + '@css-inline/css-inline-win32-x64-msvc': 0.13.1 + dev: true + + /@csstools/cascade-layer-name-parser@1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-RRqNjxTZDUhx7pxYOBG/AkCVmPS3zYzfE47GEhIGkFuWFTQGJBgWOUUkKNo5MfxIfjDz5/1L3F3rF1oIsYaIpw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.6.1 + '@csstools/css-tokenizer': ^2.2.4 + dependencies: + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + dev: true - /@esbuild/linux-ia32@0.19.12: - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@csstools/color-helpers@4.0.0: + resolution: {integrity: sha512-wjyXB22/h2OvxAr3jldPB7R7kjTUEzopvjitS8jWtyd8fN6xJ8vy1HnHu0ZNfEkqpBJgQ76Q+sBDshWcMvTa/w==} + engines: {node: ^14 || ^16 || >=18} + dev: true - /@esbuild/linux-ia32@0.20.1: - resolution: {integrity: sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@csstools/css-calc@1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-iQqIW5vDPqQdLx07/atCuNKDprhIWjB0b8XRhUyXZWBZYUG+9mNyFwyu30rypX84WLevVo25NYW2ipxR8WyseQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.6.1 + '@csstools/css-tokenizer': ^2.2.4 + dependencies: + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + dev: true - /@esbuild/linux-loong64@0.19.12: - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@csstools/css-color-parser@1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-mlt0PomBlDXMGcbPAqCG36Fw35LZTtaSgCQCHEs4k8QTv1cUKe0rJDlFSJMHtqrgQiLC7LAAS9+s9kKQp2ou/Q==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.6.1 + '@csstools/css-tokenizer': ^2.2.4 + dependencies: + '@csstools/color-helpers': 4.0.0 + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + dev: true - /@esbuild/linux-loong64@0.20.1: - resolution: {integrity: sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@csstools/css-parser-algorithms@2.6.1(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-tokenizer': ^2.2.4 + dependencies: + '@csstools/css-tokenizer': 2.2.4 + dev: true - /@esbuild/linux-mips64el@0.19.12: - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-mips64el@0.20.1: - resolution: {integrity: sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-ppc64@0.19.12: - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-ppc64@0.20.1: - resolution: {integrity: sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-riscv64@0.19.12: - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-riscv64@0.20.1: - resolution: {integrity: sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@csstools/css-tokenizer@2.2.4: + resolution: {integrity: sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==} + engines: {node: ^14 || ^16 || >=18} + dev: true - /@esbuild/linux-s390x@0.19.12: - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@csstools/media-query-list-parser@2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.6.1 + '@csstools/css-tokenizer': ^2.2.4 + dependencies: + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + dev: true - /@esbuild/linux-s390x@0.20.1: - resolution: {integrity: sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-cascade-layers@4.0.3(postcss@8.4.38): + resolution: {integrity: sha512-RbkQoOH23yGhWVetgBTwFgIOHEyU2tKMN7blTz/YAKKabR6tr9pP7mYS23Q9snFY2hr8WSaV8Le64KdM9BtUSA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.16) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true - /@esbuild/linux-x64@0.19.12: - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-color-function@3.0.12(postcss@8.4.38): + resolution: {integrity: sha512-amPGGDI4Xmgu7VN2ciKQe0pP/j5raaETT50nzbnkydp9FMw7imKxSUnXdVQU4NmRgpLKIc5Q7jox0MFhMBImIg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + dev: true - /@esbuild/linux-x64@0.20.1: - resolution: {integrity: sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-color-mix-function@2.0.12(postcss@8.4.38): + resolution: {integrity: sha512-qpAEGwVVqHSa88i3gLb43IMpT4/LyZEE8HzZylQKKXFVJ7XykXaORTmXySxyH6H+flT+NyCnutKG2fegCVyCug==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + dev: true - /@esbuild/netbsd-x64@0.19.12: - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-exponential-functions@1.0.5(postcss@8.4.38): + resolution: {integrity: sha512-7S7I7KgwHWQYzJJAoIjRtUf7DQs1dxipeg1A6ikZr0PYapNJX7UHz0evlpE67SQqYj1xBs70gpG7xUv3uLp4PA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.38 + dev: true - /@esbuild/netbsd-x64@0.20.1: - resolution: {integrity: sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-font-format-keywords@3.0.2(postcss@8.4.38): + resolution: {integrity: sha512-E0xz2sjm4AMCkXLCFvI/lyl4XO6aN1NCSMMVEOngFDJ+k2rDwfr6NDjWljk1li42jiLNChVX+YFnmfGCigZKXw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /@esbuild/openbsd-x64@0.19.12: - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-gamut-mapping@1.0.5(postcss@8.4.38): + resolution: {integrity: sha512-AJ74/4nHXgghLWY4/ydEhu3mzwN8c56EjIGrJsoEhKaNuGBAOtUfE5qbkc9XQQ0G2FMhHggqE+9eRrApeK7ebQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.38 + dev: true - /@esbuild/openbsd-x64@0.20.1: - resolution: {integrity: sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-gradients-interpolation-method@4.0.13(postcss@8.4.38): + resolution: {integrity: sha512-dBbyxs9g+mrIzmEH+UtrqJUmvcJB/60j0ijhBcVJMHCgl/rKjj8ey6r/pJOI0EhkVsckOu3Prc9AGzH88C+1pQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + dev: true - /@esbuild/sunos-x64@0.19.12: - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-hwb-function@3.0.11(postcss@8.4.38): + resolution: {integrity: sha512-c36FtMFptwGn5CmsfdONA40IlWG2lHeoC/TDyED/7lwiTht5okxe6iLAa9t2LjBBo5AHQSHfeMvOASdXk/SHog==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + dev: true - /@esbuild/sunos-x64@0.20.1: - resolution: {integrity: sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-ic-unit@3.0.5(postcss@8.4.38): + resolution: {integrity: sha512-9CriM/zvKXa/lDARlxs/MgeyKE6ZmmX4V77VLD7VUxKLVSt0Go3NCy/gRMbwGzxbrk3iaHFXnFbc2lNw+/7jcg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /@esbuild/win32-arm64@0.19.12: - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-initial@1.0.1(postcss@8.4.38): + resolution: {integrity: sha512-wtb+IbUIrIf8CrN6MLQuFR7nlU5C7PwuebfeEXfjthUha1+XZj2RVi+5k/lukToA24sZkYAiSJfHM8uG/UZIdg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + dev: true - /@esbuild/win32-arm64@0.20.1: - resolution: {integrity: sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-is-pseudo-class@4.0.5(postcss@8.4.38): + resolution: {integrity: sha512-qG3MI7IN3KY9UwdaE9E7G7sFydscVW7nAj5OGwaBP9tQPEEVdxXTGI+l1ZW5EUpZFSj+u3q/22fH5+8HI72+Bg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.16) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true - /@esbuild/win32-ia32@0.19.12: - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-light-dark-function@1.0.1(postcss@8.4.38): + resolution: {integrity: sha512-CJOcp+m7Njbu91HtYMMoYuZznsvNSpJtLiR/7BO8/bHTXYPiuAZfxunh7wXLkMbHd5dRBgAVAQZ+H4iFqrvWZw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + dev: true - /@esbuild/win32-ia32@0.20.1: - resolution: {integrity: sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-logical-float-and-clear@2.0.1(postcss@8.4.38): + resolution: {integrity: sha512-SsrWUNaXKr+e/Uo4R/uIsqJYt3DaggIh/jyZdhy/q8fECoJSKsSMr7nObSLdvoULB69Zb6Bs+sefEIoMG/YfOA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + dev: true - /@esbuild/win32-x64@0.19.12: - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-logical-overflow@1.0.1(postcss@8.4.38): + resolution: {integrity: sha512-Kl4lAbMg0iyztEzDhZuQw8Sj9r2uqFDcU1IPl+AAt2nue8K/f1i7ElvKtXkjhIAmKiy5h2EY8Gt/Cqg0pYFDCw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + dev: true - /@esbuild/win32-x64@0.20.1: - resolution: {integrity: sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true + /@csstools/postcss-logical-overscroll-behavior@1.0.1(postcss@8.4.38): + resolution: {integrity: sha512-+kHamNxAnX8ojPCtV8WPcUP3XcqMFBSDuBuvT6MHgq7oX4IQxLIXKx64t7g9LiuJzE7vd06Q9qUYR6bh4YnGpQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@csstools/postcss-logical-resize@2.0.1(postcss@8.4.38): + resolution: {integrity: sha512-W5Gtwz7oIuFcKa5SmBjQ2uxr8ZoL7M2bkoIf0T1WeNqljMkBrfw1DDA8/J83k57NQ1kcweJEjkJ04pUkmyee3A==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + postcss: ^8.4 dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + /@csstools/postcss-logical-viewport-units@2.0.7(postcss@8.4.38): + resolution: {integrity: sha512-L4G3zsp/bnU0+WXUyysihCUH14LkfMgUJsS9vKz3vCYbVobOTqQRoNXnEPpyNp8WYyolLqAWbGGJhVu8J6u2OQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-tokenizer': 2.2.4 + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + dev: true - /@eslint-types/jsdoc@46.8.2-1: - resolution: {integrity: sha512-FwD7V0xX0jyaqj8Ul5ZY+TAAPohDfVqtbuXJNHb+OIv1aTIqZi5+Zn3F2UwQ5O3BnQd2mTduyK0+HjGx3/AMFg==} + /@csstools/postcss-media-minmax@1.1.4(postcss@8.4.38): + resolution: {integrity: sha512-xl/PIO3TUbXO1ZA4SA6HCw+Q9UGe2cgeRKx3lHCzoNig2D4bT5vfVCOrwhxjUb09oHihc9eI3I0iIfVPiXaN1A==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/media-query-list-parser': 2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + postcss: 8.4.38 dev: true - /@eslint-types/typescript-eslint@7.0.2: - resolution: {integrity: sha512-2F67MVKhkJ2rSwoYvNJzJULqZwR5rNYI/eWoIrKDQ14lMzfqzbpzCBvnHrivBYWTN+Az7MVX00TzDTrjOc+YNA==} + /@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.7(postcss@8.4.38): + resolution: {integrity: sha512-HBDAQw1K0NilcHGMUHv8jzf2mpOtcWTVKtuY3AeZ5TS1uyWWNVi5/yuA/tREPLU9WifNdqHQ+rfbsV/8zTIkTg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/media-query-list-parser': 2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + postcss: 8.4.38 dev: true - /@eslint-types/unicorn@51.0.1: - resolution: {integrity: sha512-RuuEK+dBISEikf7a8lrWOrDCUYv09sZfqLoG/kozH+5UqEvot1xMmGHXomGkTyB68rzjgJe0N4uESVyL62obJw==} + /@csstools/postcss-nested-calc@3.0.2(postcss@8.4.38): + resolution: {integrity: sha512-ySUmPyawiHSmBW/VI44+IObcKH0v88LqFe0d09Sb3w4B1qjkaROc6d5IA3ll9kjD46IIX/dbO5bwFN/swyoyZA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 dev: true - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@csstools/postcss-normalize-display-values@3.0.2(postcss@8.4.38): + resolution: {integrity: sha512-fCapyyT/dUdyPtrelQSIV+d5HqtTgnNP/BEG9IuhgXHt93Wc4CfC1bQ55GzKAjWrZbgakMQ7MLfCXEf3rlZJOw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - /@eslint/js@8.57.0: - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - /@fastify/busboy@2.1.1: - resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} - engines: {node: '>=14'} - dev: false - - /@github/markdownlint-github@0.6.0: - resolution: {integrity: sha512-THR2p9AExA1lxLoBIJnmFg8VGOCMDNcQDxA6O/JvSyL4ODqGrqozbMsH4xCE19+7Li+NeqwqJEdmmVas5LjT1A==} - dependencies: - lodash: 4.17.21 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 dev: true - /@humanwhocodes/config-array@0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 2.0.2 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - /@humanwhocodes/object-schema@2.0.2: - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} - - /@ioredis/commands@1.2.0: - resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} - dev: false - - /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + /@csstools/postcss-oklab-function@3.0.12(postcss@8.4.38): + resolution: {integrity: sha512-RNitTHamFvUUh8x+MJuPd2tCekYexUrylGKfUoor5D2GGcgzY1WB6Bl3pIj9t8bAq5h/lcacKaB2wmvUOTfGgQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + dev: true - /@jridgewell/gen-mapping@0.3.5: - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} + /@csstools/postcss-progressive-custom-properties@3.1.1(postcss@8.4.38): + resolution: {integrity: sha512-cx/bZgj+MK8SpRZNTu2zGeVFMCQfhsaeuDhukAhfA53yykvIXaTIwLi5shW9hfkvPrkqBeFoiRAzq/qogxeHTA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - dev: false - - /@jridgewell/resolve-uri@3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - dev: false - - /@jridgewell/set-array@1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - dev: false + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /@jridgewell/source-map@0.3.5: - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + /@csstools/postcss-relative-color-syntax@2.0.12(postcss@8.4.38): + resolution: {integrity: sha512-VreDGDgE634niwCytLtkoE5kRxfva7bnMzSoyok7Eh9VPYFOm8CK/oJXt9y3df71Bxc9PG4KC8RA3CxTknudnw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - dev: false - - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + dev: true - /@jridgewell/trace-mapping@0.3.25: - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + /@csstools/postcss-scope-pseudo-class@3.0.1(postcss@8.4.38): + resolution: {integrity: sha512-3ZFonK2gfgqg29gUJ2w7xVw2wFJ1eNWVDONjbzGkm73gJHVCYK5fnCqlLr+N+KbEfv2XbWAO0AaOJCFB6Fer6A==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - dev: false + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true - /@kwsites/file-exists@1.1.1: - resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + /@csstools/postcss-stepped-value-functions@3.0.6(postcss@8.4.38): + resolution: {integrity: sha512-rnyp8tWRuBXERTHVdB5hjUlif5dQgPcyN+BX55wUnYpZ3LN9QPfK2Z3/HUZymwyou8Gg6vhd6X2W+g1pLq1jYg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: false - - /@kwsites/promise-deferred@1.1.1: - resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} - dev: false + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.38 + dev: true - /@manypkg/find-root@1.1.0: - resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + /@csstools/postcss-text-decoration-shorthand@3.0.4(postcss@8.4.38): + resolution: {integrity: sha512-yUZmbnUemgQmja7SpOZeU45+P49wNEgQguRdyTktFkZsHf7Gof+ZIYfvF6Cm+LsU1PwSupy4yUeEKKjX5+k6cQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@babel/runtime': 7.24.0 - '@types/node': 12.20.55 - find-up: 4.1.0 - fs-extra: 8.1.0 + '@csstools/color-helpers': 4.0.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 dev: true - /@manypkg/get-packages@1.1.3: - resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + /@csstools/postcss-trigonometric-functions@3.0.6(postcss@8.4.38): + resolution: {integrity: sha512-i5Zd0bMJooZAn+ZcDmPij2WCkcOJJJ6opzK+QeDjxbMrYmoGQl0CY8FDHdeQyBF1Nly+Q0Fq3S7QfdNLKBBaCg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@babel/runtime': 7.24.0 - '@changesets/types': 4.1.0 - '@manypkg/find-root': 1.1.0 - fs-extra: 8.1.0 - globby: 11.1.0 - read-yaml-file: 1.1.0 + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.38 dev: true - /@mapbox/node-pre-gyp@1.0.11: - resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} - hasBin: true + /@csstools/postcss-unset-value@3.0.1(postcss@8.4.38): + resolution: {integrity: sha512-dbDnZ2ja2U8mbPP0Hvmt2RMEGBiF1H7oY6HYSpjteXJGihYwgxgTr6KRbbJ/V6c+4wd51M+9980qG4gKVn5ttg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - detect-libc: 2.0.2 - https-proxy-agent: 5.0.1 - make-dir: 3.1.0 - node-fetch: 2.7.0 - nopt: 5.0.0 - npmlog: 5.0.1 - rimraf: 3.0.2 - semver: 7.6.0 - tar: 6.2.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: false + postcss: 8.4.38 + dev: true - /@netlify/functions@2.6.0: - resolution: {integrity: sha512-vU20tij0fb4nRGACqb+5SQvKd50JYyTyEhQetCMHdakcJFzjLDivvRR16u1G2Oy4A7xNAtGJF1uz8reeOtTVcQ==} - engines: {node: '>=14.0.0'} + /@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.0.16): + resolution: {integrity: sha512-uWvSaeRcHyeNenKg8tp17EVDRkpflmdyvbE0DHo6D/GdBb6PDnCYYU6gRpXhtICMGMcahQmj2zGxwFM/WC8hCg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.13 dependencies: - '@netlify/serverless-functions-api': 1.14.0 - dev: false - - /@netlify/node-cookies@0.1.0: - resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} - engines: {node: ^14.16.0 || >=16.0.0} - dev: false + postcss-selector-parser: 6.0.16 + dev: true - /@netlify/serverless-functions-api@1.14.0: - resolution: {integrity: sha512-HUNETLNvNiC2J+SB/YuRwJA9+agPrc0azSoWVk8H85GC+YE114hcS5JW+dstpKwVerp2xILE3vNWN7IMXP5Q5Q==} - engines: {node: ^14.18.0 || >=16.0.0} + /@csstools/selector-specificity@3.0.2(postcss-selector-parser@6.0.16): + resolution: {integrity: sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.13 dependencies: - '@netlify/node-cookies': 0.1.0 - urlpattern-polyfill: 8.0.2 - dev: false + postcss-selector-parser: 6.0.16 + dev: true - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + /@csstools/utilities@1.0.0(postcss@8.4.38): + resolution: {integrity: sha512-tAgvZQe/t2mlvpNosA4+CkMiZ2azISW5WPAcdSalZlEjQvUfghHxfQcrCiK/7/CrfAWVxyM88kGFYO82heIGDg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 + postcss: 8.4.38 + dev: true - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + /@ctrl/tinycolor@3.6.1: + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} + engines: {node: '>=10'} + dev: true - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + /@dual-bundle/import-meta-resolve@4.0.0: + resolution: {integrity: sha512-ZKXyJeFAzcpKM2kk8ipoGIPUqx9BX52omTGnfwjJvxOCaZTM2wtDK7zN0aIgPRbT9XYAlha0HtmZ+XKteuh0Gw==} + dev: true - /@npmcli/agent@2.2.1: - resolution: {integrity: sha512-H4FrOVtNyWC8MUwL3UfjOsAihHvT1Pe8POj3JvjXhSTJipsZMtgUALCT4mGyYZNxymkUfOw3PUj6dE4QPp6osQ==} - engines: {node: ^16.14.0 || >=18.0.0} + /@egoist/tailwindcss-icons@1.7.4(tailwindcss@3.4.1): + resolution: {integrity: sha512-883qx0sqeNb8km7os0w8K6UYue88dbgTWwyEUwW74Bgz0H7t+m7PMIIEvSQ4JqHwA823Qd5ciz+NoTBWKaMYfg==} + peerDependencies: + tailwindcss: '*' dependencies: - agent-base: 7.1.0 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 - lru-cache: 10.2.0 - socks-proxy-agent: 8.0.2 + '@iconify/utils': 2.1.22 + tailwindcss: 3.4.1 transitivePeerDependencies: - supports-color - dev: false - - /@npmcli/config@8.2.0: - resolution: {integrity: sha512-YoEYZFg0hRSRP/Chmq+J4FvULFvji6SORUYWQc10FiJ+ReAnViXcDCENg6kM6dID04bAoKNUygrby798+gYBbQ==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@npmcli/map-workspaces': 3.0.4 - ci-info: 4.0.0 - ini: 4.1.1 - nopt: 7.2.0 - proc-log: 3.0.0 - read-package-json-fast: 3.0.2 - semver: 7.6.0 - walk-up-path: 3.0.1 dev: true - /@npmcli/fs@3.1.0: - resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + /@element-plus/icons-vue@2.3.1(vue@3.4.21): + resolution: {integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==} + peerDependencies: + vue: ^3.2.0 dependencies: - semver: 7.6.0 - dev: false + vue: 3.4.21(typescript@5.4.3) + dev: true - /@npmcli/git@5.0.4: - resolution: {integrity: sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@npmcli/promise-spawn': 7.0.1 - lru-cache: 10.2.0 - npm-pick-manifest: 9.0.0 - proc-log: 3.0.0 - promise-inflight: 1.0.1 - promise-retry: 2.0.1 - semver: 7.6.0 - which: 4.0.0 + /@element-plus/nuxt@1.0.8(@element-plus/icons-vue@2.3.1)(element-plus@2.6.2)(rollup@4.13.0): + resolution: {integrity: sha512-A8CKdk0z1t9tiw2JowZGwYwSyZZoOBXFgedSqyeAO3wmp26ZqBzKir0/5BN54mXQ06VYZZRtq3cmkpNtJOKGQA==} + peerDependencies: + '@element-plus/icons-vue': '>=0.2.6' + element-plus: '>=2' + dependencies: + '@element-plus/icons-vue': 2.3.1(vue@3.4.21) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + element-plus: 2.6.2(vue@3.4.21) + magic-string: 0.27.0 + unplugin: 1.10.0 transitivePeerDependencies: - - bluebird - dev: false - - /@npmcli/installed-package-contents@2.0.2: - resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - dependencies: - npm-bundled: 3.0.0 - npm-normalize-package-bin: 3.0.1 - dev: false + - rollup + - supports-color + dev: true - /@npmcli/map-workspaces@3.0.4: - resolution: {integrity: sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + /@es-joy/jsdoccomment@0.41.0: + resolution: {integrity: sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==} + engines: {node: '>=16'} dependencies: - '@npmcli/name-from-folder': 2.0.0 - glob: 10.3.10 - minimatch: 9.0.3 - read-package-json-fast: 3.0.2 + comment-parser: 1.4.1 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 4.0.0 dev: true - /@npmcli/name-from-folder@2.0.0: - resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true dev: true + optional: true - /@npmcli/node-gyp@3.0.0: - resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@fastify/accept-negotiator@1.1.0: + resolution: {integrity: sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + + /@fastify/busboy@2.1.1: + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + dev: true + + /@floating-ui/core@1.6.0: + resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} + dependencies: + '@floating-ui/utils': 0.2.1 + + /@floating-ui/dom@1.1.1: + resolution: {integrity: sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==} + dependencies: + '@floating-ui/core': 1.6.0 + + /@floating-ui/dom@1.6.3: + resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==} + dependencies: + '@floating-ui/core': 1.6.0 + '@floating-ui/utils': 0.2.1 + dev: true + + /@floating-ui/utils@0.2.1: + resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} + + /@formkit/addons@1.6.0: + resolution: {integrity: sha512-Y1IxQfAPZLpWBrVpvld2ywL1NjSrRLBFj1ZpNbArQXtYGy9jthIFqJX3khAV8caauud4Vp4+U3xXftT7xnBYLA==} + dependencies: + '@formkit/auto-animate': 0.8.1 + '@formkit/core': 1.6.0 + '@formkit/inputs': 1.6.0 + '@formkit/utils': 1.6.0 + dev: true + + /@formkit/auto-animate@0.8.1: + resolution: {integrity: sha512-0/Z2cuNXWVVIG/l0SpcHAWFhGdvLJ8DRvEfRWvmojtmRWfEy+LWNwgDazbZqY0qQYtkHcoEK3jBLkhiZaB/4Ig==} + dev: true + + /@formkit/core@1.6.0: + resolution: {integrity: sha512-YsbVLJlY+4wbBCa4Ine3BHdX4Y0LOxbrOy0GWGnPv00iLFOFs3EwK0pV6vuQr/j8KB1Q8UsfdJ0f2fGk0ufLdQ==} + dependencies: + '@formkit/utils': 1.6.0 + dev: true + + /@formkit/dev@1.6.0: + resolution: {integrity: sha512-dcwd6Cvgy/aewSDLbal9M0fgVxtoUypvqEqBbwSP9RmNEFuUF9l38Dh7mSUW/anNeoP+fN4fvISH9QiRtQHsXQ==} + dependencies: + '@formkit/core': 1.6.0 + '@formkit/utils': 1.6.0 + dev: true + + /@formkit/i18n@1.6.0: + resolution: {integrity: sha512-cGleIT9ztmeKc9M2dryvioPQtzwhUbmEUQOlhEWcxteYQ1q4NMJj/lFrFKxVP5LWqpZQSDE+dclo43qviWqHow==} + dependencies: + '@formkit/core': 1.6.0 + '@formkit/utils': 1.6.0 + '@formkit/validation': 1.6.0 + dev: true + + /@formkit/icons@1.6.0: + resolution: {integrity: sha512-qENCxqW8kx64GEOwyZupHUaCh+G0PeMBCCvxcJqhQOiGAckAu54P825e54F3+zWc/AR4ps8ocKfc3snOkeLhug==} + dependencies: + '@formkit/core': 1.6.0 + dev: true + + /@formkit/inputs@1.6.0: + resolution: {integrity: sha512-Xo/TWcJOsSGYAGEpccsqtjZRmxdljoxfKceQojWekFtlhMZueowq8XULWnSVARzC+MZ+Qvugr206g5L0b3lETQ==} + dependencies: + '@formkit/core': 1.6.0 + '@formkit/utils': 1.6.0 + dev: true + + /@formkit/nuxt@1.6.0(esbuild@0.19.12)(rollup@4.13.0)(tailwindcss@3.4.1)(unocss@0.58.7)(vite@5.2.6)(vue@3.4.21): + resolution: {integrity: sha512-JHZByAUZGbrnLt4q2KElc/7f99MBQwvEJPG/vtmJYN1J8/9J6fDyPFSVtP2ZIrq+4dv9LZPdaF8OkaKr5HV4Qg==} + dependencies: + '@formkit/core': 1.6.0 + '@formkit/i18n': 1.6.0 + '@formkit/vue': 1.6.0(tailwindcss@3.4.1)(unocss@0.58.7)(vue@3.4.21) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + chokidar: 3.6.0 + nuxi: 3.11.1 + pathe: 1.1.2 + unplugin: 1.10.0 + unplugin-formkit: 0.2.13(esbuild@0.19.12)(rollup@4.13.0)(vite@5.2.6) + transitivePeerDependencies: + - esbuild + - rollup + - supports-color + - tailwindcss + - unocss + - vite + - vue + - webpack + - windicss + dev: true + + /@formkit/observer@1.6.0: + resolution: {integrity: sha512-kOXZsUttxDZ0n6nYLIBO1Nt7dJq+7xmTVcuQBY2xrSRHxQHVX4deE768Ud52+NkjihSETzh4TDAetDa3pZlNrg==} + dependencies: + '@formkit/core': 1.6.0 + '@formkit/utils': 1.6.0 + dev: true + + /@formkit/rules@1.6.0: + resolution: {integrity: sha512-D4CoYaBpNTA2R7qLz8h18/erpoib1AmNV5XVrqERbeHoMCOD4OezUpxDwqqsl8exyNSldDf6/csNmYCwXJ0jzA==} + dependencies: + '@formkit/core': 1.6.0 + '@formkit/utils': 1.6.0 + '@formkit/validation': 1.6.0 + dev: true + + /@formkit/themes@1.6.0(tailwindcss@3.4.1)(unocss@0.58.7): + resolution: {integrity: sha512-b4bkRNDjmZEngXDIgGt3JmeSahUoDf7w0UkLCo1RUezGNmKwWrwgt2QzqFDvsxVsG9/fN0EAsaAX/EMbIJyvJg==} + peerDependencies: + tailwindcss: ^3.2.0 + unocss: ^0.31.0 + windicss: ^3.0.0 + peerDependenciesMeta: + tailwindcss: + optional: true + unocss: + optional: true + windicss: + optional: true + dependencies: + '@formkit/core': 1.6.0 + tailwindcss: 3.4.1 + unocss: 0.58.7(@unocss/webpack@0.58.7)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6) + dev: true + + /@formkit/utils@1.6.0: + resolution: {integrity: sha512-g+3yxGKAOm2oPibWDc6381U0euU8TGcQZmOTa7i1i40vi+DZDZ53ATmFZ/oOvWjnz5icJ+IfV7Zdo0quMBtZbQ==} + dev: true + + /@formkit/validation@1.6.0: + resolution: {integrity: sha512-zPO16AVdzDMZ+aJ0nQydOXU3oMeZ7z0NAGtidBAF2tyRpLa6H4AMfx8CJd0nJyv6EEe1i1XQag1+QZf0VxvIOA==} + dependencies: + '@formkit/core': 1.6.0 + '@formkit/observer': 1.6.0 + '@formkit/utils': 1.6.0 + dev: true + + /@formkit/vue@1.6.0(tailwindcss@3.4.1)(unocss@0.58.7)(vue@3.4.21): + resolution: {integrity: sha512-3RicHg5kpOSmvDpVTamehqY2QtSZvcxxW5UR5p9AR6EtTuPzgkZl8zownTJcgeYp6GWjLzo7zwBIWgrM8GQU/A==} + peerDependencies: + vue: ^3.4.0 + dependencies: + '@formkit/core': 1.6.0 + '@formkit/dev': 1.6.0 + '@formkit/i18n': 1.6.0 + '@formkit/inputs': 1.6.0 + '@formkit/observer': 1.6.0 + '@formkit/rules': 1.6.0 + '@formkit/themes': 1.6.0(tailwindcss@3.4.1)(unocss@0.58.7) + '@formkit/utils': 1.6.0 + '@formkit/validation': 1.6.0 + vue: 3.4.21(typescript@5.4.3) + transitivePeerDependencies: + - tailwindcss + - unocss + - windicss + dev: true + + /@formkit/zod@1.6.0(zod@3.22.4): + resolution: {integrity: sha512-2O+9s5FlTK3Xk9lSCH8huCr9FxEAvg4t1o+qWOJXtO0ZHAh/MAn+fRVny6bgN2Rwk9wo535vq9nr5XySEwsPHw==} + peerDependencies: + zod: ^3.0.0 + dependencies: + '@formkit/core': 1.6.0 + zod: 3.22.4 + dev: true + + /@fortawesome/fontawesome-common-types@6.5.1: + resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==} + engines: {node: '>=6'} + requiresBuild: true + dev: true + + /@fortawesome/free-regular-svg-icons@6.5.1: + resolution: {integrity: sha512-m6ShXn+wvqEU69wSP84coxLbNl7sGVZb+Ca+XZq6k30SzuP3X4TfPqtycgUh9ASwlNh5OfQCd8pDIWxl+O+LlQ==} + engines: {node: '>=6'} + requiresBuild: true + dependencies: + '@fortawesome/fontawesome-common-types': 6.5.1 + dev: true + + /@fortawesome/free-solid-svg-icons@6.5.1: + resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==} + engines: {node: '>=6'} + requiresBuild: true + dependencies: + '@fortawesome/fontawesome-common-types': 6.5.1 + dev: true + + /@github/markdownlint-github@0.6.2: + resolution: {integrity: sha512-cd+eRhqqIAXICHu5RQ9de70AZEI14opO9TqTz8HjkjQwWC1HRsdTwsRiK+6Fz2DqC1ZEd6t7+Dh5brOChLozcg==} + dependencies: + lodash: 4.17.21 + dev: true + + /@gtm-support/core@2.3.0: + resolution: {integrity: sha512-TIC1IGNdWbQRp+ipfxwanxIIMSzGf5D9mc9eyDxJ5iJch8vHwkq4DU46UBhbkVSpoI55esNPt514G3d5KaFp8Q==} + dev: true + + /@gtm-support/vue-gtm@2.2.0(vue@3.4.21): + resolution: {integrity: sha512-7nhBTRkTG0mD+7r7JvNalJz++YwszZk0oP1HIY6fCgz6wNKxT6LuiXCqdPrZmNPe/WbPIKuqxGZN5s+i6NZqow==} + peerDependencies: + vue: '>= 3.2.0 < 4.0.0' + dependencies: + '@gtm-support/core': 2.3.0 + vue: 3.4.21(typescript@5.4.3) + optionalDependencies: + vue-router: 4.3.0(vue@3.4.21) + dev: true + + /@headlessui/tailwindcss@0.2.0(tailwindcss@3.4.1): + resolution: {integrity: sha512-fpL830Fln1SykOCboExsWr3JIVeQKieLJ3XytLe/tt1A0XzqUthOftDmjcCYLW62w7mQI7wXcoPXr3tZ9QfGxw==} + engines: {node: '>=10'} + peerDependencies: + tailwindcss: ^3.0 + dependencies: + tailwindcss: 3.4.1 + dev: true + + /@headlessui/vue@1.7.19(vue@3.4.21): + resolution: {integrity: sha512-VFjKPybogux/5/QYGSq4zgG/x3RcxId15W8uguAJAjPBxelI23dwjOjTx/mIiMkM/Hd3rzFxcf2aIp56eEWRcA==} + engines: {node: '>=10'} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@tanstack/vue-virtual': 3.2.0(vue@3.4.21) + vue: 3.4.21(typescript@5.4.3) + dev: true + + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.2 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + dev: true + + /@iconify-json/carbon@1.1.31: + resolution: {integrity: sha512-CAvECFfiwGyZmlcuM2JLMRDEN3VsIEZv6lml7Xf+3giQ5oXloADm0b5wiVPFZmONKM5jXERmx+E7YSvAtFJIbw==} + dependencies: + '@iconify/types': 2.0.0 + dev: true + + /@iconify-json/heroicons@1.1.20: + resolution: {integrity: sha512-puNt1al/rDw8Rb5x8sfk20UA8AQjMskLMh63nSUBj+8I0lQ7LtX+0Qn8wow2xTXTEsynJ9xXLD8Aat53e0qi8A==} + dependencies: + '@iconify/types': 2.0.0 + dev: true + + /@iconify-json/logos@1.1.42: + resolution: {integrity: sha512-/f+frtPm3m3Z30oy8Pk+QqRDkbmAiIaWGPl5CmsCXm15MVfvw9a/V/gD7WzdyuSGAZcFuQaqbHXj92y/n+2ifg==} + dependencies: + '@iconify/types': 2.0.0 + dev: true + + /@iconify-json/ri@1.1.20: + resolution: {integrity: sha512-yScIGjLFBCJKWKskQTWRjNI2Awoq+VRDkRxEsCQvSfdz41n+xkRtFG2K6J1OVI90ClRHfjFC8VJ2+WzxxyFjTQ==} + dependencies: + '@iconify/types': 2.0.0 + dev: true + + /@iconify-json/tabler@1.1.109: + resolution: {integrity: sha512-74RaBQZQ0761iFTrgmuSH1fovfx0fBKn+txRbRNbRzfh8XWtlAHqKUc3CzvzATMLnVsSRJDxjG3qY4oWH/+opw==} + dependencies: + '@iconify/types': 2.0.0 + dev: true + + /@iconify/collections@1.0.408: + resolution: {integrity: sha512-huq0rgLQveO5DeWw4SQpq69GwU2xBuC9UPw664Mh/yruc1BYYNvyfvWowQ2ZG4mpBO1BUmIB/T/EtTcLoCeuAA==} + dependencies: + '@iconify/types': 2.0.0 + dev: true + + /@iconify/types@2.0.0: + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + dev: true + + /@iconify/utils@2.1.22: + resolution: {integrity: sha512-6UHVzTVXmvO8uS6xFF+L/QTSpTzA/JZxtgU+KYGFyDYMEObZ1bu/b5l+zNJjHy+0leWjHI+C0pXlzGvv3oXZMA==} + dependencies: + '@antfu/install-pkg': 0.1.1 + '@antfu/utils': 0.7.7 + '@iconify/types': 2.0.0 + debug: 4.3.4 + kolorist: 1.8.0 + local-pkg: 0.5.0 + mlly: 1.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@iconify/vue@4.1.1(vue@3.4.21): + resolution: {integrity: sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==} + peerDependencies: + vue: '>=3' + dependencies: + '@iconify/types': 2.0.0 + vue: 3.4.21(typescript@5.4.3) + dev: true + + /@intlify/bundle-utils@7.5.1(vue-i18n@9.10.2): + resolution: {integrity: sha512-UovJl10oBIlmYEcWw+VIHdKY5Uv5sdPG0b/b6bOYxGLln3UwB75+2dlc0F3Fsa0RhoznQ5Rp589/BZpABpE4Xw==} + engines: {node: '>= 14.16'} + peerDependencies: + petite-vue-i18n: '*' + vue-i18n: '*' + peerDependenciesMeta: + petite-vue-i18n: + optional: true + vue-i18n: + optional: true + dependencies: + '@intlify/message-compiler': 9.10.2 + '@intlify/shared': 9.10.2 + acorn: 8.11.3 + escodegen: 2.1.0 + estree-walker: 2.0.2 + jsonc-eslint-parser: 2.4.0 + magic-string: 0.30.8 + mlly: 1.6.1 + source-map-js: 1.2.0 + vue-i18n: 9.10.2(vue@3.4.21) + yaml-eslint-parser: 1.2.2 + dev: true + + /@intlify/bundle-utils@8.0.0: + resolution: {integrity: sha512-1B++zykRnMwQ+20SpsZI1JCnV/YJt9Oq7AGlEurzkWJOFtFAVqaGc/oV36PBRYeiKnTbY9VYfjBimr2Vt42wLQ==} + engines: {node: '>= 14.16'} + peerDependencies: + petite-vue-i18n: '*' + vue-i18n: '*' + peerDependenciesMeta: + petite-vue-i18n: + optional: true + vue-i18n: + optional: true + dependencies: + '@intlify/message-compiler': 9.10.2 + '@intlify/shared': 9.10.2 + acorn: 8.11.3 + escodegen: 2.1.0 + estree-walker: 2.0.2 + jsonc-eslint-parser: 2.4.0 + mlly: 1.6.1 + source-map-js: 1.2.0 + yaml-eslint-parser: 1.2.2 + dev: true + + /@intlify/core-base@9.10.2: + resolution: {integrity: sha512-HGStVnKobsJL0DoYIyRCGXBH63DMQqEZxDUGrkNI05FuTcruYUtOAxyL3zoAZu/uDGO6mcUvm3VXBaHG2GdZCg==} + engines: {node: '>= 16'} + dependencies: + '@intlify/message-compiler': 9.10.2 + '@intlify/shared': 9.10.2 + dev: true + + /@intlify/core@9.10.2: + resolution: {integrity: sha512-t/RVemtM3bTE/wa7zqR+zkumy4dda5skVhxAh+3oYbOyJRw1y3B0FWiuB2Awa1HgoYC0DuPYrsAsQoeLy2eQPQ==} + engines: {node: '>= 16'} + dependencies: + '@intlify/core-base': 9.10.2 + '@intlify/shared': 9.10.2 + dev: true + + /@intlify/h3@0.5.0: + resolution: {integrity: sha512-cgfrtD3qu3BPJ47gfZ35J2LJpI64Riic0K8NGgid5ilyPXRQTNY7mXlT/B+HZYQg1hmBxKa5G5HJXyAZ4R2H5A==} + engines: {node: '>= 18'} + dependencies: + '@intlify/core': 9.10.2 + '@intlify/utils': 0.12.0 + dev: true + + /@intlify/message-compiler@9.10.2: + resolution: {integrity: sha512-ntY/kfBwQRtX5Zh6wL8cSATujPzWW2ZQd1QwKyWwAy5fMqJyyixHMeovN4fmEyCqSu+hFfYOE63nU94evsy4YA==} + engines: {node: '>= 16'} + dependencies: + '@intlify/shared': 9.10.2 + source-map-js: 1.2.0 + dev: true + + /@intlify/shared@9.10.2: + resolution: {integrity: sha512-ttHCAJkRy7R5W2S9RVnN9KYQYPIpV2+GiS79T4EE37nrPyH6/1SrOh3bmdCRC1T3ocL8qCDx7x2lBJ0xaITU7Q==} + engines: {node: '>= 16'} + dev: true + + /@intlify/unplugin-vue-i18n@2.0.0(rollup@4.13.0)(vue-i18n@9.10.2): + resolution: {integrity: sha512-1oKvm92L9l2od2H9wKx2ZvR4tzn7gUtd7bPLI7AWUmm7U9H1iEypndt5d985ypxGsEs0gToDaKTrytbBIJwwSg==} + engines: {node: '>= 14.16'} + peerDependencies: + petite-vue-i18n: '*' + vue-i18n: '*' + vue-i18n-bridge: '*' + peerDependenciesMeta: + petite-vue-i18n: + optional: true + vue-i18n: + optional: true + vue-i18n-bridge: + optional: true + dependencies: + '@intlify/bundle-utils': 7.5.1(vue-i18n@9.10.2) + '@intlify/shared': 9.10.2 + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + '@vue/compiler-sfc': 3.4.21 + debug: 4.3.4 + fast-glob: 3.3.2 + js-yaml: 4.1.0 + json5: 2.2.3 + pathe: 1.1.2 + picocolors: 1.0.0 + source-map-js: 1.2.0 + unplugin: 1.10.0 + vue-i18n: 9.10.2(vue@3.4.21) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /@intlify/unplugin-vue-i18n@4.0.0(rollup@4.13.0): + resolution: {integrity: sha512-q2Mhqa/mLi0tulfLFO4fMXXvEbkSZpI5yGhNNsLTNJJ41icEGUuyDe+j5zRZIKSkOJRgX6YbCyibTDJdRsukmw==} + engines: {node: '>= 14.16'} + peerDependencies: + petite-vue-i18n: '*' + vue-i18n: '*' + vue-i18n-bridge: '*' + peerDependenciesMeta: + petite-vue-i18n: + optional: true + vue-i18n: + optional: true + vue-i18n-bridge: + optional: true + dependencies: + '@intlify/bundle-utils': 8.0.0 + '@intlify/shared': 9.10.2 + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + '@vue/compiler-sfc': 3.4.21 + debug: 4.3.4 + fast-glob: 3.3.2 + js-yaml: 4.1.0 + json5: 2.2.3 + pathe: 1.1.2 + picocolors: 1.0.0 + source-map-js: 1.2.0 + unplugin: 1.10.0 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /@intlify/utils@0.12.0: + resolution: {integrity: sha512-yCBNcuZQ49iInqmWC2xfW0rgEQyNtCM8C8KcWKTXxyscgUE1+48gjLgZZqP75MjhlApxwph7ZMWLqyABkSgxQA==} + engines: {node: '>= 18'} + dev: true + + /@ioredis/commands@1.2.0: + resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} + dev: true + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + /@jridgewell/source-map@0.3.6: + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + + /@koa/router@12.0.1: + resolution: {integrity: sha512-ribfPYfHb+Uw3b27Eiw6NPqjhIhTpVFzEWLwyc/1Xp+DCdwRRyIlAUODX+9bPARF6aQtUu1+/PHzdNvRzcs/+Q==} + engines: {node: '>= 12'} + dependencies: + debug: 4.3.4 + http-errors: 2.0.0 + koa-compose: 4.1.0 + methods: 1.1.2 + path-to-regexp: 6.2.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@kwsites/file-exists@1.1.1: + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@kwsites/promise-deferred@1.1.1: + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + dev: true + + /@lezer/common@1.2.1: + resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==} + dev: true + + /@lezer/highlight@1.2.0: + resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==} + dependencies: + '@lezer/common': 1.2.1 + dev: true + + /@lezer/json@1.0.2: + resolution: {integrity: sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: true + + /@lezer/lr@1.4.0: + resolution: {integrity: sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==} + dependencies: + '@lezer/common': 1.2.1 + dev: true + + /@manypkg/find-root@1.1.0: + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + dependencies: + '@babel/runtime': 7.24.1 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + + /@manypkg/find-root@2.2.1: + resolution: {integrity: sha512-34NlypD5mmTY65cFAK7QPgY5Tzt0qXR4ZRXdg97xAlkiLuwXUPBEXy5Hsqzd+7S2acsLxUz6Cs50rlDZQr4xUA==} + engines: {node: '>=14.18.0'} + dependencies: + '@manypkg/tools': 1.1.0 + find-up: 4.1.0 + fs-extra: 8.1.0 + dev: false + + /@manypkg/get-packages@1.1.3: + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + dependencies: + '@babel/runtime': 7.24.1 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + + /@manypkg/get-packages@2.2.1: + resolution: {integrity: sha512-TrJd86paBkKEx6InhObcUhuoJNcATlbO6+s1dQdLd4+Y1SLDKJUAMhU46kTZ1SOFbegTuhDbIF3j+Jy564BERA==} + engines: {node: '>=14.18.0'} + dependencies: + '@manypkg/find-root': 2.2.1 + '@manypkg/tools': 1.1.0 + dev: false + + /@manypkg/tools@1.1.0: + resolution: {integrity: sha512-SkAyKAByB9l93Slyg8AUHGuM2kjvWioUTCckT/03J09jYnfEzMO/wSXmEhnKGYs6qx9De8TH4yJCl0Y9lRgnyQ==} + engines: {node: '>=14.18.0'} + dependencies: + fs-extra: 8.1.0 + globby: 11.1.0 + jju: 1.4.0 + read-yaml-file: 1.1.0 + dev: false + + /@mapbox/node-pre-gyp@1.0.11: + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true + dependencies: + detect-libc: 2.0.3 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.7.0 + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.6.0 + tar: 6.2.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@master/colors@2.0.0: + resolution: {integrity: sha512-0s4DzBSXthRVCFKkKbGvAioT6oVlN54f9H4MX6GN1YoNG0/x0NECyIv/5Tx9p5nDMr+ClDHSDbQ37DJUp8CHFg==} + dev: true + + /@master/css-runtime@2.0.0-rc.26: + resolution: {integrity: sha512-gfDYRPoz78riY/oU3R1ioy+XxE0qP5z0EOFd+Gzs3/sF8g6poJ+CasajaE4i509t8ijkmwixYsgdY0PWETpggw==} + dependencies: + '@master/css': 2.0.0-rc.26 + dev: true + + /@master/css-server@2.0.0-rc.26: + resolution: {integrity: sha512-S4X4k9CbAkEgViJQyLBCt/2zH22VUJKuZO243bGqXz4XLaDHjZUU1maIDPTOaRZBB9VJrvPMF/Fwikvt/eAF6Q==} + dependencies: + '@master/css': 2.0.0-rc.26 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + htmlparser2: 9.1.0 + dev: true + + /@master/css-validator@2.0.0-rc.26: + resolution: {integrity: sha512-5o2kK/7D5yr46co/aylJAuuJsROpJSJzY/9WF0kI/Nf8MIby0ZhsC7DpbutSBfEBK8+vj/rm200fp5z1t/e5fA==} + dependencies: + '@master/css': 2.0.0-rc.26 + css-tree: 2.3.1 + dev: true + + /@master/css.nuxt@2.0.0-rc.26(rollup@4.13.0)(vue@3.4.21): + resolution: {integrity: sha512-9U4ogTsj+m3Vnl09/3RnkaKk0vWILOB9+QJg7swZt5KMKqK9tnJm1e5yb9pYWgxaN4hPkUdos2Yn1CcTvQrAcA==} + dependencies: + '@master/css-server': 2.0.0-rc.26 + '@master/css.vue': 2.0.0-rc.26(vue@3.4.21) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@techor/log': 3.0.18 + transitivePeerDependencies: + - rollup + - supports-color + - vue + dev: true + + /@master/css.vue@2.0.0-rc.26(vue@3.4.21): + resolution: {integrity: sha512-Hs01YuxgRWQGgzt3AJYIfG5DNdRU+6peuBEN/J8NwepYug2wqF+ivzNwrm2ByVwGUq04jDbYEFuxfcUJq7VQ6A==} + peerDependencies: + vue: '>= 3.0.0' + dependencies: + '@master/css-runtime': 2.0.0-rc.26 + '@techor/extend': 3.0.18 + vue: 3.4.21(typescript@5.4.3) + dev: true + + /@master/css@2.0.0-rc.26: + resolution: {integrity: sha512-2n4EnRhuaz1qkqH6RGWDhlyM3+lR6lAAECXBee40o9AVAPxvsgwVMptY7PCHzpDESFkdzFyl9YAkOb+jJreSCw==} + hasBin: true + dependencies: + '@master/colors': 2.0.0 + '@master/normal.css': 2.1.1 + '@techor/extend': 3.0.18 + dev: true + + /@master/eslint-config-css@2.0.0-rc.26(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-l1sTez+F+5yOlxCZ8Nf9NEQJUndgMmcm1iDhiII6IgOdHUpzGKLRh7Klc8WhHPajnp+FwNGk2YfdNkSrDI0Q8A==} + dependencies: + '@master/eslint-plugin-css': 2.0.0-rc.26(eslint@8.57.0)(typescript@5.4.3) + transitivePeerDependencies: + - eslint + - supports-color + - typescript + dev: true + + /@master/eslint-plugin-css@2.0.0-rc.26(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-iEtJ3cvdTExaBWKJ0A5QvxUir+hm2Ny3pFH1ETlwr5G+JLh/S9T15d5WAFFEDl7XYbRpTNJM0R6qMJnSWMkIfw==} + dependencies: + '@master/css': 2.0.0-rc.26 + '@master/css-validator': 2.0.0-rc.26 + '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) + explore-config: 3.0.18 + synckit: 0.9.0 + typescript-eslint: 7.4.0(eslint@8.57.0)(typescript@5.4.3) + transitivePeerDependencies: + - eslint + - supports-color + - typescript + dev: true + + /@master/normal.css@2.1.1: + resolution: {integrity: sha512-u5NQLjTLmhwVzfrro40EfuAtDpYb/HCXEwlsBibyCc9Fpc5IjZVWZDSXpcejYiX7SJUuwdZnlJ+HBBZfBHMqkw==} + dev: true + + /@miyaneee/rollup-plugin-json5@1.2.0(rollup@4.13.0): + resolution: {integrity: sha512-JjTIaXZp9WzhUHpElrqPnl1AzBi/rvRs065F71+aTmlqvTMVkdbjZ8vfFl4nRlgJy+TPBw69ZK4pwFdmOAt4aA==} + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + json5: 2.2.3 + rollup: 4.13.0 + dev: true + + /@netlify/functions@2.6.0: + resolution: {integrity: sha512-vU20tij0fb4nRGACqb+5SQvKd50JYyTyEhQetCMHdakcJFzjLDivvRR16u1G2Oy4A7xNAtGJF1uz8reeOtTVcQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@netlify/serverless-functions-api': 1.14.0 + dev: true + + /@netlify/node-cookies@0.1.0: + resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} + engines: {node: ^14.16.0 || >=16.0.0} + dev: true + + /@netlify/serverless-functions-api@1.14.0: + resolution: {integrity: sha512-HUNETLNvNiC2J+SB/YuRwJA9+agPrc0azSoWVk8H85GC+YE114hcS5JW+dstpKwVerp2xILE3vNWN7IMXP5Q5Q==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@netlify/node-cookies': 0.1.0 + urlpattern-polyfill: 8.0.2 + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + /@npmcli/agent@2.2.1: + resolution: {integrity: sha512-H4FrOVtNyWC8MUwL3UfjOsAihHvT1Pe8POj3JvjXhSTJipsZMtgUALCT4mGyYZNxymkUfOw3PUj6dE4QPp6osQ==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + agent-base: 7.1.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 + lru-cache: 10.2.0 + socks-proxy-agent: 8.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@npmcli/fs@3.1.0: + resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + semver: 7.6.0 + dev: true + + /@npmcli/git@5.0.4: + resolution: {integrity: sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@npmcli/promise-spawn': 7.0.1 + lru-cache: 10.2.0 + npm-pick-manifest: 9.0.0 + proc-log: 3.0.0 + promise-inflight: 1.0.1 + promise-retry: 2.0.1 + semver: 7.6.0 + which: 4.0.0 + transitivePeerDependencies: + - bluebird + dev: true + + /@npmcli/installed-package-contents@2.0.2: + resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + dependencies: + npm-bundled: 3.0.0 + npm-normalize-package-bin: 3.0.1 + dev: true + + /@npmcli/node-gyp@3.0.0: + resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + + /@npmcli/package-json@5.0.0: + resolution: {integrity: sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@npmcli/git': 5.0.4 + glob: 10.3.10 + hosted-git-info: 7.0.1 + json-parse-even-better-errors: 3.0.1 + normalize-package-data: 6.0.0 + proc-log: 3.0.0 + semver: 7.6.0 + transitivePeerDependencies: + - bluebird + dev: true + + /@npmcli/promise-spawn@7.0.1: + resolution: {integrity: sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + which: 4.0.0 + dev: true + + /@npmcli/run-script@7.0.4: + resolution: {integrity: sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@npmcli/node-gyp': 3.0.0 + '@npmcli/package-json': 5.0.0 + '@npmcli/promise-spawn': 7.0.1 + node-gyp: 10.1.0 + which: 4.0.0 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /@nuxt/content@2.12.1(nuxt@3.11.1)(rollup@4.13.0)(vue@3.4.21): + resolution: {integrity: sha512-xW4xjyYm6zqglb17Tu0J+rpKUV1PF9zp6SLu1lopylFnerdyImtce84206HT6Zd/DJgivKtoW4dyyJn0ZaSqCQ==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@nuxtjs/mdc': 0.6.1(rollup@4.13.0) + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/head': 2.0.0(vue@3.4.21) + '@vueuse/nuxt': 10.9.0(nuxt@3.11.1)(rollup@4.13.0)(vue@3.4.21) + consola: 3.2.3 + defu: 6.1.4 + destr: 2.0.3 + json5: 2.2.3 + knitwork: 1.0.0 + listhen: 1.7.2 + mdast-util-to-string: 4.0.0 + mdurl: 2.0.0 + micromark: 4.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-types: 2.0.0 + minisearch: 6.3.0 + ohash: 1.1.3 + pathe: 1.1.2 + scule: 1.3.0 + shiki: 1.2.1 + slugify: 1.6.6 + socket.io-client: 4.7.5 + ufo: 1.5.3 + unist-util-stringify-position: 4.0.0 + unstorage: 1.10.2(ioredis@5.3.2) + ws: 8.16.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/kv' + - '@vue/composition-api' + - bufferutil + - idb-keyval + - ioredis + - nuxt + - rollup + - supports-color + - uWebSockets.js + - utf-8-validate + - vue + dev: true + + /@nuxt/devalue@2.0.2: + resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} + dev: true + + /@nuxt/devtools-kit@1.1.4(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6): + resolution: {integrity: sha512-/aZW/vn09vJML3Bi6dP9m51EN8eyeqHbyCyeuGsPUy/2GIlziaNHTaFlNWmLLkezdS4bhEGSr38Z5sa6x8FchQ==} + peerDependencies: + nuxt: ^3.9.0 + vite: '*' + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@nuxt/schema': 3.11.1(rollup@4.13.0) + execa: 7.2.0 + nuxt: 3.11.1(@types/node@20.11.30)(@unocss/reset@0.58.7)(floating-vue@5.2.2)(rollup@4.13.0)(typescript@5.4.3)(unocss@0.58.7)(vite@5.2.6)(vue-tsc@2.0.7) + vite: 5.2.6(@types/node@20.11.30) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /@nuxt/devtools-ui-kit@1.1.4(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(fuse.js@7.0.0)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0): + resolution: {integrity: sha512-m8TYD1mn+B0zDhS8Qer+ewC7LXLVrwPMEBTaPcnREUm/8eImxVYeTk3ZJhPAyYDf0bQOhQlGvR8IaCEU3QxXhQ==} + peerDependencies: + '@nuxt/devtools': 1.1.4 + dependencies: + '@iconify-json/carbon': 1.1.31 + '@iconify-json/logos': 1.1.42 + '@iconify-json/ri': 1.1.20 + '@iconify-json/tabler': 1.1.109 + '@nuxt/devtools': 1.1.4(@unocss/reset@0.58.7)(floating-vue@5.2.2)(nuxt@3.11.1)(rollup@4.13.0)(unocss@0.58.7)(vite@5.2.6)(vue@3.4.21) + '@nuxt/devtools-kit': 1.1.4(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@nuxtjs/color-mode': 3.3.3(rollup@4.13.0) + '@unocss/core': 0.58.7 + '@unocss/nuxt': 0.58.7(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(webpack@5.91.0) + '@unocss/preset-attributify': 0.58.7 + '@unocss/preset-icons': 0.58.7 + '@unocss/preset-mini': 0.58.7 + '@unocss/reset': 0.58.7 + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(fuse.js@7.0.0)(vue@3.4.21) + '@vueuse/nuxt': 10.9.0(nuxt@3.11.1)(rollup@4.13.0)(vue@3.4.21) + defu: 6.1.4 + focus-trap: 7.5.4 + splitpanes: 3.1.5 + unocss: 0.58.7(@unocss/webpack@0.58.7)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6) + v-lazy-show: 0.2.4(@vue/compiler-core@3.4.21) + transitivePeerDependencies: + - '@unocss/webpack' + - '@vue/compiler-core' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - nuxt + - postcss + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - vite + - vue + - webpack + dev: true + + /@nuxt/devtools-wizard@1.1.4: + resolution: {integrity: sha512-BTobds8a5fwucbHwMb42V53xgPv78SzAt/I44Dz0/uI8LxSKeX45ogEERDHB9hnRMjC/ZBTv1Z6HpGOmoB4Sxg==} + hasBin: true + dependencies: + consola: 3.2.3 + diff: 5.2.0 + execa: 7.2.0 + global-directory: 4.0.1 + magicast: 0.3.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + prompts: 2.4.2 + rc9: 2.1.1 + semver: 7.6.0 + dev: true + + /@nuxt/devtools@1.1.4(@unocss/reset@0.58.7)(floating-vue@5.2.2)(nuxt@3.11.1)(rollup@4.13.0)(unocss@0.58.7)(vite@5.2.6)(vue@3.4.21): + resolution: {integrity: sha512-mJFSB7zbzT1oBP9yf82siI7xIvhZleVuVLiSOCCks8+DhJGgcRPLIDNRm23aFu6YWO0pEv19TiISExiLAkJp2g==} + hasBin: true + peerDependencies: + nuxt: ^3.9.0 + vite: '*' + dependencies: + '@antfu/utils': 0.7.7 + '@nuxt/devtools-kit': 1.1.4(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6) + '@nuxt/devtools-wizard': 1.1.4 + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@vue/devtools-applet': 7.0.23(@unocss/reset@0.58.7)(floating-vue@5.2.2)(unocss@0.58.7)(vite@5.2.6)(vue@3.4.21) + '@vue/devtools-core': 7.0.23(vite@5.2.6)(vue@3.4.21) + '@vue/devtools-kit': 7.0.23(vue@3.4.21) + birpc: 0.2.17 + consola: 3.2.3 + cronstrue: 2.48.0 + destr: 2.0.3 + error-stack-parser-es: 0.1.1 + execa: 7.2.0 + fast-glob: 3.3.2 + flatted: 3.3.1 + get-port-please: 3.1.2 + hookable: 5.5.3 + image-meta: 0.2.0 + is-installed-globally: 1.0.0 + launch-editor: 2.6.1 + local-pkg: 0.5.0 + magicast: 0.3.3 + nuxt: 3.11.1(@types/node@20.11.30)(@unocss/reset@0.58.7)(floating-vue@5.2.2)(rollup@4.13.0)(typescript@5.4.3)(unocss@0.58.7)(vite@5.2.6)(vue-tsc@2.0.7) + nypm: 0.3.8 + ohash: 1.1.3 + pacote: 17.0.6 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.0.3 + rc9: 2.1.1 + scule: 1.3.0 + semver: 7.6.0 + simple-git: 3.23.0 + sirv: 2.0.4 + unimport: 3.7.1(rollup@4.13.0) + vite: 5.2.6(@types/node@20.11.30) + vite-plugin-inspect: 0.8.3(@nuxt/kit@3.11.1)(rollup@4.13.0)(vite@5.2.6) + vite-plugin-vue-inspector: 4.0.2(vite@5.2.6) + which: 3.0.1 + ws: 8.16.0 + transitivePeerDependencies: + - '@unocss/reset' + - '@vue/composition-api' + - async-validator + - axios + - bluebird + - bufferutil + - change-case + - drauu + - floating-vue + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - unocss + - utf-8-validate + - vue + dev: true + + /@nuxt/image@1.4.0(rollup@4.13.0): + resolution: {integrity: sha512-ZEGHjX8UZY/Wt/jWm+66QuUQA14E0dTwdi7n9BoZ1cJdinL8QdRMm3FcbwJvCj2quvD85c9LT2wvNA8l6hOMOA==} + engines: {node: ^14.16.0 || >=16.11.0} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + consola: 3.2.3 + defu: 6.1.4 + h3: 1.11.1 + image-meta: 0.2.0 + node-fetch-native: 1.6.4 + ohash: 1.1.3 + pathe: 1.1.2 + std-env: 3.7.0 + ufo: 1.5.3 + optionalDependencies: + ipx: 2.1.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/kv' + - idb-keyval + - ioredis + - rollup + - supports-color + - uWebSockets.js + dev: true + + /@nuxt/kit@3.11.1(rollup@4.13.0): + resolution: {integrity: sha512-8VVlhaY4N+wipgHmSXP+gLM+esms9TEBz13I/J++PbOUJuf2cJlUUTyqMoRVL0xudVKK/8fJgSndRkyidy1m2w==} + engines: {node: ^14.18.0 || >=16.10.0} + dependencies: + '@nuxt/schema': 3.11.1(rollup@4.13.0) + c12: 1.10.0 + consola: 3.2.3 + defu: 6.1.4 + globby: 14.0.1 + hash-sum: 2.0.0 + ignore: 5.3.1 + jiti: 1.21.0 + knitwork: 1.0.0 + mlly: 1.6.1 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + semver: 7.6.0 + ufo: 1.5.3 + unctx: 2.3.1 + unimport: 3.7.1(rollup@4.13.0) + untyped: 1.4.2 + transitivePeerDependencies: + - rollup + - supports-color + + /@nuxt/schema@3.11.1(rollup@4.13.0): + resolution: {integrity: sha512-XyGlJsf3DtkouBCvBHlvjz+xvN4vza3W7pY3YBNMnktxlMQtfFiF3aB3A2NGLmBnJPqD3oY0j7lljraELb5hkg==} + engines: {node: ^14.18.0 || >=16.10.0} + dependencies: + '@nuxt/ui-templates': 1.3.1 + consola: 3.2.3 + defu: 6.1.4 + hookable: 5.5.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + std-env: 3.7.0 + ufo: 1.5.3 + unimport: 3.7.1(rollup@4.13.0) + untyped: 1.4.2 + transitivePeerDependencies: + - rollup + - supports-color + + /@nuxt/telemetry@2.5.3(rollup@4.13.0): + resolution: {integrity: sha512-Ghv2MgWbJcUM9G5Dy3oQP0cJkUwEgaiuQxEF61FXJdn0a69Q4StZEP/hLF0MWPM9m6EvAwI7orxkJHM7MrmtVg==} + hasBin: true + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + ci-info: 4.0.0 + consola: 3.2.3 + create-require: 1.1.1 + defu: 6.1.4 + destr: 2.0.3 + dotenv: 16.4.5 + git-url-parse: 13.1.1 + is-docker: 3.0.0 + jiti: 1.21.0 + mri: 1.2.0 + nanoid: 4.0.2 + ofetch: 1.3.4 + parse-git-config: 3.0.0 + pathe: 1.1.2 + rc9: 2.1.1 + std-env: 3.7.0 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /@nuxt/test-utils@3.12.0(@testing-library/vue@8.0.3)(@vue/test-utils@2.4.5)(h3@1.11.1)(happy-dom@14.3.8)(playwright-core@1.42.1)(rollup@4.13.0)(vite@5.2.6)(vitest@1.4.0)(vue-router@4.3.0)(vue@3.4.21): + resolution: {integrity: sha512-Q3HP53TDIYeqHT65r31HZhK/gRwVBmchSdVj1tfiYECyqstckvsQ4Cyt/GX/XmD7cLdD3d5aHow8LaMfP+BSqQ==} + engines: {node: ^14.18.0 || >=16.10.0} + peerDependencies: + '@cucumber/cucumber': ^10.3.1 + '@jest/globals': ^29.5.0 + '@playwright/test': ^1.42.1 + '@testing-library/vue': ^7.0.0 || ^8.0.1 + '@vitest/ui': ^0.34.6 || ^1.0.0 + '@vue/test-utils': ^2.4.2 + h3: '*' + happy-dom: ^9.10.9 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 + jsdom: ^22.0.0 || ^23.0.0 || ^24.0.0 + playwright-core: ^1.34.3 + vite: '*' + vitest: ^0.34.6 || ^1.0.0 + vue: ^3.3.4 + vue-router: ^4.0.0 + peerDependenciesMeta: + '@cucumber/cucumber': + optional: true + '@jest/globals': + optional: true + '@playwright/test': + optional: true + '@testing-library/vue': + optional: true + '@vitest/ui': + optional: true + '@vue/test-utils': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright-core: + optional: true + vitest: + optional: true + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@nuxt/schema': 3.11.1(rollup@4.13.0) + '@testing-library/vue': 8.0.3(vue@3.4.21) + '@vue/test-utils': 2.4.5 + c12: 1.10.0 + consola: 3.2.3 + defu: 6.1.4 + destr: 2.0.3 + estree-walker: 3.0.3 + execa: 8.0.1 + fake-indexeddb: 5.0.2 + get-port-please: 3.1.2 + h3: 1.11.1 + happy-dom: 14.3.8 + local-pkg: 0.5.0 + magic-string: 0.30.8 + node-fetch-native: 1.6.4 + ofetch: 1.3.4 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + playwright-core: 1.42.1 + radix3: 1.1.2 + scule: 1.3.0 + std-env: 3.7.0 + ufo: 1.5.3 + unenv: 1.9.0 + unplugin: 1.10.0 + vite: 5.2.6(@types/node@20.11.30) + vitest: 1.4.0(@types/node@20.11.30)(happy-dom@14.3.8) + vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.0.3)(@vue/test-utils@2.4.5)(h3@1.11.1)(happy-dom@14.3.8)(playwright-core@1.42.1)(rollup@4.13.0)(vite@5.2.6)(vitest@1.4.0)(vue-router@4.3.0)(vue@3.4.21) + vue: 3.4.21(typescript@5.4.3) + vue-router: 4.3.0(vue@3.4.21) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /@nuxt/ui-templates@1.3.1: + resolution: {integrity: sha512-5gc02Pu1HycOVUWJ8aYsWeeXcSTPe8iX8+KIrhyEtEoOSkY0eMBuo0ssljB8wALuEmepv31DlYe5gpiRwkjESA==} + + /@nuxt/ui@2.15.0(focus-trap@7.5.4)(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21): + resolution: {integrity: sha512-/dQWslFKmoBXH0OD4233oiuiTUEoufeULZqALBTSqJknycQFGDj4VUMzyh5RrcfjHS6tOw6OLlPc0b5z6yDKpA==} + engines: {node: '>=v16.20.2'} + dependencies: + '@egoist/tailwindcss-icons': 1.7.4(tailwindcss@3.4.1) + '@headlessui/tailwindcss': 0.2.0(tailwindcss@3.4.1) + '@headlessui/vue': 1.7.19(vue@3.4.21) + '@iconify-json/heroicons': 1.1.20 + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@nuxtjs/color-mode': 3.3.3(rollup@4.13.0) + '@nuxtjs/tailwindcss': 6.11.4(rollup@4.13.0) + '@popperjs/core': 2.11.8 + '@tailwindcss/aspect-ratio': 0.4.2(tailwindcss@3.4.1) + '@tailwindcss/container-queries': 0.1.1(tailwindcss@3.4.1) + '@tailwindcss/forms': 0.5.7(tailwindcss@3.4.1) + '@tailwindcss/typography': 0.5.11(tailwindcss@3.4.1) + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(fuse.js@6.6.2)(vue@3.4.21) + '@vueuse/math': 10.9.0(vue@3.4.21) + defu: 6.1.4 + fuse.js: 6.6.2 + nuxt-icon: 0.6.10(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21) + ohash: 1.1.3 + pathe: 1.1.2 + scule: 1.3.0 + tailwind-merge: 2.2.2 + tailwindcss: 3.4.1 + transitivePeerDependencies: + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - focus-trap + - idb-keyval + - jwt-decode + - nprogress + - nuxt + - qrcode + - rollup + - sortablejs + - supports-color + - ts-node + - uWebSockets.js + - universal-cookie + - vite + - vue + dev: true + + /@nuxt/vite-builder@3.11.1(@types/node@20.11.30)(rollup@4.13.0)(typescript@5.4.3)(vue-tsc@2.0.7)(vue@3.4.21): + resolution: {integrity: sha512-8DVK2Jb9xgfnvTfKr5mL3UDdAIrd3q3F4EmoVsXVKJe8NTt9LW38QdGwGViIQm9wzLDDEo0mgWF+n7WoGEH0xQ==} + engines: {node: ^14.18.0 || >=16.10.0} + peerDependencies: + vue: ^3.3.4 + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@rollup/plugin-replace': 5.0.5(rollup@4.13.0) + '@vitejs/plugin-vue': 5.0.4(vite@5.2.6)(vue@3.4.21) + '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.6)(vue@3.4.21) + autoprefixer: 10.4.19(postcss@8.4.38) + clear: 0.1.0 + consola: 3.2.3 + cssnano: 6.1.2(postcss@8.4.38) + defu: 6.1.4 + esbuild: 0.20.2 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + externality: 1.0.2 + fs-extra: 11.2.0 + get-port-please: 3.1.2 + h3: 1.11.1 + knitwork: 1.0.0 + magic-string: 0.30.8 + mlly: 1.6.1 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.0.3 + postcss: 8.4.38 + rollup-plugin-visualizer: 5.12.0(rollup@4.13.0) + std-env: 3.7.0 + strip-literal: 2.0.0 + ufo: 1.5.3 + unenv: 1.9.0 + unplugin: 1.10.0 + vite: 5.2.6(@types/node@20.11.30) + vite-node: 1.4.0(@types/node@20.11.30) + vite-plugin-checker: 0.6.4(typescript@5.4.3)(vite@5.2.6)(vue-tsc@2.0.7) + vue: 3.4.21(typescript@5.4.3) + vue-bundle-renderer: 2.0.0 + transitivePeerDependencies: + - '@types/node' + - eslint + - less + - lightningcss + - meow + - optionator + - rollup + - sass + - stylelint + - stylus + - sugarss + - supports-color + - terser + - typescript + - uWebSockets.js + - vls + - vti + - vue-tsc + dev: true + + /@nuxtjs/color-mode@3.3.3(rollup@4.13.0): + resolution: {integrity: sha512-t6QM/tj1d/53xQ9JznNVIaqIfQWhjHRzNt5VqTxNeAJWG0HCdiHVezkUTMahPUgUbEJnBrtCoquUYwpyFhNF+Q==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + pathe: 1.1.2 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /@nuxtjs/fontaine@0.4.1(rollup@4.13.0): + resolution: {integrity: sha512-8VnrFYnilfqlQVsCufiqoWusivYVOwP/0Nzu9FV44oryQlBa3qiT7EyOkKSmOxf9yZWCZBRc2wjTSxI+WTYlpg==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + fontaine: 0.4.1 + magic-string: 0.30.8 + pathe: 1.1.2 + ufo: 1.5.3 + transitivePeerDependencies: + - encoding + - rollup + - supports-color + dev: true + + /@nuxtjs/google-fonts@3.2.0(rollup@4.13.0): + resolution: {integrity: sha512-cGAjDJoeQ2jm6VJCo4AtSmKO6KjsbO9RSLj8q261fD0lMVNMZCxkCxBkg8L0/2Vfgp+5QBHWVXL71p1tiybJFw==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + google-fonts-helper: 3.5.0 + pathe: 1.1.2 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /@nuxtjs/i18n@8.2.0(rollup@4.13.0)(vue@3.4.21): + resolution: {integrity: sha512-t37aF/WOD1g8CA/iCyCJrURXocjPy7diZG+kJcHLkLmJh1v4/2Zhe0AeUsjXubGgvQKLSL3b5w8rZuPkG4yhUw==} + engines: {node: ^14.16.0 || >=16.11.0} + dependencies: + '@intlify/h3': 0.5.0 + '@intlify/shared': 9.10.2 + '@intlify/unplugin-vue-i18n': 2.0.0(rollup@4.13.0)(vue-i18n@9.10.2) + '@intlify/utils': 0.12.0 + '@miyaneee/rollup-plugin-json5': 1.2.0(rollup@4.13.0) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@rollup/plugin-yaml': 4.1.2(rollup@4.13.0) + '@vue/compiler-sfc': 3.4.21 + debug: 4.3.4 + defu: 6.1.4 + estree-walker: 3.0.3 + is-https: 4.0.0 + knitwork: 1.0.0 + magic-string: 0.30.8 + mlly: 1.6.1 + pathe: 1.1.2 + scule: 1.3.0 + sucrase: 3.35.0 + ufo: 1.5.3 + unplugin: 1.10.0 + vue-i18n: 9.10.2(vue@3.4.21) + vue-router: 4.3.0(vue@3.4.21) + transitivePeerDependencies: + - petite-vue-i18n + - rollup + - supports-color + - vue + - vue-i18n-bridge + dev: true + + /@nuxtjs/mdc@0.6.1(rollup@4.13.0): + resolution: {integrity: sha512-zS5QK7DZ/SBrjqQX1DOy7GnxKy+wbj2+LvooefOWmQqHfLTAqJLVIjuv/BmKnQWiRCq19+uysys3iY42EoY5/A==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@shikijs/transformers': 1.2.1 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + '@vue/compiler-core': 3.4.21 + consola: 3.2.3 + debug: 4.3.4 + defu: 6.1.4 + destr: 2.0.3 + detab: 3.0.2 + github-slugger: 2.0.0 + hast-util-to-string: 3.0.0 + mdast-util-to-hast: 13.1.0 + micromark-util-sanitize-uri: 2.0.0 + ohash: 1.1.3 + parse5: 7.1.2 + pathe: 1.1.2 + property-information: 6.4.1 + rehype-external-links: 3.0.0 + rehype-raw: 7.0.0 + rehype-slug: 6.0.0 + rehype-sort-attribute-values: 5.0.0 + rehype-sort-attributes: 5.0.0 + remark-emoji: 4.0.1 + remark-gfm: 4.0.0 + remark-mdc: 3.2.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.0 + scule: 1.3.0 + shiki: 1.2.1 + ufo: 1.5.3 + unified: 11.0.4 + unist-builder: 4.0.0 + unist-util-visit: 5.0.0 + unwasm: 0.3.8 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /@nuxtjs/seo@2.0.0-rc.10(@lezer/common@1.2.1)(@nuxt/devtools@1.1.4)(@unhead/shared@1.9.1)(@vue/compiler-core@3.4.21)(h3@1.11.1)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(unhead@1.9.1)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0): + resolution: {integrity: sha512-tmzXlGY7TzPNUowej4tufsmEFWU+9ZBICoEjZbmQ8IwKhh/6EofPq22d/7yRP41jJuYPieGztX+F0Ue9+7x2mg==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@nuxtjs/sitemap': 5.1.2(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(h3@1.11.1)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + defu: 6.1.4 + nuxt-link-checker: 3.0.0-rc.7(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + nuxt-og-image: 3.0.0-rc.47(@lezer/common@1.2.1)(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + nuxt-schema-org: 3.3.6(@nuxt/devtools@1.1.4)(@unhead/shared@1.9.1)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(unhead@1.9.1)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + nuxt-seo-experiments: 4.0.0-rc.5(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + nuxt-simple-robots: 4.0.0-rc.16(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + nuxt-site-config: 2.2.11(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + nuxt-site-config-kit: 2.2.11(rollup@4.13.0)(vue@3.4.21) + pkg-types: 1.0.3 + ufo: 1.5.3 + transitivePeerDependencies: + - '@lezer/common' + - '@nuxt/devtools' + - '@unhead/shared' + - '@unocss/webpack' + - '@vue/compiler-core' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - h3 + - idb-keyval + - jwt-decode + - nprogress + - nuxt + - postcss + - qrcode + - rollup + - sortablejs + - supports-color + - unhead + - universal-cookie + - vite + - vue + - webpack + dev: true + + /@nuxtjs/sitemap@5.1.2(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(h3@1.11.1)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0): + resolution: {integrity: sha512-2ZLRNCAE1m+3oM6MrbcT2MrdPM7FxZqopGz9qEufwkjLH2s6C0ZS2An61OrbCUgmgwPfeL3G9stbc9zc1VMywg==} + dependencies: + '@nuxt/devtools-kit': 1.1.4(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6) + '@nuxt/devtools-ui-kit': 1.1.4(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(fuse.js@7.0.0)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@vueuse/core': 10.9.0(vue@3.4.21) + chalk: 5.3.0 + defu: 6.1.4 + floating-vue: 5.2.2(@nuxt/kit@3.11.1)(vue@3.4.21) + h3-compression: 0.3.2(h3@1.11.1) + nuxt-site-config: 2.2.11(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + nuxt-site-config-kit: 2.2.11(rollup@4.13.0)(vue@3.4.21) + ofetch: 1.3.4 + pathe: 1.1.2 + pkg-types: 1.0.3 + radix3: 1.1.2 + semver: 7.6.0 + shiki: 1.1.7 + sirv: 2.0.4 + site-config-stack: 2.2.11(vue@3.4.21) + ufo: 1.5.3 + transitivePeerDependencies: + - '@nuxt/devtools' + - '@unocss/webpack' + - '@vue/compiler-core' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - h3 + - idb-keyval + - jwt-decode + - nprogress + - nuxt + - postcss + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - vite + - vue + - webpack + dev: true + + /@nuxtjs/tailwindcss@6.11.4(rollup@4.13.0): + resolution: {integrity: sha512-09cksgZD4seQj054Z/BeiwFg1bzQTol8KPulLDLGnmMTkEi21vj/z+WlXQRpVbN1GS9+oU9tcSsu2ufXCM3DBg==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + autoprefixer: 10.4.19(postcss@8.4.38) + chokidar: 3.6.0 + clear-module: 4.1.2 + consola: 3.2.3 + defu: 6.1.4 + h3: 1.11.1 + micromatch: 4.0.5 + pathe: 1.1.2 + postcss: 8.4.38 + postcss-custom-properties: 13.3.6(postcss@8.4.38) + postcss-nesting: 12.1.0(postcss@8.4.38) + tailwind-config-viewer: 1.7.3(tailwindcss@3.4.1) + tailwindcss: 3.4.1 + ufo: 1.5.3 + transitivePeerDependencies: + - rollup + - supports-color + - ts-node + - uWebSockets.js + dev: true + + /@one-ini/wasm@0.1.1: + resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} + dev: true + + /@parcel/watcher-android-arm64@2.4.1: + resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-darwin-arm64@2.4.1: + resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-darwin-x64@2.4.1: + resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-freebsd-x64@2.4.1: + resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-linux-arm-glibc@2.4.1: + resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-linux-arm64-glibc@2.4.1: + resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-linux-arm64-musl@2.4.1: + resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-linux-x64-glibc@2.4.1: + resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-linux-x64-musl@2.4.1: + resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-wasm@2.4.1: + resolution: {integrity: sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA==} + engines: {node: '>= 10.0.0'} + dependencies: + is-glob: 4.0.3 + micromatch: 4.0.5 + dev: true + bundledDependencies: + - napi-wasm + + /@parcel/watcher-win32-arm64@2.4.1: + resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-win32-ia32@2.4.1: + resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-win32-x64@2.4.1: + resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher@2.4.1: + resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} + engines: {node: '>= 10.0.0'} + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.5 + node-addon-api: 7.1.0 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.4.1 + '@parcel/watcher-darwin-arm64': 2.4.1 + '@parcel/watcher-darwin-x64': 2.4.1 + '@parcel/watcher-freebsd-x64': 2.4.1 + '@parcel/watcher-linux-arm-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-musl': 2.4.1 + '@parcel/watcher-linux-x64-glibc': 2.4.1 + '@parcel/watcher-linux-x64-musl': 2.4.1 + '@parcel/watcher-win32-arm64': 2.4.1 + '@parcel/watcher-win32-ia32': 2.4.1 + '@parcel/watcher-win32-x64': 2.4.1 + dev: true + + /@pinia-plugin-persistedstate/nuxt@1.2.0(@pinia/nuxt@0.5.1)(pinia@2.1.7)(rollup@4.13.0): + resolution: {integrity: sha512-2rtgx5viGSMQMCoFYZMHguA2FhFKCUvw0PwETfqQegsWeBHlqk1/D0G/9xqep8Hq+c1BuFx+jNLJzoLXtYfivg==} + peerDependencies: + '@pinia/nuxt': ^0.5.0 + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@pinia/nuxt': 0.5.1(rollup@4.13.0)(typescript@5.4.3)(vue@3.4.21) + defu: 6.1.4 + pinia-plugin-persistedstate: 3.2.1(pinia@2.1.7) + transitivePeerDependencies: + - pinia + - rollup + - supports-color + dev: true + + /@pinia/nuxt@0.5.1(rollup@4.13.0)(typescript@5.4.3)(vue@3.4.21): + resolution: {integrity: sha512-6wT6TqY81n+7/x3Yhf0yfaJVKkZU42AGqOR0T3+UvChcaOJhSma7OWPN64v+ptYlznat+fS1VTwNAcbi2lzHnw==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + pinia: 2.1.7(typescript@5.4.3)(vue@3.4.21) + transitivePeerDependencies: + - '@vue/composition-api' + - rollup + - supports-color + - typescript + - vue + dev: true + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + + /@pkgr/core@0.1.1: + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dev: true + + /@polka/url@1.0.0-next.25: + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + dev: true + + /@popperjs/core@2.11.8: + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + dev: true + + /@replit/codemirror-indentation-markers@6.5.1(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.0): + resolution: {integrity: sha512-9MfwbNdARjwx0X+duBgeJJ7vnpyHWfEwk+p4FlWVs2ntvSyQmKI/FH2iEfEUOMyafIiQxzyLn0y2RS5f54hN5A==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + dependencies: + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.0 + dev: true + + /@resvg/resvg-js-android-arm-eabi@2.6.2: + resolution: {integrity: sha512-FrJibrAk6v29eabIPgcTUMPXiEz8ssrAk7TXxsiZzww9UTQ1Z5KAbFJs+Z0Ez+VZTYgnE5IQJqBcoSiMebtPHA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@resvg/resvg-js-android-arm64@2.6.2: + resolution: {integrity: sha512-VcOKezEhm2VqzXpcIJoITuvUS/fcjIw5NA/w3tjzWyzmvoCdd+QXIqy3FBGulWdClvp4g+IfUemigrkLThSjAQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@resvg/resvg-js-darwin-arm64@2.6.2: + resolution: {integrity: sha512-nmok2LnAd6nLUKI16aEB9ydMC6Lidiiq2m1nEBDR1LaaP7FGs4AJ90qDraxX+CWlVuRlvNjyYJTNv8qFjtL9+A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@resvg/resvg-js-darwin-x64@2.6.2: + resolution: {integrity: sha512-GInyZLjgWDfsVT6+SHxQVRwNzV0AuA1uqGsOAW+0th56J7Nh6bHHKXHBWzUrihxMetcFDmQMAX1tZ1fZDYSRsw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@resvg/resvg-js-linux-arm-gnueabihf@2.6.2: + resolution: {integrity: sha512-YIV3u/R9zJbpqTTNwTZM5/ocWetDKGsro0SWp70eGEM9eV2MerWyBRZnQIgzU3YBnSBQ1RcxRZvY/UxwESfZIw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@resvg/resvg-js-linux-arm64-gnu@2.6.2: + resolution: {integrity: sha512-zc2BlJSim7YR4FZDQ8OUoJg5holYzdiYMeobb9pJuGDidGL9KZUv7SbiD4E8oZogtYY42UZEap7dqkkYuA91pg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@resvg/resvg-js-linux-arm64-musl@2.6.2: + resolution: {integrity: sha512-3h3dLPWNgSsD4lQBJPb4f+kvdOSJHa5PjTYVsWHxLUzH4IFTJUAnmuWpw4KqyQ3NA5QCyhw4TWgxk3jRkQxEKg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@resvg/resvg-js-linux-x64-gnu@2.6.2: + resolution: {integrity: sha512-IVUe+ckIerA7xMZ50duAZzwf1U7khQe2E0QpUxu5MBJNao5RqC0zwV/Zm965vw6D3gGFUl7j4m+oJjubBVoftw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@resvg/resvg-js-linux-x64-musl@2.6.2: + resolution: {integrity: sha512-UOf83vqTzoYQO9SZ0fPl2ZIFtNIz/Rr/y+7X8XRX1ZnBYsQ/tTb+cj9TE+KHOdmlTFBxhYzVkP2lRByCzqi4jQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@resvg/resvg-js-win32-arm64-msvc@2.6.2: + resolution: {integrity: sha512-7C/RSgCa+7vqZ7qAbItfiaAWhyRSoD4l4BQAbVDqRRsRgY+S+hgS3in0Rxr7IorKUpGE69X48q6/nOAuTJQxeQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@resvg/resvg-js-win32-ia32-msvc@2.6.2: + resolution: {integrity: sha512-har4aPAlvjnLcil40AC77YDIk6loMawuJwFINEM7n0pZviwMkMvjb2W5ZirsNOZY4aDbo5tLx0wNMREp5Brk+w==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@resvg/resvg-js-win32-x64-msvc@2.6.2: + resolution: {integrity: sha512-ZXtYhtUr5SSaBrUDq7DiyjOFJqBVL/dOBN7N/qmi/pO0IgiWW/f/ue3nbvu9joWE5aAKDoIzy/CxsY0suwGosQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@resvg/resvg-js@2.6.2: + resolution: {integrity: sha512-xBaJish5OeGmniDj9cW5PRa/PtmuVU3ziqrbr5xJj901ZDN4TosrVaNZpEiLZAxdfnhAe7uQ7QFWfjPe9d9K2Q==} + engines: {node: '>= 10'} + optionalDependencies: + '@resvg/resvg-js-android-arm-eabi': 2.6.2 + '@resvg/resvg-js-android-arm64': 2.6.2 + '@resvg/resvg-js-darwin-arm64': 2.6.2 + '@resvg/resvg-js-darwin-x64': 2.6.2 + '@resvg/resvg-js-linux-arm-gnueabihf': 2.6.2 + '@resvg/resvg-js-linux-arm64-gnu': 2.6.2 + '@resvg/resvg-js-linux-arm64-musl': 2.6.2 + '@resvg/resvg-js-linux-x64-gnu': 2.6.2 + '@resvg/resvg-js-linux-x64-musl': 2.6.2 + '@resvg/resvg-js-win32-arm64-msvc': 2.6.2 + '@resvg/resvg-js-win32-ia32-msvc': 2.6.2 + '@resvg/resvg-js-win32-x64-msvc': 2.6.2 + dev: true + + /@resvg/resvg-wasm@2.6.2: + resolution: {integrity: sha512-FqALmHI8D4o6lk/LRWDnhw95z5eO+eAa6ORjVg09YRR7BkcM6oPHU9uyC0gtQG5vpFLvgpeU4+zEAz2H8APHNw==} + engines: {node: '>= 10'} + dev: true + + /@rollup/plugin-alias@5.1.0(rollup@4.13.0): + resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + rollup: 4.13.0 + slash: 4.0.0 + dev: true + + /@rollup/plugin-commonjs@25.0.7(rollup@4.13.0): + resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.1.0 + is-reference: 1.2.1 + magic-string: 0.30.8 + rollup: 4.13.0 + dev: true + + /@rollup/plugin-inject@5.0.5(rollup@4.13.0): + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + estree-walker: 2.0.2 + magic-string: 0.30.8 + rollup: 4.13.0 + dev: true + + /@rollup/plugin-json@6.1.0(rollup@4.13.0): + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + rollup: 4.13.0 + dev: true + + /@rollup/plugin-node-resolve@15.2.3(rollup@4.13.0): + resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-builtin-module: 3.2.1 + is-module: 1.0.0 + resolve: 1.22.8 + rollup: 4.13.0 + dev: true + + /@rollup/plugin-replace@5.0.5(rollup@4.13.0): + resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + magic-string: 0.30.8 + rollup: 4.13.0 + dev: true + + /@rollup/plugin-terser@0.4.4(rollup@4.13.0): + resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + rollup: 4.13.0 + serialize-javascript: 6.0.2 + smob: 1.4.1 + terser: 5.29.2 + dev: true + + /@rollup/plugin-yaml@4.1.2(rollup@4.13.0): + resolution: {integrity: sha512-RpupciIeZMUqhgFE97ba0s98mOFS7CWzN3EJNhJkqSv9XLlWYtwVdtE6cDw6ASOF/sZVFS7kRJXftaqM2Vakdw==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + js-yaml: 4.1.0 + rollup: 4.13.0 + tosource: 2.0.0-alpha.3 + dev: true + + /@rollup/pluginutils@4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/pluginutils@5.1.0(rollup@4.13.0): + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 4.13.0 + + /@rollup/rollup-android-arm-eabi@4.13.0: + resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-android-arm64@4.13.0: + resolution: {integrity: sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-arm64@4.13.0: + resolution: {integrity: sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-x64@4.13.0: + resolution: {integrity: sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.13.0: + resolution: {integrity: sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.13.0: + resolution: {integrity: sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.13.0: + resolution: {integrity: sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.13.0: + resolution: {integrity: sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.13.0: + resolution: {integrity: sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.13.0: + resolution: {integrity: sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.13.0: + resolution: {integrity: sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.13.0: + resolution: {integrity: sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.13.0: + resolution: {integrity: sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + /@shikijs/core@1.1.7: + resolution: {integrity: sha512-gTYLUIuD1UbZp/11qozD3fWpUTuMqPSf3svDMMrL0UmlGU7D9dPw/V1FonwAorCUJBltaaESxq90jrSjQyGixg==} + dev: true + + /@shikijs/core@1.2.0: + resolution: {integrity: sha512-OlFvx+nyr5C8zpcMBnSGir0YPD6K11uYhouqhNmm1qLiis4GA7SsGtu07r9gKS9omks8RtQqHrJL4S+lqWK01A==} + dev: true + + /@shikijs/core@1.2.1: + resolution: {integrity: sha512-KaIS0H4EQ3KI2d++TjYqRNgwp8E3M/68e9veR4QtInzA7kKFgcjeiJqb80fuXW+blDy5fmd11PN9g9soz/3ANQ==} + dev: true + + /@shikijs/transformers@1.2.1: + resolution: {integrity: sha512-H7cVtrdv6BW2kx83t2IQgP5ri1IA50mE3QnzgJ0AvOKCGtCEieXu0JIP3245cgjNLrL+LBwb8DtTXdky1iQL9Q==} + dependencies: + shiki: 1.2.1 + dev: true + + /@shuding/opentype.js@1.4.0-beta.0: + resolution: {integrity: sha512-3NgmNyH3l/Hv6EvsWJbsvpcpUba6R8IREQ83nH83cyakCw7uM1arZKNfHwv1Wz6jgqrF/j4x5ELvR6PnK9nTcA==} + engines: {node: '>= 8.0.0'} + hasBin: true + dependencies: + fflate: 0.7.4 + string.prototype.codepointat: 0.2.1 + dev: true + + /@sigstore/bundle@2.2.0: + resolution: {integrity: sha512-5VI58qgNs76RDrwXNhpmyN/jKpq9evV/7f1XrcqcAfvxDl5SeVY/I5Rmfe96ULAV7/FK5dge9RBKGBJPhL1WsQ==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@sigstore/protobuf-specs': 0.3.0 + dev: true + + /@sigstore/core@1.1.0: + resolution: {integrity: sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==} + engines: {node: ^16.14.0 || >=18.0.0} + dev: true + + /@sigstore/protobuf-specs@0.3.0: + resolution: {integrity: sha512-zxiQ66JFOjVvP9hbhGj/F/qNdsZfkGb/dVXSanNRNuAzMlr4MC95voPUBX8//ZNnmv3uSYzdfR/JSkrgvZTGxA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + + /@sigstore/sign@2.2.3: + resolution: {integrity: sha512-LqlA+ffyN02yC7RKszCdMTS6bldZnIodiox+IkT8B2f8oRYXCB3LQ9roXeiEL21m64CVH1wyveYAORfD65WoSw==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@sigstore/bundle': 2.2.0 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.0 + make-fetch-happen: 13.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@sigstore/tuf@2.3.2: + resolution: {integrity: sha512-mwbY1VrEGU4CO55t+Kl6I7WZzIl+ysSzEYdA1Nv/FTrl2bkeaPXo5PnWZAVfcY2zSdhOpsUTJW67/M2zHXGn5w==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@sigstore/protobuf-specs': 0.3.0 + tuf-js: 2.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@sigstore/verify@1.1.1: + resolution: {integrity: sha512-BNANJms49rw9Q5J+fJjrDqOQSzjXDcOq/pgKDaVdDoIvQwqIfaoUriy+fQfh8sBX04hr4bkkrwu3EbhQqoQH7A==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@sigstore/bundle': 2.2.0 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.0 + dev: true + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + + /@sindresorhus/is@4.6.0: + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + dev: true + + /@sindresorhus/merge-streams@1.0.0: + resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} + engines: {node: '>=18'} + dev: true + + /@sindresorhus/merge-streams@2.3.0: + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + + /@socket.io/component-emitter@3.1.0: + resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} + dev: true + + /@sphinxxxx/color-conversion@2.2.2: + resolution: {integrity: sha512-XExJS3cLqgrmNBIP3bBw6+1oQ1ksGjFh0+oClDKFYpCCqx/hlqwWO5KO/S63fzUo67SxI9dMrF0y5T/Ey7h8Zw==} + dev: true + + /@splidejs/splide-extension-intersection@0.2.0: + resolution: {integrity: sha512-Gwr7/u2WGINTmXf3nuheONf6zCt9JoQ993nfRpOMX6HJSSpPROaF2nPY26ieoEHKyyGRlUG6jVfkUUk5/EWT9Q==} dev: false - /@npmcli/package-json@5.0.0: - resolution: {integrity: sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==} - engines: {node: ^16.14.0 || >=18.0.0} + /@splidejs/splide@4.1.4: + resolution: {integrity: sha512-5I30evTJcAJQXt6vJ26g2xEkG+l1nXcpEw4xpKh0/FWQ8ozmAeTbtniVtVmz2sH1Es3vgfC4SS8B2X4o5JMptA==} + + /@splidejs/vue-splide@0.6.12: + resolution: {integrity: sha512-eQb8pnGMN8Tr0FVaQo1PUMZlMHl8fSqHNXPTx79eeE2dkZqbsvq6jRzXoT9ZF7hFkxdOEmB6qYNp93SUwV684g==} + dependencies: + '@splidejs/splide': 4.1.4 + dev: true + + /@stylistic/eslint-plugin-js@0.0.4: + resolution: {integrity: sha512-W1rq2xxlFNhgZZJO+L59wtvlDI0xARYxx0WD8EeWNBO7NDybUSYSozCIcY9XvxQbTAsEXBjwqokeYm0crt7RxQ==} + dependencies: + acorn: 8.11.3 + escape-string-regexp: 4.0.0 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esutils: 2.0.3 + graphemer: 1.4.0 + dev: true + + /@stylistic/eslint-plugin-ts@0.0.4(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-sWL4Km5j8S+TLyzya/3adxMWGkCm3lVasJIVQqhxVfwnlGkpMI0GgYVIu/ubdKPS+dSvqjUHpsXgqWfMRF2+cQ==} + peerDependencies: + eslint: '*' + typescript: '*' + dependencies: + '@stylistic/eslint-plugin-js': 0.0.4 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.3) + eslint: 8.57.0 + graphemer: 1.4.0 + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@swc/helpers@0.4.14: + resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} + dependencies: + tslib: 2.6.2 + dev: true + + /@swc/helpers@0.4.36: + resolution: {integrity: sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==} dependencies: - '@npmcli/git': 5.0.4 - glob: 10.3.10 - hosted-git-info: 7.0.1 - json-parse-even-better-errors: 3.0.1 - normalize-package-data: 6.0.0 - proc-log: 3.0.0 - semver: 7.6.0 - transitivePeerDependencies: - - bluebird - dev: false + legacy-swc-helpers: /@swc/helpers@0.4.14 + tslib: 2.6.2 + dev: true - /@npmcli/promise-spawn@7.0.1: - resolution: {integrity: sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==} - engines: {node: ^16.14.0 || >=18.0.0} + /@sxzz/popperjs-es@2.11.7: + resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} + dev: true + + /@tailwindcss/aspect-ratio@0.4.2(tailwindcss@3.4.1): + resolution: {integrity: sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ==} + peerDependencies: + tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1' dependencies: - which: 4.0.0 - dev: false + tailwindcss: 3.4.1 + dev: true - /@npmcli/run-script@7.0.4: - resolution: {integrity: sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==} - engines: {node: ^16.14.0 || >=18.0.0} + /@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.1): + resolution: {integrity: sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==} + peerDependencies: + tailwindcss: '>=3.2.0' dependencies: - '@npmcli/node-gyp': 3.0.0 - '@npmcli/package-json': 5.0.0 - '@npmcli/promise-spawn': 7.0.1 - node-gyp: 10.0.1 - which: 4.0.0 - transitivePeerDependencies: - - bluebird - - supports-color - dev: false + tailwindcss: 3.4.1 + dev: true - /@nuxt/devalue@2.0.2: - resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} - dev: false + /@tailwindcss/forms@0.5.7(tailwindcss@3.4.1): + resolution: {integrity: sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==} + peerDependencies: + tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1' + dependencies: + mini-svg-data-uri: 1.4.4 + tailwindcss: 3.4.1 + dev: true - /@nuxt/devtools-kit@1.0.8(nuxt@3.10.3)(vite@5.1.4): - resolution: {integrity: sha512-j7bNZmoAXQ1a8qv6j6zk4c/aekrxYqYVQM21o/Hy4XHCUq4fajSgpoc8mjyWJSTfpkOmuLyEzMexpDWiIVSr6A==} + /@tailwindcss/typography@0.5.11(tailwindcss@3.4.1): + resolution: {integrity: sha512-ahOULqBQGCdSqL3vMNjH1R5cU2gxTh059fJIKF2enHXE8c/s3yKGDSKZ1+4poCr7BZRREJS8n5cCFmwsW4Ok3A==} peerDependencies: - nuxt: ^3.9.0 - vite: '*' + tailwindcss: '>=3.0.0 || insiders' dependencies: - '@nuxt/kit': 3.10.3 - '@nuxt/schema': 3.10.3 - execa: 7.2.0 - nuxt: 3.10.3(@types/node@20.11.24)(eslint@8.57.0)(typescript@5.3.3)(vite@5.1.4) - vite: 5.1.4(@types/node@20.11.24) - transitivePeerDependencies: - - rollup - - supports-color - dev: false + lodash.castarray: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + postcss-selector-parser: 6.0.10 + tailwindcss: 3.4.1 + dev: true - /@nuxt/devtools-wizard@1.0.8: - resolution: {integrity: sha512-RxyOlM7Isk5npwXwDJ/rjm9ekX5sTNG0LS0VOBMdSx+D5nlRPMRr/r9yO+9WQDyzPLClLzHaXRHBWLPlRX3IMw==} - hasBin: true + /@tanstack/virtual-core@3.2.0: + resolution: {integrity: sha512-P5XgYoAw/vfW65byBbJQCw+cagdXDT/qH6wmABiLt4v4YBT2q2vqCOhihe+D1Nt325F/S/0Tkv6C5z0Lv+VBQQ==} + dev: true + + /@tanstack/vue-virtual@3.2.0(vue@3.4.21): + resolution: {integrity: sha512-KbmQVvw1k5Js2Fk4DJw9aDxFT5+e8a2Ba4UBJAFCRnWBCnzd3NlmEHI9JCeLv1tYDZ/iHwwv+Z9Le0BENIEP8A==} + peerDependencies: + vue: ^2.7.0 || ^3.0.0 dependencies: - consola: 3.2.3 - diff: 5.2.0 - execa: 7.2.0 - global-directory: 4.0.1 - magicast: 0.3.3 - pathe: 1.1.2 - pkg-types: 1.0.3 - prompts: 2.4.2 - rc9: 2.1.1 - semver: 7.6.0 - dev: false + '@tanstack/virtual-core': 3.2.0 + vue: 3.4.21(typescript@5.4.3) + dev: true - /@nuxt/devtools@1.0.8(nuxt@3.10.3)(vite@5.1.4): - resolution: {integrity: sha512-o6aBFEBxc8OgVHV4OPe2g0q9tFIe9HiTxRiJnlTJ+jHvOQsBLS651ArdVtwLChf9UdMouFlpLLJ1HteZqTbtsQ==} - hasBin: true + /@techor/extend@3.0.18: + resolution: {integrity: sha512-kyNNs5iqMUzSdk45mJ74bJcv58KYjjh3/3QM5PALAYa4DLK1yhtBpnsKXGV9XVbLh+FpcJB2D/QXTO/2UZtYFg==} + dev: true + + /@techor/log@3.0.18: + resolution: {integrity: sha512-1+aGnH6AAE7EmxNJzLX9/q4xnvpet/OJST2cukShxkgAq0ey82aYgt0uJKV59tQ4vshgfNO+Qhu8RaaXJShd8Q==} + dev: true + + /@testing-library/dom@9.3.4: + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} + engines: {node: '>=14'} + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/runtime': 7.24.1 + '@types/aria-query': 5.0.4 + aria-query: 5.1.3 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + dev: true + + /@testing-library/vue@8.0.3(vue@3.4.21): + resolution: {integrity: sha512-wSsbNlZ69ZFQgVlHMtc/ZC/g9BHO7MhyDrd4nHyfEubtMr3kToN/w4/BsSBknGIF8w9UmPbsgbIuq/CbdBHzCA==} + engines: {node: '>=14'} peerDependencies: - nuxt: ^3.9.0 - vite: '*' + '@vue/compiler-sfc': '>= 3' + vue: '>= 3' + peerDependenciesMeta: + '@vue/compiler-sfc': + optional: true dependencies: - '@antfu/utils': 0.7.7 - '@nuxt/devtools-kit': 1.0.8(nuxt@3.10.3)(vite@5.1.4) - '@nuxt/devtools-wizard': 1.0.8 - '@nuxt/kit': 3.10.3 - birpc: 0.2.17 - consola: 3.2.3 - destr: 2.0.3 - error-stack-parser-es: 0.1.1 - execa: 7.2.0 - fast-glob: 3.3.2 - flatted: 3.3.1 - get-port-please: 3.1.2 - hookable: 5.5.3 - image-meta: 0.2.0 - is-installed-globally: 1.0.0 - launch-editor: 2.6.1 - local-pkg: 0.5.0 - magicast: 0.3.3 - nuxt: 3.10.3(@types/node@20.11.24)(eslint@8.57.0)(typescript@5.3.3)(vite@5.1.4) - nypm: 0.3.6 - ohash: 1.1.3 - pacote: 17.0.6 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.0.3 - rc9: 2.1.1 - scule: 1.3.0 - semver: 7.6.0 - simple-git: 3.22.0 - sirv: 2.0.4 - unimport: 3.7.1(rollup@4.12.0) - vite: 5.1.4(@types/node@20.11.24) - vite-plugin-inspect: 0.8.3(@nuxt/kit@3.10.3)(vite@5.1.4) - vite-plugin-vue-inspector: 4.0.2(vite@5.1.4) - which: 3.0.1 - ws: 8.16.0 - transitivePeerDependencies: - - bluebird - - bufferutil - - rollup - - supports-color - - utf-8-validate - dev: false + '@babel/runtime': 7.24.1 + '@testing-library/dom': 9.3.4 + '@vue/test-utils': 2.4.5 + vue: 3.4.21(typescript@5.4.3) + dev: true - /@nuxt/kit@3.10.3: - resolution: {integrity: sha512-PUjYB9Mvx0qD9H1QZBwwtY4fLlCLET+Mm9BVqUOtXCaGoXd6u6BE4e/dGFPk2UEKkIcDGrUMSbqkHYvsEuK9NQ==} - engines: {node: ^14.18.0 || >=16.10.0} + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + requiresBuild: true + dev: true + + /@tufjs/canonical-json@2.0.0: + resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} + engines: {node: ^16.14.0 || >=18.0.0} + dev: true + + /@tufjs/models@2.0.0: + resolution: {integrity: sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: - '@nuxt/schema': 3.10.3 - c12: 1.9.0 - consola: 3.2.3 - defu: 6.1.4 - globby: 14.0.1 - hash-sum: 2.0.0 - ignore: 5.3.1 - jiti: 1.21.0 - knitwork: 1.0.0 - mlly: 1.6.1 - pathe: 1.1.2 - pkg-types: 1.0.3 - scule: 1.3.0 - semver: 7.6.0 - ufo: 1.4.0 - unctx: 2.3.1 - unimport: 3.7.1(rollup@4.12.0) - untyped: 1.4.2 - transitivePeerDependencies: - - rollup - - supports-color - dev: false + '@tufjs/canonical-json': 2.0.0 + minimatch: 9.0.3 + dev: true - /@nuxt/schema@3.10.3: - resolution: {integrity: sha512-a4cYbeskEVBPazgAhvUGkL/j7ho/iPWMK3vCEm6dRMjSqHVEITRosrj0aMfLbRrDpTrMjlRs0ZitxiaUfE/p5Q==} - engines: {node: ^14.18.0 || >=16.10.0} + /@types/aria-query@5.0.4: + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + dev: true + + /@types/conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} dependencies: - '@nuxt/ui-templates': 1.3.1 - consola: 3.2.3 - defu: 6.1.4 - hookable: 5.5.3 - pathe: 1.1.2 - pkg-types: 1.0.3 - scule: 1.3.0 - std-env: 3.7.0 - ufo: 1.4.0 - unimport: 3.7.1(rollup@4.12.0) - untyped: 1.4.2 - transitivePeerDependencies: - - rollup - - supports-color - dev: false + '@types/node': 20.11.30 + dev: true - /@nuxt/telemetry@2.5.3: - resolution: {integrity: sha512-Ghv2MgWbJcUM9G5Dy3oQP0cJkUwEgaiuQxEF61FXJdn0a69Q4StZEP/hLF0MWPM9m6EvAwI7orxkJHM7MrmtVg==} - hasBin: true + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: - '@nuxt/kit': 3.10.3 - ci-info: 4.0.0 - consola: 3.2.3 - create-require: 1.1.1 - defu: 6.1.4 - destr: 2.0.3 - dotenv: 16.4.5 - git-url-parse: 13.1.1 - is-docker: 3.0.0 - jiti: 1.21.0 - mri: 1.2.0 - nanoid: 4.0.2 - ofetch: 1.3.3 - parse-git-config: 3.0.0 - pathe: 1.1.2 - rc9: 2.1.1 - std-env: 3.7.0 - transitivePeerDependencies: - - rollup - - supports-color - dev: false + '@types/ms': 0.7.34 + dev: true - /@nuxt/ui-templates@1.3.1: - resolution: {integrity: sha512-5gc02Pu1HycOVUWJ8aYsWeeXcSTPe8iX8+KIrhyEtEoOSkY0eMBuo0ssljB8wALuEmepv31DlYe5gpiRwkjESA==} - dev: false + /@types/eslint-scope@3.7.7: + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + dependencies: + '@types/eslint': 8.56.6 + '@types/estree': 1.0.5 + dev: true - /@nuxt/vite-builder@3.10.3(@types/node@20.11.24)(eslint@8.57.0)(typescript@5.3.3)(vue@3.4.21): - resolution: {integrity: sha512-BqkbrYkEk1AVUJleofbqTRV+ltf2p1CDjGDK78zENPCgrSABlj4F4oK8rze8vmRY5qoH7kMZxgMa2dXVXCp6OA==} - engines: {node: ^14.18.0 || >=16.10.0} - peerDependencies: - vue: ^3.3.4 + /@types/eslint@8.56.6: + resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} dependencies: - '@nuxt/kit': 3.10.3 - '@rollup/plugin-replace': 5.0.5(rollup@4.12.0) - '@vitejs/plugin-vue': 5.0.4(vite@5.1.4)(vue@3.4.21) - '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.1.4)(vue@3.4.21) - autoprefixer: 10.4.18(postcss@8.4.35) - clear: 0.1.0 - consola: 3.2.3 - cssnano: 6.0.5(postcss@8.4.35) - defu: 6.1.4 - esbuild: 0.20.1 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - externality: 1.0.2 - fs-extra: 11.2.0 - get-port-please: 3.1.2 - h3: 1.11.1 - knitwork: 1.0.0 - magic-string: 0.30.7 - mlly: 1.6.1 - ohash: 1.1.3 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.0.3 - postcss: 8.4.35 - rollup-plugin-visualizer: 5.12.0(rollup@4.12.0) - std-env: 3.7.0 - strip-literal: 2.0.0 - ufo: 1.4.0 - unenv: 1.9.0 - unplugin: 1.8.0 - vite: 5.1.4(@types/node@20.11.24) - vite-node: 1.3.1(@types/node@20.11.24) - vite-plugin-checker: 0.6.4(eslint@8.57.0)(typescript@5.3.3)(vite@5.1.4) - vue: 3.4.21(typescript@5.3.3) - vue-bundle-renderer: 2.0.0 - transitivePeerDependencies: - - '@types/node' - - eslint - - less - - lightningcss - - meow - - optionator - - rollup - - sass - - stylelint - - stylus - - sugarss - - supports-color - - terser - - typescript - - uWebSockets.js - - vls - - vti - - vue-tsc - dev: false + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + dev: true + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + /@types/hast@3.0.4: + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + dependencies: + '@types/unist': 3.0.2 + dev: true - /@parcel/watcher-android-arm64@2.4.1: - resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true + /@types/http-proxy@1.17.14: + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + dependencies: + '@types/node': 20.11.30 + dev: true - /@parcel/watcher-darwin-arm64@2.4.1: - resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + dev: true - /@parcel/watcher-darwin-x64@2.4.1: - resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true - /@parcel/watcher-freebsd-x64@2.4.1: - resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true + /@types/lodash-es@4.17.12: + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + dependencies: + '@types/lodash': 4.17.0 + dev: true - /@parcel/watcher-linux-arm-glibc@2.4.1: - resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@types/lodash@4.17.0: + resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} + dev: true - /@parcel/watcher-linux-arm64-glibc@2.4.1: - resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@types/mdast@3.0.15: + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + dependencies: + '@types/unist': 2.0.10 + dev: true - /@parcel/watcher-linux-arm64-musl@2.4.1: - resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@types/mdast@4.0.3: + resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + dependencies: + '@types/unist': 3.0.2 + dev: true - /@parcel/watcher-linux-x64-glibc@2.4.1: - resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + dev: true - /@parcel/watcher-linux-x64-musl@2.4.1: - resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: true - /@parcel/watcher-wasm@2.4.1: - resolution: {integrity: sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA==} - engines: {node: '>= 10.0.0'} + /@types/node@12.20.55: + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + /@types/node@20.11.30: + resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} dependencies: - is-glob: 4.0.3 - micromatch: 4.0.5 - dev: false - bundledDependencies: - - napi-wasm + undici-types: 5.26.5 + dev: true - /@parcel/watcher-win32-arm64@2.4.1: - resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true + /@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + dev: true - /@parcel/watcher-win32-ia32@2.4.1: - resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true + /@types/resolve@1.20.2: + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + dev: true - /@parcel/watcher-win32-x64@2.4.1: - resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: true - /@parcel/watcher@2.4.1: - resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} - engines: {node: '>= 10.0.0'} + /@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + dev: true + + /@types/unist@3.0.2: + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + dev: true + + /@types/web-bluetooth@0.0.16: + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + dev: true + + /@types/web-bluetooth@0.0.20: + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.5 - node-addon-api: 7.1.0 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.4.1 - '@parcel/watcher-darwin-arm64': 2.4.1 - '@parcel/watcher-darwin-x64': 2.4.1 - '@parcel/watcher-freebsd-x64': 2.4.1 - '@parcel/watcher-linux-arm-glibc': 2.4.1 - '@parcel/watcher-linux-arm64-glibc': 2.4.1 - '@parcel/watcher-linux-arm64-musl': 2.4.1 - '@parcel/watcher-linux-x64-glibc': 2.4.1 - '@parcel/watcher-linux-x64-musl': 2.4.1 - '@parcel/watcher-win32-arm64': 2.4.1 - '@parcel/watcher-win32-ia32': 2.4.1 - '@parcel/watcher-win32-x64': 2.4.1 - dev: false + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.3) + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: true - /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - requiresBuild: true - optional: true + /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/scope-manager': 7.4.0 + '@typescript-eslint/type-utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/visitor-keys': 7.4.0 + debug: 4.3.4 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.3) + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: true - /@pkgr/core@0.1.1: - resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.3) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + eslint: 8.57.0 + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.4.0 + '@typescript-eslint/types': 7.4.0 + '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) + '@typescript-eslint/visitor-keys': 7.4.0 + debug: 4.3.4 + eslint: 8.57.0 + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@polka/url@1.0.0-next.24: - resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} - dev: false + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + dev: true - /@rollup/plugin-alias@5.1.0(rollup@4.12.0): - resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + /@typescript-eslint/scope-manager@7.4.0: + resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - rollup: 4.12.0 - slash: 4.0.0 - dev: false + '@typescript-eslint/types': 7.4.0 + '@typescript-eslint/visitor-keys': 7.4.0 + dev: true - /@rollup/plugin-commonjs@25.0.7(rollup@4.12.0): - resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} - engines: {node: '>=14.0.0'} + /@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' peerDependenciesMeta: - rollup: + typescript: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - commondir: 1.0.1 - estree-walker: 2.0.2 - glob: 8.1.0 - is-reference: 1.2.1 - magic-string: 0.30.7 - rollup: 4.12.0 - dev: false + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.3) + debug: 4.3.4 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.4.3) + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: true - /@rollup/plugin-inject@5.0.5(rollup@4.12.0): - resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} - engines: {node: '>=14.0.0'} + /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + eslint: ^8.56.0 + typescript: '*' peerDependenciesMeta: - rollup: + typescript: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - estree-walker: 2.0.2 - magic-string: 0.30.7 - rollup: 4.12.0 - dev: false + '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) + '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) + debug: 4.3.4 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.4.3) + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: true - /@rollup/plugin-json@6.1.0(rollup@4.12.0): - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} - engines: {node: '>=14.0.0'} + /@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/types@7.4.0: + resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} + engines: {node: ^18.18.0 || >=20.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.3): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + typescript: '*' peerDependenciesMeta: - rollup: + typescript: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - rollup: 4.12.0 - dev: false + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.6.0 + tsutils: 3.21.0(typescript@5.4.3) + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.12.0): - resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} - engines: {node: '>=14.0.0'} + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 + typescript: '*' peerDependenciesMeta: - rollup: + typescript: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-builtin-module: 3.2.1 - is-module: 1.0.0 - resolve: 1.22.8 - rollup: 4.12.0 - dev: false + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.3) + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: true - /@rollup/plugin-replace@5.0.5(rollup@4.12.0): - resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} - engines: {node: '>=14.0.0'} + /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3): + resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + typescript: '*' peerDependenciesMeta: - rollup: + typescript: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - magic-string: 0.30.7 - rollup: 4.12.0 - dev: false + '@typescript-eslint/types': 7.4.0 + '@typescript-eslint/visitor-keys': 7.4.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.3) + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.12.0): - resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} - engines: {node: '>=14.0.0'} + /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - rollup: ^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - rollup: 4.12.0 - serialize-javascript: 6.0.2 - smob: 1.4.1 - terser: 5.28.1 - dev: false + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.3) + eslint: 8.57.0 + eslint-scope: 5.1.1 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true - /@rollup/pluginutils@4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} + /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: false + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.3) + eslint: 8.57.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true - /@rollup/pluginutils@5.1.0(rollup@4.12.0): - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} + /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + eslint: ^8.56.0 dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - rollup: 4.12.0 - dev: false - - /@rollup/rollup-android-arm-eabi@4.12.0: - resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@rollup/rollup-android-arm64@4.12.0: - resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@rollup/rollup-darwin-arm64@4.12.0: - resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@rollup/rollup-darwin-x64@4.12.0: - resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@rollup/rollup-linux-arm-gnueabihf@4.12.0: - resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@rollup/rollup-linux-arm64-gnu@4.12.0: - resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@rollup/rollup-linux-arm64-musl@4.12.0: - resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@rollup/rollup-linux-riscv64-gnu@4.12.0: - resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@rollup/rollup-linux-x64-gnu@4.12.0: - resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@rollup/rollup-linux-x64-musl@4.12.0: - resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@rollup/rollup-win32-arm64-msvc@4.12.0: - resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@rollup/rollup-win32-ia32-msvc@4.12.0: - resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.4.0 + '@typescript-eslint/types': 7.4.0 + '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) + eslint: 8.57.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true - /@rollup/rollup-win32-x64-msvc@4.12.0: - resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + dev: true - /@sigstore/bundle@2.2.0: - resolution: {integrity: sha512-5VI58qgNs76RDrwXNhpmyN/jKpq9evV/7f1XrcqcAfvxDl5SeVY/I5Rmfe96ULAV7/FK5dge9RBKGBJPhL1WsQ==} - engines: {node: ^16.14.0 || >=18.0.0} + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@sigstore/protobuf-specs': 0.3.0 - dev: false + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + dev: true - /@sigstore/core@1.0.0: - resolution: {integrity: sha512-dW2qjbWLRKGu6MIDUTBuJwXCnR8zivcSpf5inUzk7y84zqy/dji0/uahppoIgMoKeR+6pUZucrwHfkQQtiG9Rw==} - engines: {node: ^16.14.0 || >=18.0.0} - dev: false + /@typescript-eslint/visitor-keys@7.4.0: + resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.4.0 + eslint-visitor-keys: 3.4.3 + dev: true - /@sigstore/protobuf-specs@0.3.0: - resolution: {integrity: sha512-zxiQ66JFOjVvP9hbhGj/F/qNdsZfkGb/dVXSanNRNuAzMlr4MC95voPUBX8//ZNnmv3uSYzdfR/JSkrgvZTGxA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: false + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true - /@sigstore/sign@2.2.3: - resolution: {integrity: sha512-LqlA+ffyN02yC7RKszCdMTS6bldZnIodiox+IkT8B2f8oRYXCB3LQ9roXeiEL21m64CVH1wyveYAORfD65WoSw==} - engines: {node: ^16.14.0 || >=18.0.0} + /@unhead/addons@1.9.1(rollup@4.13.0): + resolution: {integrity: sha512-fxFZ0cfVWKBIaOGOA9jfVv7riujB6IGsiwTZXgB2r5P5NpxWigbyEmev6rPCxaQC3dol9juC3TUpcnGV/oGU6A==} dependencies: - '@sigstore/bundle': 2.2.0 - '@sigstore/core': 1.0.0 - '@sigstore/protobuf-specs': 0.3.0 - make-fetch-happen: 13.0.0 + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + '@unhead/schema': 1.9.1 + '@unhead/shared': 1.9.1 + magic-string: 0.30.8 + mlly: 1.6.1 + ufo: 1.5.3 + unplugin: 1.10.0 + unplugin-ast: 0.9.0(rollup@4.13.0) transitivePeerDependencies: - - supports-color - dev: false + - rollup + dev: true - /@sigstore/tuf@2.3.1: - resolution: {integrity: sha512-9Iv40z652td/QbV0o5n/x25H9w6IYRt2pIGbTX55yFDYlApDQn/6YZomjz6+KBx69rXHLzHcbtTS586mDdFD+Q==} - engines: {node: ^16.14.0 || >=18.0.0} + /@unhead/dom@1.9.1: + resolution: {integrity: sha512-5YVT8pyg7Mw8niWwklP8nFKK9WLIvaK4O3tXvqpW9OxSAexJG576bh6FR0hEtSDLBkJh+pI8mMMMIuzSdK/whA==} dependencies: - '@sigstore/protobuf-specs': 0.3.0 - tuf-js: 2.2.0 - transitivePeerDependencies: - - supports-color - dev: false + '@unhead/schema': 1.9.1 + '@unhead/shared': 1.9.1 + dev: true - /@sigstore/verify@1.1.0: - resolution: {integrity: sha512-1fTqnqyTBWvV7cftUUFtDcHPdSox0N3Ub7C0lRyReYx4zZUlNTZjCV+HPy4Lre+r45dV7Qx5JLKvqqsgxuyYfg==} - engines: {node: ^16.14.0 || >=18.0.0} + /@unhead/schema-org@1.9.1(@unhead/shared@1.9.1)(unhead@1.9.1): + resolution: {integrity: sha512-yU8e6ov6L8+wpirtamSo9K3WgBi8a6CA26fMy5koq7SjGr5Y/5dW4P+qS7aAdF7WAL8Ou1trkMyNFo0/6TLUkw==} + peerDependencies: + '@unhead/shared': 1.9.1 + unhead: '>=1.8.20' dependencies: - '@sigstore/bundle': 2.2.0 - '@sigstore/core': 1.0.0 - '@sigstore/protobuf-specs': 0.3.0 - dev: false + '@unhead/shared': 1.9.1 + ufo: 1.5.3 + unhead: 1.9.1 + dev: true - /@sindresorhus/merge-streams@1.0.0: - resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} - engines: {node: '>=18'} + /@unhead/schema@1.9.1: + resolution: {integrity: sha512-wCJKNx4l837NEVMWP3MnUfkgsnMyuXwYs7+5VvbYzAWbnZSvQt/K10xDV0N7ft9RSlPfgukVVG+gtARm1kGVHQ==} + dependencies: + hookable: 5.5.3 + zhead: 2.2.4 dev: true - /@sindresorhus/merge-streams@2.3.0: - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} - dev: false + /@unhead/shared@1.9.1: + resolution: {integrity: sha512-rZgzXzOeF4vu2bJJAkHJckgPgWGfpDA3/vesPhJIZGs2NkGYi9lDwMUeJ90HKCMJv1+JRAcPOokjRi6vRlnQpg==} + dependencies: + '@unhead/schema': 1.9.1 + dev: true - /@stylistic/eslint-plugin-js@1.6.3(eslint@8.57.0): - resolution: {integrity: sha512-ckdz51oHxD2FaxgY2piJWJVJiwgp8Uu96s+as2yB3RMwavn3nHBrpliVukXY9S/DmMicPRB2+H8nBk23GDG+qA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: '>=8.40.0' + /@unhead/ssr@1.9.1: + resolution: {integrity: sha512-ojY5umX2rtEvmsAFX935DPxk+rZfmgLOEMP1etJGYmCh2GQskK4USjUp9uYJyf0DP0xh+42R4a06e5602CIWHQ==} dependencies: - '@types/eslint': 8.56.5 - acorn: 8.11.3 - escape-string-regexp: 4.0.0 - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + '@unhead/schema': 1.9.1 + '@unhead/shared': 1.9.1 dev: true - /@stylistic/eslint-plugin-jsx@1.6.3(eslint@8.57.0): - resolution: {integrity: sha512-SRysCIg59Zvn3dJPqHziiHwuni4NNj1et5stAmivmyQ3Cdp2ULCB7tGxCF1OxpkwRlZQue3ZgdiM7EXfJKaf9w==} - engines: {node: ^16.0.0 || >=18.0.0} + /@unhead/vue@1.9.1(vue@3.4.21): + resolution: {integrity: sha512-clSKIkwtw26Lx5tR7ecJ/zvyFJkghvJU+jt2liQ4XYQb/Qaveh8L7gqsI1RKUuKaXAjlo2Z4Jpp1v9nHxA0heg==} peerDependencies: - eslint: '>=8.40.0' + vue: '>=2.7 || >=3' dependencies: - '@stylistic/eslint-plugin-js': 1.6.3(eslint@8.57.0) - '@types/eslint': 8.56.5 - eslint: 8.57.0 - estraverse: 5.3.0 - picomatch: 4.0.1 + '@unhead/schema': 1.9.1 + '@unhead/shared': 1.9.1 + hookable: 5.5.3 + unhead: 1.9.1 + vue: 3.4.21(typescript@5.4.3) dev: true - /@stylistic/eslint-plugin-plus@1.6.3(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-TuwQOdyVGycDPw5XeF7W4f3ZonAVzOAzORSaD2yGAJ0fRAbJ+l/v3CkKzIAqBBwWkc+c2aRMsWtLP2+viBnmlQ==} + /@unocss/astro@0.58.7(rollup@4.13.0)(vite@5.2.6): + resolution: {integrity: sha512-htqhe+Qn9UUnND214LlwS8a9Ib0hzO+IxY79cz1GDYoDV+Z4ONXCkUxLLlnnBM/HupWKOu+bdBWWVGIOHAniig==} peerDependencies: - eslint: '*' + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + vite: + optional: true dependencies: - '@types/eslint': 8.56.5 - '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3) - eslint: 8.57.0 + '@unocss/core': 0.58.7 + '@unocss/reset': 0.58.7 + '@unocss/vite': 0.58.7(rollup@4.13.0)(vite@5.2.6) + vite: 5.2.6(@types/node@20.11.30) transitivePeerDependencies: - - supports-color - - typescript + - rollup dev: true - /@stylistic/eslint-plugin-ts@1.6.3(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-v5GwZsPLblWM9uAIdaSi31Sed3XBWlTFQJ3b5upEmj6QsKYivA5nmIYutwqqL133QdVWjmC86pINlx2Muq3uNQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: '>=8.40.0' + /@unocss/cli@0.58.7(rollup@4.13.0): + resolution: {integrity: sha512-Vr5LABxFvZa8K71qVOnP7FkSA14/xEqhVOO+KZzcZafdW3TCvWa/dr3Lr5mDUufY82s5/5KGFosVQWQymA8HMg==} + engines: {node: '>=14'} + hasBin: true dependencies: - '@stylistic/eslint-plugin-js': 1.6.3(eslint@8.57.0) - '@types/eslint': 8.56.5 - '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3) - eslint: 8.57.0 + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + '@unocss/config': 0.58.7 + '@unocss/core': 0.58.7 + '@unocss/preset-uno': 0.58.7 + cac: 6.7.14 + chokidar: 3.6.0 + colorette: 2.0.20 + consola: 3.2.3 + fast-glob: 3.3.2 + magic-string: 0.30.8 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + transitivePeerDependencies: + - rollup + dev: true + + /@unocss/config@0.58.7: + resolution: {integrity: sha512-ZMSFWJI8DfE/4HiIU+hkTSKUtEkennRn+raej5HCGTfy5xpdYCm9Zdrw/cYqkN2LPHM8o076Z2sD6H4MV5HrvA==} + engines: {node: '>=14'} + dependencies: + '@unocss/core': 0.58.7 + unconfig: 0.3.11 + dev: true + + /@unocss/core@0.58.7: + resolution: {integrity: sha512-Df5ytibV0MB7kWLggzLHsJUj08Of2oqXmPg7QjRUghMvCT3dl2LUIZXiztYPMH0F4x0cPebNoa/pavNt8xz9eQ==} + dev: true + + /@unocss/extractor-arbitrary-variants@0.58.7: + resolution: {integrity: sha512-wEuilON0u/e1milNp1UBWGps3Hdtm9qBfmc2YmsHN8KhpTSSCluzbrLSYfF++tU5iWmVWR2514Lc2waVDhuiwg==} + dependencies: + '@unocss/core': 0.58.7 + dev: true + + /@unocss/inspector@0.58.7: + resolution: {integrity: sha512-5vYsAuOj4ODgCm2Hmfhgcih+MdjsOxAHpUUDcZKAuVkr5j4dmrQnjWmS0fafR5vcjQch6T1JTsPE9x/Ws51UIw==} + dependencies: + '@unocss/core': 0.58.7 + '@unocss/rule-utils': 0.58.7 + gzip-size: 6.0.0 + sirv: 2.0.4 + dev: true + + /@unocss/nuxt@0.58.7(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(webpack@5.91.0): + resolution: {integrity: sha512-qhUBiewBIKliTeqP/WIdTSpzRst54UMs3+MdrWRygbTGc2VVNnKGVxLyOHP3fupxGPz/3oaFboD1aXCJtpbgTw==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@unocss/config': 0.58.7 + '@unocss/core': 0.58.7 + '@unocss/preset-attributify': 0.58.7 + '@unocss/preset-icons': 0.58.7 + '@unocss/preset-tagify': 0.58.7 + '@unocss/preset-typography': 0.58.7 + '@unocss/preset-uno': 0.58.7 + '@unocss/preset-web-fonts': 0.58.7 + '@unocss/preset-wind': 0.58.7 + '@unocss/reset': 0.58.7 + '@unocss/vite': 0.58.7(rollup@4.13.0)(vite@5.2.6) + '@unocss/webpack': 0.58.7(rollup@4.13.0)(webpack@5.91.0) + unocss: 0.58.7(@unocss/webpack@0.58.7)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6) transitivePeerDependencies: + - postcss + - rollup - supports-color - - typescript + - vite + - webpack dev: true - /@stylistic/eslint-plugin@1.6.3(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-WDa4FjhImp7YcztRaMG09svhKYYhi2Hc4p9ltQRSqyB4fsUUFm+GKzStqqH7xfjHnxacMJaOnaMGRTUqIIZDLA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@unocss/postcss@0.58.7(postcss@8.4.38): + resolution: {integrity: sha512-4UhYTj7AaCDJKPEa9GX9L9dnH+6ci04i9ZYdNdu+Pvbki2Q2wAa2FwqLwH7+6WgWm10b9AXVacExw+4hC2reOg==} + engines: {node: '>=14'} peerDependencies: - eslint: '>=8.40.0' + postcss: ^8.4.21 dependencies: - '@stylistic/eslint-plugin-js': 1.6.3(eslint@8.57.0) - '@stylistic/eslint-plugin-jsx': 1.6.3(eslint@8.57.0) - '@stylistic/eslint-plugin-plus': 1.6.3(eslint@8.57.0)(typescript@5.3.3) - '@stylistic/eslint-plugin-ts': 1.6.3(eslint@8.57.0)(typescript@5.3.3) - '@types/eslint': 8.56.5 - eslint: 8.57.0 + '@unocss/config': 0.58.7 + '@unocss/core': 0.58.7 + '@unocss/rule-utils': 0.58.7 + css-tree: 2.3.1 + fast-glob: 3.3.2 + magic-string: 0.30.8 + postcss: 8.4.38 + dev: true + + /@unocss/preset-attributify@0.58.7: + resolution: {integrity: sha512-WmhrRSOAhbKn+q7A65Kg/49YDZOqfKxj+VZvngwjzDmSfZcr9BHhc67eg9IOF4OPHdKw/3rhSvA+FTMGre2Lpw==} + dependencies: + '@unocss/core': 0.58.7 + dev: true + + /@unocss/preset-icons@0.58.7: + resolution: {integrity: sha512-GeFaWiWGDktRs9TKqT4gb78Cjo7qlatOTijfJ1Zoyd3QMfbg7mRJPZGgHnLtpwYju+QKxG618fwlGvzARKhNfg==} + dependencies: + '@iconify/utils': 2.1.22 + '@unocss/core': 0.58.7 + ofetch: 1.3.4 transitivePeerDependencies: - supports-color - - typescript dev: true - /@trysound/sax@0.2.0: - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} - dev: false + /@unocss/preset-mini@0.58.7: + resolution: {integrity: sha512-ktfrMlOtnks9j1r1ZJFzPcmCbWRjOfXh7UwoGYhH7c3Fi9Zbn1HI9+wblroEBstvbGUZGyaH5Ht+0rCmRrg5HQ==} + dependencies: + '@unocss/core': 0.58.7 + '@unocss/extractor-arbitrary-variants': 0.58.7 + '@unocss/rule-utils': 0.58.7 + dev: true - /@tufjs/canonical-json@2.0.0: - resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} - engines: {node: ^16.14.0 || >=18.0.0} - dev: false + /@unocss/preset-tagify@0.58.7: + resolution: {integrity: sha512-IDR9+QDgPjcANRIWzlmubPPtgYTXGxWFqrEfRyz7ZQ4YLiA2sSLpVyOwOBW5mP7Bl2hF5oGlTKYyprk4pRzyUA==} + dependencies: + '@unocss/core': 0.58.7 + dev: true - /@tufjs/models@2.0.0: - resolution: {integrity: sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==} - engines: {node: ^16.14.0 || >=18.0.0} + /@unocss/preset-typography@0.58.7: + resolution: {integrity: sha512-GCZGrFGBJO/k9widlpRvCKoouRaprgvNtt8mKpv38ToDSWexMZcaOTZHpKUPgljmjJ5As7ASwmDvjv6uiM5uYg==} dependencies: - '@tufjs/canonical-json': 2.0.0 - minimatch: 9.0.3 - dev: false + '@unocss/core': 0.58.7 + '@unocss/preset-mini': 0.58.7 + dev: true - /@types/acorn@4.0.6: - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + /@unocss/preset-uno@0.58.7: + resolution: {integrity: sha512-oirPRtIailoewLvim/VjcxHZrBotRzBNaFZFMD1GLwScAYrzS8DWJ3pozNn7+s2E80ZUBfgekRTgvUKAFMPSCw==} dependencies: - '@types/estree': 1.0.5 + '@unocss/core': 0.58.7 + '@unocss/preset-mini': 0.58.7 + '@unocss/preset-wind': 0.58.7 + '@unocss/rule-utils': 0.58.7 dev: true - /@types/concat-stream@2.0.3: - resolution: {integrity: sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ==} + /@unocss/preset-web-fonts@0.58.7: + resolution: {integrity: sha512-97BhHYFudIVmMmLIZl3nA6puFLr2EEgG3xxR8Sa2Ox2sFL46D6oZrsxg9qr73QdJNOU3qk7HtnCn0+rozDrixg==} dependencies: - '@types/node': 20.11.24 + '@unocss/core': 0.58.7 + ofetch: 1.3.4 dev: true - /@types/conventional-commits-parser@5.0.0: - resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + /@unocss/preset-wind@0.58.7: + resolution: {integrity: sha512-rELMKcd/cwMnw6fPf/dmg63u41fRXJoXDO5rlO/+Fa8DF4/r8KJTUbjJbZfcOnh3n8jHz3NUz+QigdRBuDTEuw==} dependencies: - '@types/node': 20.11.24 + '@unocss/core': 0.58.7 + '@unocss/preset-mini': 0.58.7 + '@unocss/rule-utils': 0.58.7 dev: true - /@types/debug@4.1.12: - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + /@unocss/reset@0.58.7: + resolution: {integrity: sha512-KiN5u5D4zJcU0Tg+wjgTWYIm8VEfHpi7t2a3YfNCLo9s/75Ty4tlYB9StEShYmVMCXBOu0mK1CwqQTNaFpfM1w==} + dev: true + + /@unocss/rule-utils@0.58.7: + resolution: {integrity: sha512-SbMwAUSgx5v4TXy+MXiWbqzoMjVHSeMaJpJOruU9PmtrOuZmqeajffMtI6pLtGlgrEL76frLRyMmSErxhyNelw==} + engines: {node: '>=14'} dependencies: - '@types/ms': 0.7.34 + '@unocss/core': 0.58.7 + magic-string: 0.30.8 + dev: true + + /@unocss/scope@0.58.7: + resolution: {integrity: sha512-DaAHFT3azxq5eFiTRrDAqk8TSDlo6x5ImBowzdNO4B2QMt+o1X9uhbe8Qt+WlG3MOwhti87JT8ooNA1pzi3Iig==} dev: true - /@types/eslint@8.56.5: - resolution: {integrity: sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==} + /@unocss/transformer-attributify-jsx-babel@0.58.7: + resolution: {integrity: sha512-IxEPQG7Kn+NgYEogOSKfqfGMQR7WU8X2DctaGBoQlizMiDr+q9DXM1dgGU0bXMxnSpRF8DYFHvgHefRnNUUVPg==} dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 + '@babel/core': 7.24.3 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) + '@babel/preset-typescript': 7.24.1(@babel/core@7.24.3) + '@unocss/core': 0.58.7 + transitivePeerDependencies: + - supports-color dev: true - /@types/estree-jsx@1.0.5: - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + /@unocss/transformer-attributify-jsx@0.58.7: + resolution: {integrity: sha512-6kVTHvcTdlKpvXuXRgUPKFTTWFxJH0OL6N77x2WZgbDQc40mv95JIUCVBA8EnpRyGGTQi3yasiXIS7Ur2UmsbA==} dependencies: - '@types/estree': 1.0.5 + '@unocss/core': 0.58.7 dev: true - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + /@unocss/transformer-compile-class@0.58.7: + resolution: {integrity: sha512-+IWWA9/hmaZIjxB4JY3fuWuK4fAMV/uoi0T3kANDOnK/HUmX5pUF9oTzC3LBa+1SwzZiMoTJgiQEGKv1qa2QjQ==} + dependencies: + '@unocss/core': 0.58.7 + dev: true - /@types/hast@3.0.4: - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + /@unocss/transformer-directives@0.58.7: + resolution: {integrity: sha512-vMn86ARgrhCd+bZf1qvwBWhvQnOkAwOXbFGHM2cuuC0VVGJQcRE+dwTnUEJ5iqKGUNFWPJ/7NaV47kh58YITcg==} dependencies: - '@types/unist': 3.0.2 + '@unocss/core': 0.58.7 + '@unocss/rule-utils': 0.58.7 + css-tree: 2.3.1 dev: true - /@types/http-proxy@1.17.14: - resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + /@unocss/transformer-variant-group@0.58.7: + resolution: {integrity: sha512-9yGvrecxvY6wEc1tV4AsUDMNbj8xWk6aJ3LyZNzxOzmxmNUNAIK+y81/Hp7djn+w0ck6ss/uo6Ug7tGX+0bKUw==} dependencies: - '@types/node': 20.11.24 - dev: false + '@unocss/core': 0.58.7 + dev: true - /@types/is-empty@1.2.3: - resolution: {integrity: sha512-4J1l5d79hoIvsrKh5VUKVRA1aIdsOb10Hu5j3J2VfP/msDnfTdGPmNp2E1Wg+vs97Bktzo+MZePFFXSGoykYJw==} + /@unocss/vite@0.58.7(rollup@4.13.0)(vite@5.2.6): + resolution: {integrity: sha512-S8TJojR1/7O9Sfykj2k4yOq6gZOnjMNZq5ug/6edA11Q/gz2WrT/sx6aPcfIm3xVBnmLxaHfy3r06W+SiIbZcg==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + dependencies: + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + '@unocss/config': 0.58.7 + '@unocss/core': 0.58.7 + '@unocss/inspector': 0.58.7 + '@unocss/scope': 0.58.7 + '@unocss/transformer-directives': 0.58.7 + chokidar: 3.6.0 + fast-glob: 3.3.2 + magic-string: 0.30.8 + vite: 5.2.6(@types/node@20.11.30) + transitivePeerDependencies: + - rollup dev: true - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + /@unocss/webpack@0.58.7(rollup@4.13.0)(webpack@5.91.0): + resolution: {integrity: sha512-e5R95VfNUsC42bPQdXTd8KVJScq/rmhu6eiN/fSOc6+zEb4ODt6y3KkCQCMSdSyKLKQnwPVnQfnDF9v6WlJeXw==} + peerDependencies: + webpack: ^4 || ^5 + dependencies: + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + '@unocss/config': 0.58.7 + '@unocss/core': 0.58.7 + chokidar: 3.6.0 + fast-glob: 3.3.2 + magic-string: 0.30.8 + unplugin: 1.10.0 + webpack: 5.91.0(esbuild@0.19.12) + webpack-sources: 3.2.3 + transitivePeerDependencies: + - rollup dev: true - /@types/mdast@3.0.15: - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + /@vercel/nft@0.26.4: + resolution: {integrity: sha512-j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==} + engines: {node: '>=16'} + hasBin: true dependencies: - '@types/unist': 2.0.10 + '@mapbox/node-pre-gyp': 1.0.11 + '@rollup/pluginutils': 4.2.1 + acorn: 8.11.3 + acorn-import-attributes: 1.9.4(acorn@8.11.3) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + node-gyp-build: 4.8.0 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color dev: true - /@types/mdast@4.0.3: - resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + /@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.6)(vue@3.4.21): + resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 || ^5.0.0 + vue: ^3.0.0 dependencies: - '@types/unist': 3.0.2 + '@babel/core': 7.24.3 + '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.3) + vite: 5.2.6(@types/node@20.11.30) + vue: 3.4.21(typescript@5.4.3) + transitivePeerDependencies: + - supports-color dev: true - /@types/minimist@1.2.5: - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + /@vitejs/plugin-vue@5.0.4(vite@5.2.6)(vue@3.4.21): + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + dependencies: + vite: 5.2.6(@types/node@20.11.30) + vue: 3.4.21(typescript@5.4.3) dev: true - /@types/ms@0.7.34: - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + /@vitest/coverage-v8@1.4.0(vitest@1.4.0): + resolution: {integrity: sha512-4hDGyH1SvKpgZnIByr9LhGgCEuF9DKM34IBLCC/fVfy24Z3+PZ+Ii9hsVBsHvY1umM1aGPEjceRkzxCfcQ10wg==} + peerDependencies: + vitest: 1.4.0 + dependencies: + '@ampproject/remapping': 2.3.0 + '@bcoe/v8-coverage': 0.2.3 + debug: 4.3.4 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.4 + istanbul-reports: 3.1.7 + magic-string: 0.30.8 + magicast: 0.3.3 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 2.0.0 + test-exclude: 6.0.0 + v8-to-istanbul: 9.2.0 + vitest: 1.4.0(@types/node@20.11.30)(happy-dom@14.3.8) + transitivePeerDependencies: + - supports-color dev: true - /@types/node@12.20.55: - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + /@vitest/expect@1.4.0: + resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} + dependencies: + '@vitest/spy': 1.4.0 + '@vitest/utils': 1.4.0 + chai: 4.4.1 dev: true - /@types/node@20.11.24: - resolution: {integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==} + /@vitest/runner@1.4.0: + resolution: {integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==} dependencies: - undici-types: 5.26.5 + '@vitest/utils': 1.4.0 + p-limit: 5.0.0 + pathe: 1.1.2 + dev: true - /@types/normalize-package-data@2.4.4: - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + /@vitest/snapshot@1.4.0: + resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==} + dependencies: + magic-string: 0.30.8 + pathe: 1.1.2 + pretty-format: 29.7.0 dev: true - /@types/resolve@1.20.2: - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - dev: false + /@vitest/spy@1.4.0: + resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} + dependencies: + tinyspy: 2.2.1 + dev: true + + /@vitest/utils@1.4.0: + resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} + dependencies: + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + dev: true - /@types/semver@7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + /@volar/language-core@2.1.5: + resolution: {integrity: sha512-u1OHmVkCFsJqNdaM2GKuMhE67TxcEnOqJNF+VtYv2Ji8DnrUaF4FAFSNxY+MRGICl+873CsSJVKas9TQtW14LA==} + dependencies: + '@volar/source-map': 2.1.5 dev: true - /@types/supports-color@8.1.3: - resolution: {integrity: sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==} + /@volar/source-map@2.1.5: + resolution: {integrity: sha512-GIkAM6fHgDcTXcdH4i10fAiAZzO0HLIer8/pt3oZ9A0n7n4R5d1b2F8Xxzh/pgmgNoL+SrHX3MFxs35CKgfmtA==} + dependencies: + muggle-string: 0.4.1 dev: true - /@types/unist@2.0.10: - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + /@volar/typescript@2.1.5: + resolution: {integrity: sha512-zo9a3NrNMSkufIvHuExDGTfYv+zO7C5p2wg8fyP7vcqF/Qo0ztjb0ZfOgq/A85EO/MBc1Kj2Iu7PaOBtP++NMw==} + dependencies: + '@volar/language-core': 2.1.5 + path-browserify: 1.0.1 dev: true - /@types/unist@3.0.2: - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + /@vue-final-modal/nuxt@1.0.3(rollup@4.13.0)(vue-final-modal@4.5.4): + resolution: {integrity: sha512-I8YTvrBB93mLLV51Kn3BhlX5saAPqE4jz3Zb9jBm3wwMkvBkEtw3PwXq9kiGb+rNRS2v9EOL2FmhWWim++Mmvg==} + peerDependencies: + vue-final-modal: '>=4.0.0' + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + vue-final-modal: 4.5.4(@vueuse/core@10.9.0)(@vueuse/integrations@10.9.0)(focus-trap@7.5.4)(vue@3.4.21) + transitivePeerDependencies: + - rollup + - supports-color dev: true - /@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-j6vT/kCulhG5wBmGtstKeiVr1rdXE4nk+DT1k6trYkwlrvW9eOF5ZbgKnd/YR6PcM4uTEXa0h6Fcvf6X7Dxl0w==} - engines: {node: ^16.0.0 || >=18.0.0} + /@vue-macros/common@1.10.1(rollup@4.13.0)(vue@3.4.21): + resolution: {integrity: sha512-uftSpfwdwitcQT2lM8aVxcfe5rKQBzC9jMrtJM5sG4hEuFyfIvnJihpPpnaWxY+X4p64k+YYXtBFv+1O5Bq3dg==} + engines: {node: '>=16.14.0'} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' + vue: ^2.7.0 || ^3.2.25 peerDependenciesMeta: - typescript: + vue: optional: true dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/type-utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.1.0 - debug: 4.3.4 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 + '@babel/types': 7.24.0 + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + '@vue/compiler-sfc': 3.4.21 + ast-kit: 0.11.3(rollup@4.13.0) + local-pkg: 0.5.0 + magic-string-ast: 0.3.0 + vue: 3.4.21(typescript@5.4.3) transitivePeerDependencies: - - supports-color + - rollup dev: true - /@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-V1EknKUubZ1gWFjiOZhDSNToOjs63/9O0puCgGS8aDOgpZY326fzFu15QAUjwaXzRZjf/qdsdBrckYdv9YxB8w==} - engines: {node: ^16.0.0 || >=18.0.0} + /@vue/babel-helper-vue-transform-on@1.2.2: + resolution: {integrity: sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==} + dev: true + + /@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.3): + resolution: {integrity: sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==} peerDependencies: - eslint: ^8.56.0 - typescript: '*' + '@babel/core': ^7.0.0-0 peerDependenciesMeta: - typescript: + '@babel/core': optional: true dependencies: - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.1.0 - debug: 4.3.4 - eslint: 8.57.0 - typescript: 5.3.3 + '@babel/core': 7.24.3 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + '@vue/babel-helper-vue-transform-on': 1.2.2 + '@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.24.3) + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.21.0: - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.24.3): + resolution: {integrity: sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + '@babel/code-frame': 7.24.2 + '@babel/core': 7.24.3 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/parser': 7.24.1 + '@vue/compiler-sfc': 3.4.21 dev: true - /@typescript-eslint/scope-manager@7.1.0: - resolution: {integrity: sha512-6TmN4OJiohHfoOdGZ3huuLhpiUgOGTpgXNUPJgeZOZR3DnIpdSgtt83RS35OYNNXxM4TScVlpVKC9jyQSETR1A==} - engines: {node: ^16.0.0 || >=18.0.0} + /@vue/compiler-core@3.4.21: + resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} dependencies: - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/visitor-keys': 7.1.0 - dev: true + '@babel/parser': 7.24.1 + '@vue/shared': 3.4.21 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 - /@typescript-eslint/type-utils@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-UZIhv8G+5b5skkcuhgvxYWHjk7FW7/JP5lPASMEUoliAPwIH/rxoUSQPia2cuOj9AmDZmwUl1usKm85t5VUMew==} - engines: {node: ^16.0.0 || >=18.0.0} + /@vue/compiler-dom@3.4.21: + resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} + dependencies: + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 + + /@vue/compiler-sfc@3.4.21: + resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} + dependencies: + '@babel/parser': 7.24.1 + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + estree-walker: 2.0.2 + magic-string: 0.30.8 + postcss: 8.4.38 + source-map-js: 1.2.0 + + /@vue/compiler-ssr@3.4.21: + resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} + dependencies: + '@vue/compiler-dom': 3.4.21 + '@vue/shared': 3.4.21 + + /@vue/devtools-api@6.6.1: + resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} + + /@vue/devtools-applet@7.0.23(@unocss/reset@0.58.7)(floating-vue@5.2.2)(unocss@0.58.7)(vite@5.2.6)(vue@3.4.21): + resolution: {integrity: sha512-P0VsDwEB0J0+usNjl9UNOPwWybbpsh0QicZlvkaUen+q2J/UQPeaOamZaD8dmijvajgKzb0BLkjMqftQX7sMWg==} peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + vue: ^3.0.0 dependencies: - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) - '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - debug: 4.3.4 - eslint: 8.57.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 + '@vue/devtools-core': 7.0.23(vite@5.2.6)(vue@3.4.21) + '@vue/devtools-kit': 7.0.23(vue@3.4.21) + '@vue/devtools-shared': 7.0.23 + '@vue/devtools-ui': 7.0.23(@unocss/reset@0.58.7)(floating-vue@5.2.2)(unocss@0.58.7)(vue@3.4.21) + perfect-debounce: 1.0.0 + splitpanes: 3.1.5 + vue: 3.4.21(typescript@5.4.3) + vue-virtual-scroller: 2.0.0-beta.8(vue@3.4.21) transitivePeerDependencies: - - supports-color + - '@unocss/reset' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - floating-vue + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - sortablejs + - universal-cookie + - unocss + - vite dev: true - /@typescript-eslint/types@6.21.0: - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@vue/devtools-core@7.0.23(vite@5.2.6)(vue@3.4.21): + resolution: {integrity: sha512-zxgNc+MOavh3ZELZC33CcgmPMokrJZNF5eYF+FG6OwwpsRi2VnP3D3zCHes5TgXVDy4ItiS8Bz+SKjo93JhIvw==} + dependencies: + '@vue/devtools-kit': 7.0.23(vue@3.4.21) + '@vue/devtools-shared': 7.0.23 + mitt: 3.0.1 + nanoid: 3.3.7 + pathe: 1.1.2 + vite-hot-client: 0.2.3(vite@5.2.6) + transitivePeerDependencies: + - vite + - vue dev: true - /@typescript-eslint/types@7.1.0: - resolution: {integrity: sha512-qTWjWieJ1tRJkxgZYXx6WUYtWlBc48YRxgY2JN1aGeVpkhmnopq+SUC8UEVGNXIvWH7XyuTjwALfG6bFEgCkQA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@vue/devtools-kit@7.0.23(vue@3.4.21): + resolution: {integrity: sha512-q2GnvPBV9yyoHZw+SMSs0d+WD5kvqUH8/6vXitwtLmprPmh+bkIl36duZ7tsVbqKvm8rVvQ32C2W0VnOKUpzVA==} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@vue/devtools-shared': 7.0.23 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + vue: 3.4.21(typescript@5.4.3) dev: true - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + /@vue/devtools-shared@7.0.23: + resolution: {integrity: sha512-4tSTNlijofiDR6RB4DD2Zwb/Z4M9DL9F8JzVRpMrbtDtnUZ97CxxGkUPmAlUigfZjRJBTcGw+op5cMQyVVIxmg==} dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 + rfdc: 1.3.1 + dev: true + + /@vue/devtools-ui@7.0.23(@unocss/reset@0.58.7)(floating-vue@5.2.2)(unocss@0.58.7)(vue@3.4.21): + resolution: {integrity: sha512-+83KHg7V4jNC7GVTa8HE+218YWi4Ly6Fa9VLF9jQv/Ykl3Xy4vgB4PSiGq45Ol1iFFtmBQ1Z2MZ6+HULLhpWhw==} + peerDependencies: + '@unocss/reset': '>=0.50.0-0' + floating-vue: '>=2.0.0-0' + unocss: '>=0.50.0-0' + vue: '>=3.0.0-0' + dependencies: + '@unocss/reset': 0.58.7 + '@vueuse/components': 10.9.0(vue@3.4.21) + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(fuse.js@7.0.0)(vue@3.4.21) + colord: 2.9.3 + floating-vue: 5.2.2(@nuxt/kit@3.11.1)(vue@3.4.21) + focus-trap: 7.5.4 + unocss: 0.58.7(@unocss/webpack@0.58.7)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6) + vue: 3.4.21(typescript@5.4.3) transitivePeerDependencies: - - supports-color + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - sortablejs + - universal-cookie dev: true - /@typescript-eslint/typescript-estree@7.1.0(typescript@5.3.3): - resolution: {integrity: sha512-k7MyrbD6E463CBbSpcOnwa8oXRdHzH1WiVzOipK3L5KSML92ZKgUBrTlehdi7PEIMT8k0bQixHUGXggPAlKnOQ==} - engines: {node: ^16.0.0 || >=18.0.0} + /@vue/language-core@2.0.7(typescript@5.4.3): + resolution: {integrity: sha512-Vh1yZX3XmYjn9yYLkjU8DN6L0ceBtEcapqiyclHne8guG84IaTzqtvizZB1Yfxm3h6m7EIvjerLO5fvOZO6IIQ==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/visitor-keys': 7.1.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 + '@volar/language-core': 2.1.5 + '@vue/compiler-dom': 3.4.21 + '@vue/shared': 3.4.21 + computeds: 0.0.1 minimatch: 9.0.3 - semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color + path-browserify: 1.0.1 + typescript: 5.4.3 + vue-template-compiler: 2.7.16 dev: true - /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + /@vue/reactivity@3.4.21: + resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==} dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - eslint: 8.57.0 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true + '@vue/shared': 3.4.21 - /@typescript-eslint/utils@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-WUFba6PZC5OCGEmbweGpnNJytJiLG7ZvDBJJoUcX4qZYf1mGZ97mO2Mps6O2efxJcJdRNpqweCistDbZMwIVHw==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^8.56.0 + /@vue/runtime-core@3.4.21: + resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==} dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) - eslint: 8.57.0 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true + '@vue/reactivity': 3.4.21 + '@vue/shared': 3.4.21 - /@typescript-eslint/visitor-keys@6.21.0: - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} + /@vue/runtime-dom@3.4.21: + resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==} dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - dev: true + '@vue/runtime-core': 3.4.21 + '@vue/shared': 3.4.21 + csstype: 3.1.3 - /@typescript-eslint/visitor-keys@7.1.0: - resolution: {integrity: sha512-FhUqNWluiGNzlvnDZiXad4mZRhtghdoKW6e98GoEOYSu5cND+E39rG5KwJMUzeENwm1ztYBRqof8wMLP+wNPIA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@vue/server-renderer@3.4.21(vue@3.4.21): + resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==} + peerDependencies: + vue: 3.4.21 dependencies: - '@typescript-eslint/types': 7.1.0 - eslint-visitor-keys: 3.4.3 - dev: true + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + vue: 3.4.21(typescript@5.4.3) - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + /@vue/shared@3.4.21: + resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} - /@unhead/dom@1.8.10: - resolution: {integrity: sha512-dBeDbHrBjeU+eVgMsD91TGEazb1dwLrY0x/ve01CldMCmm+WcRu++SUW7s1QX84mzGH2EgFz78o1OPn6jpV3zw==} + /@vue/test-utils@2.4.5: + resolution: {integrity: sha512-oo2u7vktOyKUked36R93NB7mg2B+N7Plr8lxp2JBGwr18ch6EggFjixSCdIVVLkT6Qr0z359Xvnafc9dcKyDUg==} dependencies: - '@unhead/schema': 1.8.10 - '@unhead/shared': 1.8.10 - dev: false + js-beautify: 1.15.1 + vue-component-type-helpers: 2.0.7 + dev: true - /@unhead/schema@1.8.10: - resolution: {integrity: sha512-cy8RGOPkwOVY5EmRoCgGV8AqLjy/226xBVTY54kBct02Om3hBdpB9FZa9frM910pPUXMI8PNmFgABO23O7IdJA==} + /@vueuse/components@10.9.0(vue@3.4.21): + resolution: {integrity: sha512-BHQpA0yIi3y7zKa1gYD0FUzLLkcRTqVhP8smnvsCK6GFpd94Nziq1XVPD7YpFeho0k5BzbBiNZF7V/DpkJ967A==} dependencies: - hookable: 5.5.3 - zhead: 2.2.4 - dev: false + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/shared': 10.9.0(vue@3.4.21) + vue-demi: 0.14.7(vue@3.4.21) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true - /@unhead/shared@1.8.10: - resolution: {integrity: sha512-pEFryAs3EmV+ShDQx2ZBwUnt5l3RrMrXSMZ50oFf+MImKZNARVvD4+3I8fEI9wZh+Zq0JYG3UAfzo51MUP+Juw==} + /@vueuse/core@10.9.0(vue@3.4.21): + resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==} dependencies: - '@unhead/schema': 1.8.10 - dev: false + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.9.0 + '@vueuse/shared': 10.9.0(vue@3.4.21) + vue-demi: 0.14.7(vue@3.4.21) + transitivePeerDependencies: + - '@vue/composition-api' + - vue - /@unhead/ssr@1.8.10: - resolution: {integrity: sha512-7wKRKDd8c2NFmMyPetj8Ah5u2hXunDBZT5Y2DH83O16PiMxx4/uobGamTV1EfcqjTvOKJvAqkrYZNYSWss99NQ==} + /@vueuse/core@9.13.0(vue@3.4.21): + resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} dependencies: - '@unhead/schema': 1.8.10 - '@unhead/shared': 1.8.10 - dev: false + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.13.0 + '@vueuse/shared': 9.13.0(vue@3.4.21) + vue-demi: 0.14.7(vue@3.4.21) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true - /@unhead/vue@1.8.10(vue@3.4.21): - resolution: {integrity: sha512-KF8pftHnxnlBlgNpKXWLTg3ZUtkuDCxRPUFSDBy9CtqRSX/qvAhLZ26mbqRVmHj8KigiRHP/wnPWNyGnUx20Bg==} + /@vueuse/head@2.0.0(vue@3.4.21): + resolution: {integrity: sha512-ykdOxTGs95xjD4WXE4na/umxZea2Itl0GWBILas+O4oqS7eXIods38INvk3XkJKjqMdWPcpCyLX/DioLQxU1KA==} peerDependencies: vue: '>=2.7 || >=3' dependencies: - '@unhead/schema': 1.8.10 - '@unhead/shared': 1.8.10 - hookable: 5.5.3 - unhead: 1.8.10 - vue: 3.4.21(typescript@5.3.3) - dev: false + '@unhead/dom': 1.9.1 + '@unhead/schema': 1.9.1 + '@unhead/ssr': 1.9.1 + '@unhead/vue': 1.9.1(vue@3.4.21) + vue: 3.4.21(typescript@5.4.3) + dev: true - /@vercel/nft@0.26.4: - resolution: {integrity: sha512-j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==} - engines: {node: '>=16'} - hasBin: true - dependencies: - '@mapbox/node-pre-gyp': 1.0.11 - '@rollup/pluginutils': 4.2.1 - acorn: 8.11.3 - acorn-import-attributes: 1.9.2(acorn@8.11.3) - async-sema: 3.1.1 - bindings: 1.5.0 - estree-walker: 2.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - micromatch: 4.0.5 - node-gyp-build: 4.8.0 - resolve-from: 5.0.0 + /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(fuse.js@6.6.2)(vue@3.4.21): + resolution: {integrity: sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==} + peerDependencies: + async-validator: '*' + axios: '*' + change-case: '*' + drauu: '*' + focus-trap: '*' + fuse.js: '*' + idb-keyval: '*' + jwt-decode: '*' + nprogress: '*' + qrcode: '*' + sortablejs: '*' + universal-cookie: '*' + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + dependencies: + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/shared': 10.9.0(vue@3.4.21) + focus-trap: 7.5.4 + fuse.js: 6.6.2 + vue-demi: 0.14.7(vue@3.4.21) transitivePeerDependencies: - - encoding - - supports-color - dev: false + - '@vue/composition-api' + - vue + dev: true - /@vitejs/plugin-vue-jsx@3.1.0(vite@5.1.4)(vue@3.4.21): - resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} - engines: {node: ^14.18.0 || >=16.0.0} + /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(fuse.js@7.0.0)(vue@3.4.21): + resolution: {integrity: sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==} peerDependencies: - vite: ^4.0.0 || ^5.0.0 - vue: ^3.0.0 + async-validator: '*' + axios: '*' + change-case: '*' + drauu: '*' + focus-trap: '*' + fuse.js: '*' + idb-keyval: '*' + jwt-decode: '*' + nprogress: '*' + qrcode: '*' + sortablejs: '*' + universal-cookie: '*' + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true dependencies: - '@babel/core': 7.24.0 - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.0) - '@vue/babel-plugin-jsx': 1.2.1(@babel/core@7.24.0) - vite: 5.1.4(@types/node@20.11.24) - vue: 3.4.21(typescript@5.3.3) + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/shared': 10.9.0(vue@3.4.21) + focus-trap: 7.5.4 + fuse.js: 7.0.0 + vue-demi: 0.14.7(vue@3.4.21) transitivePeerDependencies: - - supports-color - dev: false + - '@vue/composition-api' + - vue - /@vitejs/plugin-vue@5.0.4(vite@5.1.4)(vue@3.4.21): - resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} - engines: {node: ^18.0.0 || >=20.0.0} - peerDependencies: - vite: ^5.0.0 - vue: ^3.2.25 + /@vueuse/math@10.9.0(vue@3.4.21): + resolution: {integrity: sha512-qb60AzFKzg8Gw85c4YiheEMC2AMkk+eO/nB9MmuQFU/HAHvfVckesiPlwaQqUlZQ4MJt0z8qP18/H7ozpj0sKQ==} dependencies: - vite: 5.1.4(@types/node@20.11.24) - vue: 3.4.21(typescript@5.3.3) - dev: false + '@vueuse/shared': 10.9.0(vue@3.4.21) + vue-demi: 0.14.7(vue@3.4.21) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true - /@vue-macros/common@1.10.1(vue@3.4.21): - resolution: {integrity: sha512-uftSpfwdwitcQT2lM8aVxcfe5rKQBzC9jMrtJM5sG4hEuFyfIvnJihpPpnaWxY+X4p64k+YYXtBFv+1O5Bq3dg==} - engines: {node: '>=16.14.0'} + /@vueuse/metadata@10.9.0: + resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==} + + /@vueuse/metadata@9.13.0: + resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + dev: true + + /@vueuse/nuxt@10.9.0(nuxt@3.11.1)(rollup@4.13.0)(vue@3.4.21): + resolution: {integrity: sha512-nC4Efg28Q6E41fUD5R+zM9uT5c+NfaDzaJCpqaEV/qHj+/BNJmkDBK8POLIUsiVOY35d0oD/YxZ+eVizqWBZow==} peerDependencies: - vue: ^2.7.0 || ^3.2.25 - peerDependenciesMeta: - vue: - optional: true + nuxt: ^3.0.0 dependencies: - '@babel/types': 7.24.0 - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - '@vue/compiler-sfc': 3.4.21 - ast-kit: 0.11.3 + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/metadata': 10.9.0 local-pkg: 0.5.0 - magic-string-ast: 0.3.0 - vue: 3.4.21(typescript@5.3.3) + nuxt: 3.11.1(@types/node@20.11.30)(@unocss/reset@0.58.7)(floating-vue@5.2.2)(rollup@4.13.0)(typescript@5.4.3)(unocss@0.58.7)(vite@5.2.6)(vue-tsc@2.0.7) + vue-demi: 0.14.7(vue@3.4.21) transitivePeerDependencies: + - '@vue/composition-api' - rollup - dev: false + - supports-color + - vue + dev: true - /@vue/babel-helper-vue-transform-on@1.2.1: - resolution: {integrity: sha512-jtEXim+pfyHWwvheYwUwSXm43KwQo8nhOBDyjrUITV6X2tB7lJm6n/+4sqR8137UVZZul5hBzWHdZ2uStYpyRQ==} - dev: false + /@vueuse/shared@10.9.0(vue@3.4.21): + resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} + dependencies: + vue-demi: 0.14.7(vue@3.4.21) + transitivePeerDependencies: + - '@vue/composition-api' + - vue - /@vue/babel-plugin-jsx@1.2.1(@babel/core@7.24.0): - resolution: {integrity: sha512-Yy9qGktktXhB39QE99So/BO2Uwm/ZG+gpL9vMg51ijRRbINvgbuhyJEi4WYmGRMx/MSTfK0xjgZ3/MyY+iLCEg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - peerDependenciesMeta: - '@babel/core': - optional: true + /@vueuse/shared@9.13.0(vue@3.4.21): + resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 - '@babel/types': 7.24.0 - '@vue/babel-helper-vue-transform-on': 1.2.1 - '@vue/babel-plugin-resolve-type': 1.2.1(@babel/core@7.24.0) - camelcase: 6.3.0 - html-tags: 3.3.1 - svg-tags: 1.0.0 + vue-demi: 0.14.7(vue@3.4.21) transitivePeerDependencies: - - supports-color - dev: false + - '@vue/composition-api' + - vue + dev: true - /@vue/babel-plugin-resolve-type@1.2.1(@babel/core@7.24.0): - resolution: {integrity: sha512-IOtnI7pHunUzHS/y+EG/yPABIAp0VN8QhQ0UCS09jeMVxgAnI9qdOzO85RXdQGxq+aWCdv8/+k3W0aYO6j/8fQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@webassemblyjs/ast@1.12.1: + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} dependencies: - '@babel/code-frame': 7.23.5 - '@babel/core': 7.24.0 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/parser': 7.24.0 - '@vue/compiler-sfc': 3.4.21 - dev: false + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + dev: true - /@vue/compiler-core@3.4.21: - resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} + /@webassemblyjs/floating-point-hex-parser@1.11.6: + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + dev: true + + /@webassemblyjs/helper-api-error@1.11.6: + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + dev: true + + /@webassemblyjs/helper-buffer@1.12.1: + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + dev: true + + /@webassemblyjs/helper-numbers@1.11.6: + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} dependencies: - '@babel/parser': 7.24.0 - '@vue/shared': 3.4.21 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.0.2 + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + dev: true - /@vue/compiler-dom@3.4.21: - resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} + /@webassemblyjs/helper-wasm-bytecode@1.11.6: + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + dev: true + + /@webassemblyjs/helper-wasm-section@1.12.1: + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} dependencies: - '@vue/compiler-core': 3.4.21 - '@vue/shared': 3.4.21 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 + dev: true - /@vue/compiler-sfc@3.4.21: - resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} + /@webassemblyjs/ieee754@1.11.6: + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} dependencies: - '@babel/parser': 7.24.0 - '@vue/compiler-core': 3.4.21 - '@vue/compiler-dom': 3.4.21 - '@vue/compiler-ssr': 3.4.21 - '@vue/shared': 3.4.21 - estree-walker: 2.0.2 - magic-string: 0.30.7 - postcss: 8.4.35 - source-map-js: 1.0.2 + '@xtuc/ieee754': 1.2.0 + dev: true - /@vue/compiler-ssr@3.4.21: - resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} + /@webassemblyjs/leb128@1.11.6: + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} dependencies: - '@vue/compiler-dom': 3.4.21 - '@vue/shared': 3.4.21 + '@xtuc/long': 4.2.2 + dev: true - /@vue/devtools-api@6.6.1: - resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} - dev: false + /@webassemblyjs/utf8@1.11.6: + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + dev: true - /@vue/reactivity@3.4.21: - resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==} + /@webassemblyjs/wasm-edit@1.12.1: + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} dependencies: - '@vue/shared': 3.4.21 - dev: false + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 + dev: true - /@vue/runtime-core@3.4.21: - resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==} + /@webassemblyjs/wasm-gen@1.12.1: + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} dependencies: - '@vue/reactivity': 3.4.21 - '@vue/shared': 3.4.21 - dev: false + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + dev: true - /@vue/runtime-dom@3.4.21: - resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==} + /@webassemblyjs/wasm-opt@1.12.1: + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} dependencies: - '@vue/runtime-core': 3.4.21 - '@vue/shared': 3.4.21 - csstype: 3.1.3 - dev: false + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + dev: true - /@vue/server-renderer@3.4.21(vue@3.4.21): - resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==} - peerDependencies: - vue: 3.4.21 + /@webassemblyjs/wasm-parser@1.12.1: + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} dependencies: - '@vue/compiler-ssr': 3.4.21 - '@vue/shared': 3.4.21 - vue: 3.4.21(typescript@5.3.3) - dev: false + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + dev: true - /@vue/shared@3.4.21: - resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} + /@webassemblyjs/wast-printer@1.12.1: + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 + dev: true + + /@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + dev: true + + /@xtuc/long@4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + dev: true /JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} @@ -3268,19 +6707,43 @@ packages: /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - dev: false + dev: true /abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + dependencies: + event-target-shim: 5.0.1 + dev: true + + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: true - /acorn-import-attributes@1.9.2(acorn@8.11.3): - resolution: {integrity: sha512-O+nfJwNolEA771IYJaiLWK1UAwjNsQmZbTRqqwBYxCgVQTmpFEMvBw6LOIQV0Me339L5UMVYFyRohGnGlQDdIQ==} + /acorn-import-assertions@1.9.0(acorn@8.11.3): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} peerDependencies: acorn: ^8 dependencies: acorn: 8.11.3 - dev: false + dev: true + + /acorn-import-attributes@1.9.4(acorn@8.11.3): + resolution: {integrity: sha512-dNIX/5UEnZvVL94dV2scl4VIooK36D8AteP4xiz7cPKhDbhLhSuWkzG580g+Q7TXJklp+Z21SiaK7/HpLO84Qg==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.11.3 + dev: true /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -3288,6 +6751,12 @@ packages: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.11.3 + dev: true + + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + dev: true /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} @@ -3301,7 +6770,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: false + dev: true /agent-base@7.1.0: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} @@ -3310,7 +6779,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: false + dev: true /aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} @@ -3318,7 +6787,15 @@ packages: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - dev: false + dev: true + + /ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + dev: true /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -3327,6 +6804,7 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 + dev: true /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} @@ -3340,13 +6818,14 @@ packages: /ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} + dev: true /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} dependencies: type-fest: 0.21.3 - dev: false + dev: true /ansi-escapes@5.0.0: resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} @@ -3355,20 +6834,20 @@ packages: type-fest: 1.4.0 dev: true - /ansi-escapes@6.2.0: - resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} + /ansi-escapes@6.2.1: + resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} engines: {node: '>=14.16'} - dependencies: - type-fest: 3.13.1 dev: true /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + dev: true /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} + dev: true /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} @@ -3381,10 +6860,21 @@ packages: engines: {node: '>=8'} dependencies: color-convert: 2.0.1 + dev: true + + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + dev: true + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} @@ -3392,36 +6882,36 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: false /aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - dev: false + dev: true - /archiver-utils@4.0.1: - resolution: {integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==} - engines: {node: '>= 12.0.0'} + /archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} dependencies: - glob: 8.1.0 + glob: 10.3.10 graceful-fs: 4.2.11 + is-stream: 2.0.1 lazystream: 1.0.1 lodash: 4.17.21 normalize-path: 3.0.0 - readable-stream: 3.6.2 - dev: false + readable-stream: 4.5.2 + dev: true - /archiver@6.0.2: - resolution: {integrity: sha512-UQ/2nW7NMl1G+1UnrLypQw1VdT9XZg/ECcKPq7l+STzStrSivFIXIp34D8M5zeNGW5NoOupdYCHv6VySCPNNlw==} - engines: {node: '>= 12.0.0'} + /archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} dependencies: - archiver-utils: 4.0.1 + archiver-utils: 5.0.2 async: 3.2.5 - buffer-crc32: 0.2.13 - readable-stream: 3.6.2 + buffer-crc32: 1.0.0 + readable-stream: 4.5.2 readdir-glob: 1.1.3 tar-stream: 3.1.7 - zip-stream: 5.0.2 - dev: false + zip-stream: 6.0.1 + dev: true /are-docs-informative@0.0.2: resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} @@ -3434,16 +6924,32 @@ packages: dependencies: delegates: 1.0.0 readable-stream: 3.6.2 - dev: false + dev: true + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 - dev: true /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + dependencies: + deep-equal: 2.2.3 + dev: true + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: true /array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} @@ -3464,7 +6970,6 @@ packages: /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - dev: true /array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} @@ -3472,7 +6977,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 dev: true @@ -3483,7 +6988,7 @@ packages: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-abstract: 1.23.2 es-errors: 1.3.0 get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 @@ -3495,61 +7000,93 @@ packages: engines: {node: '>=0.10.0'} dev: true - /ast-kit@0.11.3: + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + + /ast-kit@0.11.3(rollup@4.13.0): resolution: {integrity: sha512-qdwwKEhckRk0XE22/xDdmU3v/60E8Edu4qFhgTLIhGGDs/PAJwLw9pQn8Rj99PitlbBZbYpx0k/lbir4kg0SuA==} engines: {node: '>=16.14.0'} dependencies: - '@babel/parser': 7.24.0 - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) + '@babel/parser': 7.24.1 + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) pathe: 1.1.2 transitivePeerDependencies: - rollup - dev: false + dev: true + + /ast-kit@0.12.1: + resolution: {integrity: sha512-O+33g7x6irsESUcd47KdfWUrS2F6aGp9KeVJFGj0YjIznfXpBxVGjA0w+y/1OKqX4mFOfmZ9Xpf1ixPT4n9xxw==} + engines: {node: '>=16.14.0'} + dependencies: + '@babel/parser': 7.24.1 + pathe: 1.1.2 + dev: true - /ast-kit@0.9.5: + /ast-kit@0.9.5(rollup@4.13.0): resolution: {integrity: sha512-kbL7ERlqjXubdDd+szuwdlQ1xUxEz9mCz1+m07ftNVStgwRb2RWw+U6oKo08PAvOishMxiqz1mlJyLl8yQx2Qg==} engines: {node: '>=16.14.0'} dependencies: - '@babel/parser': 7.24.0 - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) + '@babel/parser': 7.24.1 + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) pathe: 1.1.2 transitivePeerDependencies: - rollup - dev: false + dev: true - /ast-walker-scope@0.5.0: + /ast-walker-scope@0.5.0(rollup@4.13.0): resolution: {integrity: sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q==} engines: {node: '>=16.14.0'} dependencies: - '@babel/parser': 7.24.0 - ast-kit: 0.9.5 + '@babel/parser': 7.24.1 + ast-kit: 0.9.5(rollup@4.13.0) transitivePeerDependencies: - rollup - dev: false + dev: true + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true /async-sema@3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} - dev: false + dev: true + + /async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} + dev: true + + /async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + dependencies: + lodash: 4.17.21 + dev: true /async@3.2.5: resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - dev: false + dev: true + + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true - /autoprefixer@10.4.18(postcss@8.4.35): - resolution: {integrity: sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==} + /autoprefixer@10.4.19(postcss@8.4.38): + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001591 + caniuse-lite: 1.0.30001600 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true /available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} @@ -3558,9 +7095,15 @@ packages: possible-typed-array-names: 1.0.0 dev: true + /axobject-query@4.0.0: + resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} + dependencies: + dequal: 2.0.3 + dev: true + /b4a@1.6.6: resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} - dev: false + dev: true /bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -3568,48 +7111,109 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /balanced-match@2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + dev: true - /bare-events@2.2.1: - resolution: {integrity: sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==} + /bare-events@2.2.2: + resolution: {integrity: sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==} requiresBuild: true - dev: false + dev: true + optional: true + + /bare-fs@2.2.2: + resolution: {integrity: sha512-X9IqgvyB0/VA5OZJyb5ZstoN62AzD7YxVGog13kkfYWYqJYcK0kcqLZ6TrmH5qr4/8//ejVcX4x/a0UvaogXmA==} + requiresBuild: true + dependencies: + bare-events: 2.2.2 + bare-os: 2.2.1 + bare-path: 2.1.0 + streamx: 2.16.1 + dev: true + optional: true + + /bare-os@2.2.1: + resolution: {integrity: sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w==} + requiresBuild: true + dev: true + optional: true + + /bare-path@2.1.0: + resolution: {integrity: sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==} + requiresBuild: true + dependencies: + bare-os: 2.2.1 + dev: true optional: true + /base64-js@0.0.8: + resolution: {integrity: sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==} + engines: {node: '>= 0.4'} + dev: true + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + dependencies: + safe-buffer: 5.1.2 + dev: true + /better-path-resolve@1.0.0: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} dependencies: is-windows: 1.0.2 - dev: true - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - dev: false /bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} dependencies: file-uri-to-path: 1.0.0 - dev: false + dev: true /birpc@0.2.17: resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} - dev: false + dev: true + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + requiresBuild: true + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + optional: true + + /blob-to-buffer@1.2.9: + resolution: {integrity: sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==} + dev: true /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 + dev: true /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 + dev: true /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} @@ -3623,47 +7227,83 @@ packages: wcwidth: 1.0.1 dev: true + /brotli@1.3.3: + resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} + dependencies: + base64-js: 1.5.1 + dev: true + /browserslist@4.23.0: resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001591 - electron-to-chromium: 1.4.690 + caniuse-lite: 1.0.30001600 + electron-to-chromium: 1.4.717 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) - /buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - dev: false + /buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} + dev: true /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + requiresBuild: true + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + optional: true + + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} + dev: true /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: semver: 7.6.0 + dev: true /bundle-name@4.1.0: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} dependencies: run-applescript: 7.0.0 - dev: false + dev: true + + /bundle-require@4.0.2(esbuild@0.19.12): + resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + dependencies: + esbuild: 0.19.12 + load-tsconfig: 0.2.5 + dev: true - /c12@1.9.0: - resolution: {integrity: sha512-7KTCZXdIbOA2hLRQ+1KzJ15Qp9Wn58one74dkihMVp2H6EzKTa3OYBy0BSfS1CCcmxYyqeX8L02m40zjQ+dstg==} + /c12@1.10.0: + resolution: {integrity: sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==} dependencies: chokidar: 3.6.0 confbox: 0.1.3 defu: 6.1.4 dotenv: 16.4.5 - giget: 1.2.1 + giget: 1.2.3 jiti: 1.21.0 mlly: 1.6.1 ohash: 1.1.3 @@ -3671,12 +7311,11 @@ packages: perfect-debounce: 1.0.0 pkg-types: 1.0.3 rc9: 2.1.1 - dev: false /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - dev: false + dev: true /cacache@18.0.2: resolution: {integrity: sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==} @@ -3692,9 +7331,17 @@ packages: minipass-pipeline: 1.2.4 p-map: 4.0.0 ssri: 10.0.5 - tar: 6.2.0 + tar: 6.2.1 unique-filename: 3.0.0 - dev: false + dev: true + + /cache-content-type@1.0.1: + resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} + engines: {node: '>= 6.0.0'} + dependencies: + mime-types: 2.1.35 + ylru: 1.3.2 + dev: true /call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} @@ -3704,12 +7351,18 @@ packages: es-errors: 1.3.0 function-bind: 1.1.2 get-intrinsic: 1.2.4 - set-function-length: 1.2.1 + set-function-length: 1.2.2 dev: true /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + dev: true + + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true /camelcase-keys@6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} @@ -3728,24 +7381,41 @@ packages: /camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - dev: false + dev: true + + /camelize@1.0.1: + resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} + dev: true /caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001591 + caniuse-lite: 1.0.30001600 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - dev: false + dev: true - /caniuse-lite@1.0.30001591: - resolution: {integrity: sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==} + /caniuse-lite@1.0.30001600: + resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} /ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} dev: true + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + /chalk-template@1.1.0: resolution: {integrity: sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==} engines: {node: '>=14.16'} @@ -3767,10 +7437,17 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + dev: true /chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + dev: true /character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -3804,6 +7481,36 @@ packages: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 + dev: true + + /cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + dependencies: + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + dev: true + + /cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.1.0 + htmlparser2: 8.0.2 + parse5: 7.1.2 + parse5-htmlparser2-tree-adapter: 7.0.0 + dev: true + /chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -3817,12 +7524,34 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 - dev: false + + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + requiresBuild: true + dev: true + optional: true /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - dev: false + + /chrome-launcher@1.1.1: + resolution: {integrity: sha512-OAQgBmpUzrIuShApIwOpjt7WFripGKcDMW/qeYU+kcl6jBPg87mRG+N2C3Vu+VeCVPqZ/ds3GfI2TK7tpz3Yyw==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@types/node': 20.11.30 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + dev: true /ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} @@ -3832,11 +7561,17 @@ packages: /ci-info@4.0.0: resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} + dev: true /citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} dependencies: consola: 3.2.3 + + /class-variant@2.0.2: + resolution: {integrity: sha512-7d0qS87BA/1d4TCrb97ArOQt8diwkLmgHSsvssxmfFeylDt5Onh0rOaLjXQ/yeSKMcjKwvC0HbGvPXU61anetA==} + dependencies: + clsx: 2.1.0 dev: false /clean-regexp@1.0.0: @@ -3849,7 +7584,7 @@ packages: /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} - dev: false + dev: true /clear-module@4.1.2: resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==} @@ -3861,7 +7596,7 @@ packages: /clear@0.1.0: resolution: {integrity: sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw==} - dev: false + dev: true /cli-cursor@4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} @@ -3885,7 +7620,7 @@ packages: execa: 8.0.1 is-wsl: 3.1.0 is64bit: 2.0.0 - dev: false + dev: true /cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} @@ -3902,16 +7637,54 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} dev: true + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + dev: true + + /clsx@2.1.0: + resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} + engines: {node: '>=6'} + dev: false + /cluster-key-slot@1.1.2: resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} engines: {node: '>=0.10.0'} - dev: false + dev: true + + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true + + /code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + '@types/estree': 1.0.5 + acorn: 8.11.3 + estree-walker: 3.0.3 + periscopic: 3.1.0 + dev: true + + /codemirror-wrapped-line-indent@1.0.8(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.0): + resolution: {integrity: sha512-5UwuHCz4oAZuvot1DbfFxSxJacTESdNGa/KpJD7HfpVpDAJdgB1vV9OG4b4pkJqPWuOfIpFLTQEKS85kTpV+XA==} + peerDependencies: + '@codemirror/language': ^6.9.0 + '@codemirror/state': ^6.2.1 + '@codemirror/view': ^6.17.1 + dependencies: + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.0 + dev: true /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -3923,26 +7696,56 @@ packages: engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 + dev: true /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + requiresBuild: true + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: true + optional: true /color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true - dev: false + dev: true + + /color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + requiresBuild: true + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + dev: true + optional: true /colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - dev: false + dev: true /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: true + + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + dev: true + /commander@11.1.0: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} @@ -3951,21 +7754,31 @@ packages: /commander@12.0.0: resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==} engines: {node: '>=18'} - dev: true /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: false + dev: true + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + + /commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + dev: true /commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - dev: false + requiresBuild: true + dev: true /commander@8.3.0: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - dev: false + dev: true /comment-json@4.2.3: resolution: {integrity: sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==} @@ -3985,7 +7798,7 @@ packages: /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - dev: false + dev: true /compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} @@ -3994,32 +7807,34 @@ packages: dot-prop: 5.3.0 dev: true - /compress-commons@5.0.3: - resolution: {integrity: sha512-/UIcLWvwAQyVibgpQDPtfNM3SvqN7G9elAPAV7GM0L53EbNWwWiCsWtK8Fwed/APEbptPHXs5PuW+y8Bq8lFTA==} - engines: {node: '>= 12.0.0'} + /compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} dependencies: crc-32: 1.2.2 - crc32-stream: 5.0.1 + crc32-stream: 6.0.0 + is-stream: 2.0.1 normalize-path: 3.0.0 - readable-stream: 3.6.2 - dev: false + readable-stream: 4.5.2 + dev: true + + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + dev: true /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - /concat-stream@2.0.0: - resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} - engines: {'0': node >= 6.0} - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 3.6.2 - typedarray: 0.0.6 dev: true /confbox@0.1.3: resolution: {integrity: sha512-eH3ZxAihl1PhKfpr4VfEN6/vUd87fmgb6JkldHgg/YR6aEBhW63qUDgzP2Y6WM0UumdsYp5H3kibalXAdHfbgg==} - dev: false + + /config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + dev: true /configstore@6.0.0: resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} @@ -4035,11 +7850,22 @@ packages: /consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} - dev: false /console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - dev: false + dev: true + + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: true /conventional-changelog-angular@7.0.0: resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} @@ -4068,22 +7894,24 @@ packages: /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - dev: false /cookie-es@1.0.0: resolution: {integrity: sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ==} - dev: false + dev: true - /core-js-compat@3.36.0: - resolution: {integrity: sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==} + /cookies@0.9.1: + resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} + engines: {node: '>= 0.8'} dependencies: - browserslist: 4.23.0 + depd: 2.0.0 + keygrip: 1.1.0 dev: true /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true - /cosmiconfig-typescript-loader@5.0.0(@types/node@20.11.24)(cosmiconfig@8.3.6)(typescript@5.3.3): + /cosmiconfig-typescript-loader@5.0.0(@types/node@20.11.30)(cosmiconfig@9.0.0)(typescript@5.4.3): resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} peerDependencies: @@ -4091,14 +7919,14 @@ packages: cosmiconfig: '>=8.2' typescript: '>=4' dependencies: - '@types/node': 20.11.24 - cosmiconfig: 8.3.6(typescript@5.3.3) + '@types/node': 20.11.30 + cosmiconfig: 9.0.0(typescript@5.4.3) jiti: 1.21.0 - typescript: 5.3.3 + typescript: 5.4.3 dev: true - /cosmiconfig@8.3.6(typescript@5.3.3): - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + /cosmiconfig@9.0.0(typescript@5.4.3): + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' @@ -4106,35 +7934,58 @@ packages: typescript: optional: true dependencies: + env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 - path-type: 4.0.0 - typescript: 5.3.3 + typescript: 5.4.3 dev: true /crc-32@1.2.2: resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} engines: {node: '>=0.8'} hasBin: true - dev: false + dev: true - /crc32-stream@5.0.1: - resolution: {integrity: sha512-lO1dFui+CEUh/ztYIpgpKItKW9Bb4NWakCRJrnqAbFIYD+OZAwb2VfD5T5eXMw2FNcsDHkQcNl/Wh3iVXYwU6g==} - engines: {node: '>= 12.0.0'} + /crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} dependencies: crc-32: 1.2.2 - readable-stream: 3.6.2 - dev: false + readable-stream: 4.5.2 + dev: true /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: false + dev: true + + /crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + dev: true /croner@8.0.1: resolution: {integrity: sha512-Hq1+lXVgjJjcS/U+uk6+yVmtxami0r0b+xVtlGyABgdz110l/kOnHWvlSI7nVzrTl8GCdZHwZS4pbBFT7hSL/g==} engines: {node: '>=18.0'} - dev: false + dev: true + + /cronstrue@2.48.0: + resolution: {integrity: sha512-w+VAWjiBJmKYeeK+i0ur3G47LcKNgFuWwb8LVJTaXSS2ExtQ5zdiIVnuysgB3N457gTaSllme0qTpdsJWK/wIg==} + hasBin: true + dev: true + + /cross-fetch@3.1.8: + resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: true + + /cross-import@3.0.18: + resolution: {integrity: sha512-QiBnhu4Xp0Qg8f6hokronf2Gj/v+M6eipqwLUuq51eXJaKk2kWPVaHTj/mOmQjHzU3QikkNuMEmgsBWV7vchXQ==} + dependencies: + sucrase: 3.35.0 + dev: true /cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} @@ -4142,7 +7993,6 @@ packages: lru-cache: 4.1.5 shebang-command: 1.2.0 which: 1.3.1 - dev: true /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} @@ -4159,7 +8009,7 @@ packages: peerDependenciesMeta: uWebSockets.js: optional: true - dev: false + dev: true /crypto-random-string@4.0.0: resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} @@ -4168,77 +8018,77 @@ packages: type-fest: 1.4.0 dev: true - /cspell-config-lib@8.5.0: - resolution: {integrity: sha512-J89uUFPANN4R+uwRh2WP4PYe9sVYbtKVzyJ53nPehv0RlJ+6XiQyqu6dnsT9rAjqHaAwf57iPBkMJiDir103eA==} + /cspell-config-lib@8.6.1: + resolution: {integrity: sha512-I6LatgXJb8mxKFzIywO81TlUD/qWnUDrhB6yTUPdP90bwZcXMmGoCsZxhd2Rvl9fz5fWne0T839I1coShfm86g==} engines: {node: '>=18'} dependencies: - '@cspell/cspell-types': 8.5.0 + '@cspell/cspell-types': 8.6.1 comment-json: 4.2.3 - yaml: 2.4.0 + yaml: 2.4.1 dev: true - /cspell-dictionary@8.5.0: - resolution: {integrity: sha512-cr8wnSdfkNWtWsstZgTtvMNBns+pVHYMXwLWQ05VC6KyXfNW5zWNThrvzmaL9bLLXIUUOUkC2WWVa8bD20RcmQ==} + /cspell-dictionary@8.6.1: + resolution: {integrity: sha512-0SfKPi1QoWbGpZ/rWMR7Jn0+GaQT9PAMLWjVOu66PUNUXI5f4oCTHpnZE1Xts+5VX8shZC3TAMHEgtgKuQn4RQ==} engines: {node: '>=18'} dependencies: - '@cspell/cspell-pipe': 8.5.0 - '@cspell/cspell-types': 8.5.0 - cspell-trie-lib: 8.5.0 + '@cspell/cspell-pipe': 8.6.1 + '@cspell/cspell-types': 8.6.1 + cspell-trie-lib: 8.6.1 fast-equals: 5.0.1 gensequence: 7.0.0 dev: true - /cspell-gitignore@8.5.0: - resolution: {integrity: sha512-dWZp915edBaDImGmUhqFC1fqn4dmadGBefarcwFPCfowC3HX06Ac2/mfQ6SsdKzGif6Hahf44i3cupyJCCgagg==} + /cspell-gitignore@8.6.1: + resolution: {integrity: sha512-3gtt351sSDfN826aMXTqGHVLz2lz9ZHr8uemImUc24Q+676sXkJM9lXzqP8PUqwGhLyt5qSf+9pt0ieNwQy/cA==} engines: {node: '>=18'} hasBin: true dependencies: - cspell-glob: 8.5.0 + cspell-glob: 8.6.1 find-up-simple: 1.0.0 dev: true - /cspell-glob@8.5.0: - resolution: {integrity: sha512-jvEGCwToql//WAAyoaOP+GtYAMyfjTkqOMSxZ0tMbj2T4TEC/xUH2/tTI8Xug3PDOr5a3J75inSzl9tC8ZVtWQ==} + /cspell-glob@8.6.1: + resolution: {integrity: sha512-QjtngIR0XsUQLmHHDO86hps/JR5sRxSBwCvcsNCEmSdpdofLFc8cuxi3o33JWge7UAPBCQOLGfpA7/Wx31srmw==} engines: {node: '>=18'} dependencies: micromatch: 4.0.5 dev: true - /cspell-grammar@8.5.0: - resolution: {integrity: sha512-29U4KFThztK9LBPrcdLJLld3uWIEAg8M5umfwrkDoGQA0jtdBe+4895rGuth4QcPxMT1jxn7cInv199Hx2R4XQ==} + /cspell-grammar@8.6.1: + resolution: {integrity: sha512-MaG0e/F0b2FnIRULCZ61JxEiJgTP/6rsbUoR5nG9X+WmJYItYmxC1F/FPPrVeTu+jJr/8O4pdnslE20pimHaCw==} engines: {node: '>=18'} hasBin: true dependencies: - '@cspell/cspell-pipe': 8.5.0 - '@cspell/cspell-types': 8.5.0 + '@cspell/cspell-pipe': 8.6.1 + '@cspell/cspell-types': 8.6.1 dev: true - /cspell-io@8.5.0: - resolution: {integrity: sha512-XiAhF/nX2M8xUX9OqXoGixePTmy7s0+Bfg07+nGTDKhLj0Ydpg/asxWVkd//YAX9kkpU3YukDon4Q4km95WgiA==} + /cspell-io@8.6.1: + resolution: {integrity: sha512-ofxBB8QtUPvh/bOwKLYsqU1hwQCet8E98jkn/5f4jtG+/x5Zd80I0Ez+tlbjiBmrrQfOKh+i8ipfzHD8JtoreQ==} engines: {node: '>=18'} dependencies: - '@cspell/cspell-service-bus': 8.5.0 + '@cspell/cspell-service-bus': 8.6.1 dev: true - /cspell-lib@8.5.0: - resolution: {integrity: sha512-TSi2K8Xf7Ptti6EtSeG6A9kTaleMNwcayjXTBxsiCoVnW/bSTQ7cSzuO2JqT3wUK54XUu4HullTgoUv/tvqjCg==} + /cspell-lib@8.6.1: + resolution: {integrity: sha512-kGeDUypRtThFT81IdUK7yU8eUwO5MYWj8pGQ0N8WFsqbCahJrUdcocceVSpnCX48W3CXu12DkqYG9kv5Umn7Xw==} engines: {node: '>=18'} dependencies: - '@cspell/cspell-bundled-dicts': 8.5.0 - '@cspell/cspell-pipe': 8.5.0 - '@cspell/cspell-resolver': 8.5.0 - '@cspell/cspell-types': 8.5.0 - '@cspell/dynamic-import': 8.5.0 - '@cspell/strong-weak-map': 8.5.0 + '@cspell/cspell-bundled-dicts': 8.6.1 + '@cspell/cspell-pipe': 8.6.1 + '@cspell/cspell-resolver': 8.6.1 + '@cspell/cspell-types': 8.6.1 + '@cspell/dynamic-import': 8.6.1 + '@cspell/strong-weak-map': 8.6.1 clear-module: 4.1.2 comment-json: 4.2.3 configstore: 6.0.0 - cspell-config-lib: 8.5.0 - cspell-dictionary: 8.5.0 - cspell-glob: 8.5.0 - cspell-grammar: 8.5.0 - cspell-io: 8.5.0 - cspell-trie-lib: 8.5.0 + cspell-config-lib: 8.6.1 + cspell-dictionary: 8.6.1 + cspell-glob: 8.6.1 + cspell-grammar: 8.6.1 + cspell-io: 8.6.1 + cspell-trie-lib: 8.6.1 fast-equals: 5.0.1 gensequence: 7.0.0 import-fresh: 3.3.0 @@ -4247,31 +8097,31 @@ packages: vscode-uri: 3.0.8 dev: true - /cspell-trie-lib@8.5.0: - resolution: {integrity: sha512-RPKhJowuGpUc21GpREE9fdpds5JqdUmF1A/GXeFFzo1rwDiWA0Ojt60A72R90t2vygkAnD+kKtQkWX3LSoT3pQ==} + /cspell-trie-lib@8.6.1: + resolution: {integrity: sha512-iuJuAyWoqTH/TpFAR/ISJGQQoW3oiw54GyvXIucPoCJt/jgQONDuzqPW+skiLvcgcTbXCN9dutZTb2gImIkmpw==} engines: {node: '>=18'} dependencies: - '@cspell/cspell-pipe': 8.5.0 - '@cspell/cspell-types': 8.5.0 + '@cspell/cspell-pipe': 8.6.1 + '@cspell/cspell-types': 8.6.1 gensequence: 7.0.0 dev: true - /cspell@8.5.0: - resolution: {integrity: sha512-Kg10itkOZKoIcKE2KSQWVVt0Yo2pssvd66kuzo5S3x7lc25yggz8W+piHzUH99E2aNQ7CTzH7H78ReI53pt4tA==} + /cspell@8.6.1: + resolution: {integrity: sha512-/Qle15v4IQe7tViSWX0+RCZJ2HJ4HUCZV9Z4uOVasNUz+DWCrxysNR+pfCRYuLX/6lQdqCM9QCR9GZc7a2KIVA==} engines: {node: '>=18'} hasBin: true dependencies: - '@cspell/cspell-json-reporter': 8.5.0 - '@cspell/cspell-pipe': 8.5.0 - '@cspell/cspell-types': 8.5.0 - '@cspell/dynamic-import': 8.5.0 + '@cspell/cspell-json-reporter': 8.6.1 + '@cspell/cspell-pipe': 8.6.1 + '@cspell/cspell-types': 8.6.1 + '@cspell/dynamic-import': 8.6.1 chalk: 5.3.0 chalk-template: 1.1.0 commander: 12.0.0 - cspell-gitignore: 8.5.0 - cspell-glob: 8.5.0 - cspell-io: 8.5.0 - cspell-lib: 8.5.0 + cspell-gitignore: 8.6.1 + cspell-glob: 8.6.1 + cspell-io: 8.6.1 + cspell-lib: 8.6.1 fast-glob: 3.3.2 fast-json-stable-stringify: 2.1.0 file-entry-cache: 8.0.0 @@ -4281,14 +8131,63 @@ packages: vscode-uri: 3.0.8 dev: true - /css-declaration-sorter@7.1.1(postcss@8.4.35): - resolution: {integrity: sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==} + /css-background-parser@0.1.0: + resolution: {integrity: sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA==} + dev: true + + /css-blank-pseudo@6.0.1(postcss@8.4.38): + resolution: {integrity: sha512-goSnEITByxTzU4Oh5oJZrEWudxTqk7L6IXj1UW69pO6Hv0UdX+Vsrt02FFu5DweRh2bLu6WpX/+zsQCu5O1gKw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + + /css-box-shadow@1.0.0-3: + resolution: {integrity: sha512-9jaqR6e7Ohds+aWwmhe6wILJ99xYQbfmK9QQB9CcMjDbTxPZjwEmUQpU91OG05Xgm8BahT5fW+svbsQGjS/zPg==} + dev: true + + /css-color-keywords@1.0.0: + resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} + engines: {node: '>=4'} + dev: true + + /css-declaration-sorter@7.2.0(postcss@8.4.38): + resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.35 - dev: false + postcss: 8.4.38 + dev: true + + /css-functions-list@3.2.1: + resolution: {integrity: sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==} + engines: {node: '>=12 || >=16'} + dev: true + + /css-has-pseudo@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-Z2Qm5yyOvJRTy6THdUlnGIX6PW/1wOc4FHWlfkcBkfkpZ3oz6lPdG+h+J7t1HZHT4uSSVR8XatXiMpqMUADXow==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.16) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + postcss-value-parser: 4.2.0 + dev: true + + /css-prefers-color-scheme@9.0.1(postcss@8.4.38): + resolution: {integrity: sha512-iFit06ochwCKPRiWagbTa1OAWCvWWVdEnIFd8BaRrgO8YrrNh4RAWUQTFcYX5tdFZgFl1DJ3iiULchZyEbnF4g==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + dev: true /css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} @@ -4298,102 +8197,121 @@ packages: domhandler: 5.0.3 domutils: 3.1.0 nth-check: 2.1.1 - dev: false + dev: true + + /css-to-react-native@3.2.0: + resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} + dependencies: + camelize: 1.0.1 + css-color-keywords: 1.0.0 + postcss-value-parser: 4.2.0 + dev: true /css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + requiresBuild: true dependencies: mdn-data: 2.0.28 - source-map-js: 1.0.2 - dev: false + source-map-js: 1.2.0 + dev: true /css-tree@2.3.1: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} dependencies: mdn-data: 2.0.30 - source-map-js: 1.0.2 - dev: false + source-map-js: 1.2.0 + dev: true /css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - dev: false + dev: true + + /cssdb@7.11.2: + resolution: {integrity: sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==} + dev: true /cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true + dev: true - /cssnano-preset-default@6.0.5(postcss@8.4.35): - resolution: {integrity: sha512-M+qRDEr5QZrfNl0B2ySdbTLGyNb8kBcSjuwR7WBamYBOEREH9t2efnB/nblekqhdGLZdkf4oZNetykG2JWRdZQ==} + /cssfilter@0.0.10: + resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==} + dev: true + + /cssnano-preset-default@6.1.2(postcss@8.4.38): + resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - css-declaration-sorter: 7.1.1(postcss@8.4.35) - cssnano-utils: 4.0.1(postcss@8.4.35) - postcss: 8.4.35 - postcss-calc: 9.0.1(postcss@8.4.35) - postcss-colormin: 6.0.3(postcss@8.4.35) - postcss-convert-values: 6.0.4(postcss@8.4.35) - postcss-discard-comments: 6.0.1(postcss@8.4.35) - postcss-discard-duplicates: 6.0.2(postcss@8.4.35) - postcss-discard-empty: 6.0.2(postcss@8.4.35) - postcss-discard-overridden: 6.0.1(postcss@8.4.35) - postcss-merge-longhand: 6.0.3(postcss@8.4.35) - postcss-merge-rules: 6.0.4(postcss@8.4.35) - postcss-minify-font-values: 6.0.2(postcss@8.4.35) - postcss-minify-gradients: 6.0.2(postcss@8.4.35) - postcss-minify-params: 6.0.3(postcss@8.4.35) - postcss-minify-selectors: 6.0.2(postcss@8.4.35) - postcss-normalize-charset: 6.0.1(postcss@8.4.35) - postcss-normalize-display-values: 6.0.1(postcss@8.4.35) - postcss-normalize-positions: 6.0.1(postcss@8.4.35) - postcss-normalize-repeat-style: 6.0.1(postcss@8.4.35) - postcss-normalize-string: 6.0.1(postcss@8.4.35) - postcss-normalize-timing-functions: 6.0.1(postcss@8.4.35) - postcss-normalize-unicode: 6.0.3(postcss@8.4.35) - postcss-normalize-url: 6.0.1(postcss@8.4.35) - postcss-normalize-whitespace: 6.0.1(postcss@8.4.35) - postcss-ordered-values: 6.0.1(postcss@8.4.35) - postcss-reduce-initial: 6.0.3(postcss@8.4.35) - postcss-reduce-transforms: 6.0.1(postcss@8.4.35) - postcss-svgo: 6.0.2(postcss@8.4.35) - postcss-unique-selectors: 6.0.2(postcss@8.4.35) - dev: false - - /cssnano-utils@4.0.1(postcss@8.4.35): - resolution: {integrity: sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==} + browserslist: 4.23.0 + css-declaration-sorter: 7.2.0(postcss@8.4.38) + cssnano-utils: 4.0.2(postcss@8.4.38) + postcss: 8.4.38 + postcss-calc: 9.0.1(postcss@8.4.38) + postcss-colormin: 6.1.0(postcss@8.4.38) + postcss-convert-values: 6.1.0(postcss@8.4.38) + postcss-discard-comments: 6.0.2(postcss@8.4.38) + postcss-discard-duplicates: 6.0.3(postcss@8.4.38) + postcss-discard-empty: 6.0.3(postcss@8.4.38) + postcss-discard-overridden: 6.0.2(postcss@8.4.38) + postcss-merge-longhand: 6.0.5(postcss@8.4.38) + postcss-merge-rules: 6.1.1(postcss@8.4.38) + postcss-minify-font-values: 6.1.0(postcss@8.4.38) + postcss-minify-gradients: 6.0.3(postcss@8.4.38) + postcss-minify-params: 6.1.0(postcss@8.4.38) + postcss-minify-selectors: 6.0.4(postcss@8.4.38) + postcss-normalize-charset: 6.0.2(postcss@8.4.38) + postcss-normalize-display-values: 6.0.2(postcss@8.4.38) + postcss-normalize-positions: 6.0.2(postcss@8.4.38) + postcss-normalize-repeat-style: 6.0.2(postcss@8.4.38) + postcss-normalize-string: 6.0.2(postcss@8.4.38) + postcss-normalize-timing-functions: 6.0.2(postcss@8.4.38) + postcss-normalize-unicode: 6.1.0(postcss@8.4.38) + postcss-normalize-url: 6.0.2(postcss@8.4.38) + postcss-normalize-whitespace: 6.0.2(postcss@8.4.38) + postcss-ordered-values: 6.0.2(postcss@8.4.38) + postcss-reduce-initial: 6.1.0(postcss@8.4.38) + postcss-reduce-transforms: 6.0.2(postcss@8.4.38) + postcss-svgo: 6.0.3(postcss@8.4.38) + postcss-unique-selectors: 6.0.4(postcss@8.4.38) + dev: true + + /cssnano-utils@4.0.2(postcss@8.4.38): + resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 - dev: false + postcss: 8.4.38 + dev: true - /cssnano@6.0.5(postcss@8.4.35): - resolution: {integrity: sha512-tpTp/ukgrElwu3ESFY4IvWnGn8eTt8cJhC2aAbtA3lvUlxp6t6UPv8YCLjNnEGiFreT1O0LiOM1U3QyTBVFl2A==} + /cssnano@6.1.2(postcss@8.4.38): + resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - cssnano-preset-default: 6.0.5(postcss@8.4.35) + cssnano-preset-default: 6.1.2(postcss@8.4.38) lilconfig: 3.1.1 - postcss: 8.4.35 - dev: false + postcss: 8.4.38 + dev: true /csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + requiresBuild: true dependencies: css-tree: 2.2.1 - dev: false + dev: true /csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - dev: false /csv-generate@3.4.3: resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} @@ -4428,12 +8346,39 @@ packages: engines: {node: '>=12'} dev: true - /dataloader@1.4.0: - resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} dev: true - /db0@0.1.3: - resolution: {integrity: sha512-g8mXmj+t5MRXiA1ARjhfLd6Acy98VLVd8VL5LOBZ49P4A7qzoGgt6pC/gDWuP4zS3BiqSnKXTjTQXviMsD/sxA==} + /db0@0.1.4: + resolution: {integrity: sha512-Ft6eCwONYxlwLjBXSJxw0t0RYtA5gW9mq8JfBXn9TtC0nDPlqePAhpv9v4g9aONBi6JI1OXHTKKkUYGd+BOrCA==} peerDependencies: '@libsql/client': ^0.5.2 better-sqlite3: ^9.4.3 @@ -4445,7 +8390,11 @@ packages: optional: true drizzle-orm: optional: true - dev: false + dev: true + + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: true /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} @@ -4456,7 +8405,7 @@ packages: optional: true dependencies: ms: 2.0.0 - dev: false + dev: true /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} @@ -4499,18 +8448,70 @@ packages: character-entities: 2.0.2 dev: true + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + requiresBuild: true + dependencies: + mimic-response: 3.1.0 + dev: true + optional: true + + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + + /deep-equal@1.0.1: + resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} + dev: true + + /deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.4 + is-arguments: 1.1.1 + is-array-buffer: 3.0.4 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + isarray: 2.0.5 + object-is: 1.1.6 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + side-channel: 1.0.6 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + dev: true + + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + requiresBuild: true + dev: true + optional: true + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - dev: false + dev: true /default-browser-id@5.0.0: resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} engines: {node: '>=18'} - dev: false + dev: true /default-browser@5.2.1: resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} @@ -4518,7 +8519,7 @@ packages: dependencies: bundle-name: 4.1.0 default-browser-id: 5.0.0 - dev: false + dev: true /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} @@ -4538,12 +8539,12 @@ packages: /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} - dev: false + dev: true /define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} - dev: false + dev: true /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} @@ -4556,21 +8557,25 @@ packages: /defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - dev: false /delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - dev: false + dev: true /denque@2.1.0: resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} engines: {node: '>=0.10'} - dev: false + dev: true + + /depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + dev: true /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} - dev: false + dev: true /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} @@ -4579,12 +8584,15 @@ packages: /destr@2.0.3: resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} - dev: false /destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dev: false + dev: true + + /detab@3.0.2: + resolution: {integrity: sha512-7Bp16Bk8sk0Y6gdXiCtnpGbghn8atnTJdd/82aWvS5ESnlcNvgUc10U2NYS0PAiDSGjWiI8qs/Cv1b2uSGdQ8w==} + dev: true /detect-indent@6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} @@ -4595,16 +8603,16 @@ packages: resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} engines: {node: '>=0.10'} hasBin: true - dev: false + dev: true - /detect-libc@2.0.2: - resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + /detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} - dev: false + dev: true /devalue@4.3.2: resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} - dev: false + dev: true /devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -4612,6 +8620,19 @@ packages: dequal: 2.0.3 dev: true + /dfa@1.2.0: + resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==} + dev: true + + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /diff@5.1.0: resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} engines: {node: '>=0.3.1'} @@ -4620,12 +8641,23 @@ packages: /diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} + dev: true /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} dependencies: path-type: 4.0.0 + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 dev: true /doctrine@3.0.0: @@ -4633,6 +8665,11 @@ packages: engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 + dev: true + + /dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dev: true /dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -4640,18 +8677,18 @@ packages: domelementtype: 2.3.0 domhandler: 5.0.3 entities: 4.5.0 - dev: false + dev: true /domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: false + dev: true /domhandler@5.0.3: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 - dev: false + dev: true /domutils@3.1.0: resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} @@ -4659,7 +8696,7 @@ packages: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 - dev: false + dev: true /dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} @@ -4680,31 +8717,62 @@ packages: engines: {node: '>=16'} dependencies: type-fest: 3.13.1 - dev: false + dev: true /dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} - dev: false - - /dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} - dev: true /duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: false + dev: true /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /editorconfig@1.0.4: + resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==} + engines: {node: '>=14'} + hasBin: true + dependencies: + '@one-ini/wasm': 0.1.1 + commander: 10.0.1 + minimatch: 9.0.1 + semver: 7.6.0 + dev: true /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - dev: false + dev: true - /electron-to-chromium@1.4.690: - resolution: {integrity: sha512-+2OAGjUx68xElQhydpcbqH50hE8Vs2K6TkAeLhICYfndb67CVH0UsZaijmRUE3rHlIxU1u0jxwhgVe6fK3YANA==} + /electron-to-chromium@1.4.717: + resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==} + + /element-plus@2.6.2(vue@3.4.21): + resolution: {integrity: sha512-WFMv1v83l437Xu+GeeM+ytxd9VUQpR4418BowvTVIPYItsoj6yK0ITIuSv19iCesF405FbAOaCIHXhJch0ilFA==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@ctrl/tinycolor': 3.6.1 + '@element-plus/icons-vue': 2.3.1(vue@3.4.21) + '@floating-ui/dom': 1.6.3 + '@popperjs/core': /@sxzz/popperjs-es@2.11.7 + '@types/lodash': 4.17.0 + '@types/lodash-es': 4.17.12 + '@vueuse/core': 9.13.0(vue@3.4.21) + async-validator: 4.2.5 + dayjs: 1.11.10 + escape-html: 1.0.3 + lodash: 4.17.21 + lodash-es: 4.17.21 + lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21) + memoize-one: 6.0.0 + normalize-wheel-es: 1.2.0 + vue: 3.4.21(typescript@5.4.3) + transitivePeerDependencies: + - '@vue/composition-api' + dev: true /emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -4712,30 +8780,67 @@ packages: /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + dev: true + + /emoticon@4.0.1: + resolution: {integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==} + dev: true /encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} - dev: false + dev: true /encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} requiresBuild: true dependencies: iconv-lite: 0.6.3 - dev: false + dev: true + optional: true + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + requiresBuild: true + dependencies: + once: 1.4.0 + dev: true optional: true - /enhanced-resolve@5.15.1: - resolution: {integrity: sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==} + /engine.io-client@6.5.3: + resolution: {integrity: sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==} + dependencies: + '@socket.io/component-emitter': 3.1.0 + debug: 4.3.4 + engine.io-parser: 5.2.2 + ws: 8.11.0 + xmlhttprequest-ssl: 2.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /engine.io-parser@5.2.2: + resolution: {integrity: sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==} + engines: {node: '>=10.0.0'} + dev: true + + /enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - dev: false + dev: true /enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} @@ -4752,11 +8857,11 @@ packages: /env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - dev: false + dev: true /err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - dev: false + dev: true /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -4766,18 +8871,22 @@ packages: /error-stack-parser-es@0.1.1: resolution: {integrity: sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==} - dev: false + dev: true - /es-abstract@1.22.5: - resolution: {integrity: sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==} + /es-abstract@1.23.2: + resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 available-typed-arrays: 1.0.7 call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 es-define-property: 1.0.0 es-errors: 1.3.0 + es-object-atoms: 1.0.0 es-set-tostringtag: 2.0.3 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 @@ -4788,10 +8897,11 @@ packages: has-property-descriptors: 1.0.2 has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.1 + hasown: 2.0.2 internal-slot: 1.0.7 is-array-buffer: 3.0.4 is-callable: 1.2.7 + is-data-view: 1.0.1 is-negative-zero: 2.0.3 is-regex: 1.1.4 is-shared-array-buffer: 1.0.3 @@ -4802,17 +8912,17 @@ packages: object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.0 + safe-array-concat: 1.1.2 safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 typed-array-buffer: 1.0.2 typed-array-byte-length: 1.0.1 typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.5 + typed-array-length: 1.0.6 unbox-primitive: 1.0.2 - which-typed-array: 1.1.14 + which-typed-array: 1.1.15 dev: true /es-define-property@1.0.0: @@ -4827,19 +8937,44 @@ packages: engines: {node: '>= 0.4'} dev: true + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + + /es-module-lexer@1.5.0: + resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + dev: true + + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + dev: true + /es-set-tostringtag@2.0.3: resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 - hasown: 2.0.1 + hasown: 2.0.2 dev: true /es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - hasown: 2.0.1 + hasown: 2.0.2 dev: true /es-to-primitive@1.2.1: @@ -4880,38 +9015,38 @@ packages: '@esbuild/win32-arm64': 0.19.12 '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 - dev: false + dev: true - /esbuild@0.20.1: - resolution: {integrity: sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==} + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/aix-ppc64': 0.20.1 - '@esbuild/android-arm': 0.20.1 - '@esbuild/android-arm64': 0.20.1 - '@esbuild/android-x64': 0.20.1 - '@esbuild/darwin-arm64': 0.20.1 - '@esbuild/darwin-x64': 0.20.1 - '@esbuild/freebsd-arm64': 0.20.1 - '@esbuild/freebsd-x64': 0.20.1 - '@esbuild/linux-arm': 0.20.1 - '@esbuild/linux-arm64': 0.20.1 - '@esbuild/linux-ia32': 0.20.1 - '@esbuild/linux-loong64': 0.20.1 - '@esbuild/linux-mips64el': 0.20.1 - '@esbuild/linux-ppc64': 0.20.1 - '@esbuild/linux-riscv64': 0.20.1 - '@esbuild/linux-s390x': 0.20.1 - '@esbuild/linux-x64': 0.20.1 - '@esbuild/netbsd-x64': 0.20.1 - '@esbuild/openbsd-x64': 0.20.1 - '@esbuild/sunos-x64': 0.20.1 - '@esbuild/win32-arm64': 0.20.1 - '@esbuild/win32-ia32': 0.20.1 - '@esbuild/win32-x64': 0.20.1 - dev: false + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + dev: true /escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} @@ -4919,7 +9054,7 @@ packages: /escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - dev: false + dev: true /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} @@ -4928,23 +9063,26 @@ packages: /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + dev: true /escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - dev: false - /eslint-compat-utils@0.1.2(eslint@8.57.0): - resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true dependencies: - eslint: 8.57.0 + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 dev: true - /eslint-compat-utils@0.4.1(eslint@8.57.0): - resolution: {integrity: sha512-5N7ZaJG5pZxUeNNJfUchurLVrunD1xJvyg5kYOIVF8kg1f3ajTikmAu/5fZ9w100omNPOoMjngRszh/Q/uFGMg==} + /eslint-compat-utils@0.5.0(eslint@8.57.0): + resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' @@ -4953,13 +9091,6 @@ packages: semver: 7.6.0 dev: true - /eslint-config-flat-gitignore@0.1.3: - resolution: {integrity: sha512-oQD+dEZv3RThN60tFqGFt+NJcO1DmssUcP+T/nlX+ZzEoEvVUYH0GU9X/VlmDXsbMsS9mONI1HrlxLgtKojw7w==} - dependencies: - find-up: 7.0.0 - parse-gitignore: 2.0.0 - dev: true - /eslint-config-prettier@9.1.0(eslint@8.57.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true @@ -4979,40 +9110,7 @@ packages: - supports-color dev: true - /eslint-mdx@3.1.5(eslint@8.57.0): - resolution: {integrity: sha512-ynztX0k7CQ3iDL7fDEIeg3g0O/d6QPv7IBI9fdYLhXp5fAp0fi8X22xF/D3+Pk0f90R27uwqa1clHpay6t0l8Q==} - engines: {node: '>=18.0.0'} - peerDependencies: - eslint: '>=8.0.0' - dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - eslint: 8.57.0 - espree: 9.6.1 - estree-util-visit: 2.0.0 - remark-mdx: 3.0.1 - remark-parse: 11.0.0 - remark-stringify: 11.0.0 - synckit: 0.9.0 - tslib: 2.6.2 - unified: 11.0.4 - unified-engine: 11.2.0 - unist-util-visit: 5.0.0 - uvu: 0.5.6 - vfile: 6.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-merge-processors@0.1.0(eslint@8.57.0): - resolution: {integrity: sha512-IvRXXtEajLeyssvW4wJcZ2etxkR9mUf4zpNwgI+m/Uac9RfXHskuJefkHUcawVzePnd6xp24enp5jfgdHzjRdQ==} - peerDependencies: - eslint: '*' - dependencies: - eslint: 8.57.0 - dev: true - - /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.1.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} peerDependencies: @@ -5033,7 +9131,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.3) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -5041,16 +9139,18 @@ packages: - supports-color dev: true - /eslint-plugin-antfu@2.1.2(eslint@8.57.0): - resolution: {integrity: sha512-s7ZTOM3uq0iqpp6gF0UEotnvup7f2PHBUftCytLZX0+6C9j9KadKZQh6bVVngAyFgsmeD9+gcBopOYLClb2oDg==} - peerDependencies: - eslint: '*' + /eslint-plugin-antfu@0.43.1(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-Nak+Qpy5qEK10dCXtVaabPTUmLBPLhsVKAFXAtxYGYRlY/SuuZUBhW2YIsLsixNROiICGuov8sN+eNOCC7Wb5g==} dependencies: - eslint: 8.57.0 + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.3) + transitivePeerDependencies: + - eslint + - supports-color + - typescript dev: true - /eslint-plugin-es-x@7.5.0(eslint@8.57.0): - resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} + /eslint-plugin-es-x@7.6.0(eslint@8.57.0): + resolution: {integrity: sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' @@ -5058,7 +9158,7 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 eslint: 8.57.0 - eslint-compat-utils: 0.1.2(eslint@8.57.0) + eslint-compat-utils: 0.5.0(eslint@8.57.0) dev: true /eslint-plugin-eslint-comments@3.2.0(eslint@8.57.0): @@ -5072,20 +9172,27 @@ packages: ignore: 5.3.1 dev: true - /eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0): - resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} + /eslint-plugin-html@7.1.0: + resolution: {integrity: sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==} + dependencies: + htmlparser2: 8.0.2 + dev: true + + /eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0): + resolution: {integrity: sha512-a4oVt0j3ixNhGhvV4XF6NS7OWRFK2rrJ0Q5C4S2dSRb8FxZi31J0uUd5WJLL58wnVJ/OiQ1BxiXnFA4dWQO1Cg==} engines: {node: '>=12'} peerDependencies: eslint: ^7.2.0 || ^8 dependencies: - debug: 4.3.4 - doctrine: 3.0.0 + debug: 3.2.7 + doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.1.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) - get-tsconfig: 4.7.2 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + get-tsconfig: 4.7.3 is-glob: 4.0.3 minimatch: 3.1.2 + resolve: 1.22.8 semver: 7.6.0 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -5094,13 +9201,34 @@ packages: - supports-color dev: true - /eslint-plugin-jsdoc@48.2.0(eslint@8.57.0): - resolution: {integrity: sha512-O2B1XLBJnUCRkggFzUQ+PBYJDit8iAgXdlu8ucolqGrbmOWPvttZQZX8d1sC0MbqDMSLs8SHSQxaNPRY1RQREg==} - engines: {node: '>=18'} + /eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 || ^7.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.3) + eslint: 8.57.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-jsdoc@46.10.1(eslint@8.57.0): + resolution: {integrity: sha512-x8wxIpv00Y50NyweDUpa+58ffgSAI5sqe+zcZh33xphD0AVh+1kqr1ombaTRb7Fhpove1zfUuujlX9DWWBP5ag==} + engines: {node: '>=16'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 dependencies: - '@es-joy/jsdoccomment': 0.42.0 + '@es-joy/jsdoccomment': 0.41.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.3.4 @@ -5114,15 +9242,15 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc@2.13.0(eslint@8.57.0): - resolution: {integrity: sha512-2wWdJfpO/UbZzPDABuUVvlUQjfMJa2p2iQfYt/oWxOMpXCcjuiMUSaA02gtY/Dbu82vpaSqc+O7Xq6ECHwtIxA==} + /eslint-plugin-jsonc@2.14.1(eslint@8.57.0): + resolution: {integrity: sha512-Tei6G4N7pZulP5MHi0EIdtseiCqUPkDMd0O8Zrw4muMIlsjJ5/B9X+U3Pfo6B7l0mTL9LN9FwuWT70dRJ6z7tg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) eslint: 8.57.0 - eslint-compat-utils: 0.4.1(eslint@8.57.0) + eslint-compat-utils: 0.5.0(eslint@8.57.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 @@ -5142,25 +9270,6 @@ packages: - supports-color dev: true - /eslint-plugin-mdx@3.1.5(eslint@8.57.0): - resolution: {integrity: sha512-lUE7tP7IrIRHU3gTtASDe5u4YM2SvQveYVJfuo82yn3MLh/B/v05FNySURCK4aIxIYF1QYo3IRemQG/lyQzpAg==} - engines: {node: '>=18.0.0'} - peerDependencies: - eslint: '>=8.0.0' - dependencies: - eslint: 8.57.0 - eslint-mdx: 3.1.5(eslint@8.57.0) - eslint-plugin-markdown: 3.0.1(eslint@8.57.0) - remark-mdx: 3.0.1 - remark-parse: 11.0.0 - remark-stringify: 11.0.0 - tslib: 2.6.2 - unified: 11.0.4 - vfile: 6.0.1 - transitivePeerDependencies: - - supports-color - dev: true - /eslint-plugin-n@16.6.2(eslint@8.57.0): resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} engines: {node: '>=16.0.0'} @@ -5170,8 +9279,8 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) builtins: 5.0.1 eslint: 8.57.0 - eslint-plugin-es-x: 7.5.0(eslint@8.57.0) - get-tsconfig: 4.7.2 + eslint-plugin-es-x: 7.6.0(eslint@8.57.0) + get-tsconfig: 4.7.3 globals: 13.24.0 ignore: 5.3.1 is-builtin-module: 3.2.1 @@ -5186,34 +9295,6 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-perfectionist@2.5.0(eslint@8.57.0)(typescript@5.3.3)(vue-eslint-parser@9.4.2): - resolution: {integrity: sha512-F6XXcq4mKKUe/SREoMGQqzgw6cgCgf3pFzkFfQVIGtqD1yXVpQjnhTepzhBeZfxZwgMzR9HO4yH4CUhIQ2WBcQ==} - peerDependencies: - astro-eslint-parser: ^0.16.0 - eslint: '>=8.0.0' - svelte: '>=3.0.0' - svelte-eslint-parser: ^0.33.0 - vue-eslint-parser: '>=9.0.0' - peerDependenciesMeta: - astro-eslint-parser: - optional: true - svelte: - optional: true - svelte-eslint-parser: - optional: true - vue-eslint-parser: - optional: true - dependencies: - '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3) - eslint: 8.57.0 - minimatch: 9.0.3 - natural-compare-lite: 1.4.0 - vue-eslint-parser: 9.4.2(eslint@8.57.0) - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -5235,49 +9316,40 @@ packages: synckit: 0.8.8 dev: true - /eslint-plugin-toml@0.9.2(eslint@8.57.0): - resolution: {integrity: sha512-ri0xf63PYf3pIq/WY9BIwrqxZmGTIwSkAO0bHddI0ajUwN4KGz6W8vOvdXFHOpRdRfzxlmXze/vfsY/aTEXESg==} + /eslint-plugin-promise@6.1.1(eslint@8.57.0): + resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: '>=6.0.0' + eslint: ^7.0.0 || ^8.0.0 dependencies: - debug: 4.3.4 eslint: 8.57.0 - eslint-compat-utils: 0.4.1(eslint@8.57.0) - lodash: 4.17.21 - toml-eslint-parser: 0.9.3 - transitivePeerDependencies: - - supports-color dev: true - /eslint-plugin-unicorn@51.0.1(eslint@8.57.0): - resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} + /eslint-plugin-unicorn@48.0.1(eslint@8.57.0): + resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} engines: {node: '>=16'} peerDependencies: - eslint: '>=8.56.0' + eslint: '>=8.44.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint/eslintrc': 2.1.4 - ci-info: 4.0.0 + ci-info: 3.9.0 clean-regexp: 1.0.0 - core-js-compat: 3.36.0 eslint: 8.57.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 jsesc: 3.0.2 + lodash: 4.17.21 pluralize: 8.0.0 read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 semver: 7.6.0 strip-indent: 3.0.0 - transitivePeerDependencies: - - supports-color dev: true - /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.1.0)(eslint@8.57.0): + /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.57.0): resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5287,13 +9359,13 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.3) eslint: 8.57.0 eslint-rule-composer: 0.3.0 dev: true - /eslint-plugin-vitest@0.3.22(@typescript-eslint/eslint-plugin@7.1.0)(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-atkFGQ7aVgcuSeSMDqnyevIyUpfBPMnosksgEPrKE7Y8xQlqG/5z2IQ6UDau05zXaaFv7Iz8uzqvIuKshjZ0Zw==} + /eslint-plugin-vitest@0.4.0(eslint@8.57.0)(typescript@5.4.3)(vitest@1.4.0): + resolution: {integrity: sha512-3oWgZIwdWVBQ5plvkmOBjreIGLQRdYb7x54OP8uIRHeZyRVJIdOn9o/qWVb9292fDMC8jn7H7d9TSFBZqhrykQ==} engines: {node: ^18.0.0 || >= 20.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': '*' @@ -5305,25 +9377,26 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) eslint: 8.57.0 + vitest: 1.4.0(@types/node@20.11.30)(happy-dom@14.3.8) transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-vue@9.22.0(eslint@8.57.0): - resolution: {integrity: sha512-7wCXv5zuVnBtZE/74z4yZ0CM8AjH6bk4MQGm7hZjUC2DBppKU5ioeOk5LGSg/s9a1ZJnIsdPLJpXnu1Rc+cVHg==} + /eslint-plugin-vue@9.24.0(eslint@8.57.0): + resolution: {integrity: sha512-9SkJMvF8NGMT9aQCwFc5rj8Wo1XWSMSHk36i7ZwdI614BU7sIOR28ZjuFPKp8YGymZN12BSEbiSwa7qikp+PBw==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) eslint: 8.57.0 + globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.0.16 semver: 7.6.0 vue-eslint-parser: 9.4.2(eslint@8.57.0) xml-name-validator: 4.0.0 @@ -5331,15 +9404,15 @@ packages: - supports-color dev: true - /eslint-plugin-yml@1.12.2(eslint@8.57.0): - resolution: {integrity: sha512-hvS9p08FhPT7i/ynwl7/Wt7ke7Rf4P2D6fT8lZlL43peZDTsHtH2A0SIFQ7Kt7+mJ6if6P+FX3iJhMkdnxQwpg==} + /eslint-plugin-yml@1.13.2(eslint@8.57.0): + resolution: {integrity: sha512-1i71VhmsG5UxE41rIJmJjhlTTxYy7upAY5Hqj8AdBc7rfJzRIZr3a2spuOS8+N7ZDCWsHAWY3J6lzQNQHDv6Uw==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4 eslint: 8.57.0 - eslint-compat-utils: 0.4.1(eslint@8.57.0) + eslint-compat-utils: 0.5.0(eslint@8.57.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -5347,31 +9420,31 @@ packages: - supports-color dev: true - /eslint-processor-vue-blocks@0.1.1(@vue/compiler-sfc@3.4.21)(eslint@8.57.0): - resolution: {integrity: sha512-9+dU5lU881log570oBwpelaJmOfOzSniben7IWEDRYQPPWwlvaV7NhOtsTuUWDqpYT+dtKKWPsgz4OkOi+aZnA==} - peerDependencies: - '@vue/compiler-sfc': ^3.3.0 - eslint: ^8.50.0 - dependencies: - '@vue/compiler-sfc': 3.4.21 - eslint: 8.57.0 - dev: true - /eslint-rule-composer@0.3.0: resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} engines: {node: '>=4.0.0'} dev: true + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + /eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 + dev: true /eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true /eslint@8.57.0: resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} @@ -5418,6 +9491,7 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color + dev: true /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} @@ -5426,38 +9500,35 @@ packages: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 + dev: true /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - dev: true /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 + dev: true /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 + dev: true - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} - - /estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} dev: true - /estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/unist': 3.0.2 + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} dev: true /estree-walker@2.0.2: @@ -5467,21 +9538,58 @@ packages: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: '@types/estree': 1.0.5 - dev: false /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + dev: true /etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - dev: false + dev: true + + /event-stream@3.3.4: + resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} + dependencies: + duplexer: 0.1.2 + from: 0.1.7 + map-stream: 0.1.0 + pause-stream: 0.0.11 + split: 0.3.3 + stream-combiner: 0.0.4 + through: 2.3.8 + dev: true + + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + dev: true /eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} dev: true + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + /execa@7.2.0: resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} @@ -5495,7 +9603,7 @@ packages: onetime: 6.0.0 signal-exit: 3.0.7 strip-final-newline: 3.0.0 - dev: false + dev: true /execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} @@ -5511,9 +9619,22 @@ packages: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + /expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + requiresBuild: true + dev: true + optional: true + + /explore-config@3.0.18: + resolution: {integrity: sha512-kory/vicwDpzIJgghizkjZObNbOo1zGAWDOqyJEjL2yzqGccl13ZbkZwyVwDTPL7yeKS8PXdajUPae0UJKj1Pg==} + dependencies: + cross-import: 3.0.18 + dev: true + /exponential-backoff@3.1.1: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - dev: false + dev: true /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -5521,7 +9642,6 @@ packages: /extendable-error@0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - dev: true /external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} @@ -5535,14 +9655,20 @@ packages: /externality@1.0.2: resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} dependencies: - enhanced-resolve: 5.15.1 + enhanced-resolve: 5.16.0 mlly: 1.6.1 pathe: 1.1.2 - ufo: 1.4.0 - dev: false + ufo: 1.5.3 + dev: true + + /fake-indexeddb@5.0.2: + resolution: {integrity: sha512-cB507r5T3D55DfclY01GLkninZLfU7HXV/mhVRTnTRm5k2u+fY7Fof2dBkr80p5t7G7dlA/G5dI87QiMdPpMCQ==} + engines: {node: '>=18'} + dev: true /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true /fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} @@ -5555,7 +9681,7 @@ packages: /fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - dev: false + dev: true /fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} @@ -5569,20 +9695,32 @@ packages: /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true /fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 + /fflate@0.7.4: + resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} + dev: true + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.2.0 + dev: true /file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} @@ -5593,7 +9731,7 @@ packages: /file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - dev: false + dev: true /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} @@ -5612,7 +9750,6 @@ packages: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - dev: true /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} @@ -5620,6 +9757,7 @@ packages: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 + dev: true /find-up@7.0.0: resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} @@ -5644,6 +9782,7 @@ packages: flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 + dev: true /flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} @@ -5653,13 +9792,81 @@ packages: keyv: 4.5.4 dev: true - /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - dev: false - - /flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + /flat@6.0.1: + resolution: {integrity: sha512-/3FfIa8mbrg3xE7+wAhWeV+bd7L2Mof+xtZb5dRDKZ+wDvYJK4WDYeIOuOhre5Yv5aQObZrlbRmk3RTSiuQBtw==} + engines: {node: '>=18'} + hasBin: true + dev: true + + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + dev: true + + /floating-vue@5.2.0(@nuxt/kit@3.11.1)(vue@3.4.21): + resolution: {integrity: sha512-CeApC0dUU8Mye6mjH3ZB7FXoUjIRduNuz8QW4nj3ZUweaFqv7PwxfN9klTuRQe9MeZXxbIHJHBTNl9t/bv+SUA==} + peerDependencies: + '@nuxt/kit': ^3.2.0 + vue: ^3.2.0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + dependencies: + '@floating-ui/dom': 1.1.1 + '@nuxt/kit': 3.11.1(rollup@4.13.0) + vue: 3.4.21(typescript@5.4.3) + vue-resize: 2.0.0-alpha.1(vue@3.4.21) + dev: true + + /floating-vue@5.2.2(@nuxt/kit@3.11.1)(vue@3.4.21): + resolution: {integrity: sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==} + peerDependencies: + '@nuxt/kit': ^3.2.0 + vue: ^3.2.0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + dependencies: + '@floating-ui/dom': 1.1.1 + '@nuxt/kit': 3.11.1(rollup@4.13.0) + vue: 3.4.21(typescript@5.4.3) + vue-resize: 2.0.0-alpha.1(vue@3.4.21) + + /focus-trap@7.5.4: + resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} + dependencies: + tabbable: 6.2.0 + + /fontaine@0.4.1: + resolution: {integrity: sha512-Ps7KS0xFkbeZWa+ynuNQncHYz6j7gs6+SXcWWeA7+HCeidXTnIQNryCuUxQdjxBwmRBY0Or998brldt4WFwfcQ==} + dependencies: + '@capsizecss/metrics': 1.3.0 + '@capsizecss/unpack': 1.0.0 + magic-regexp: 0.7.0 + magic-string: 0.30.8 + pathe: 1.1.2 + ufo: 1.5.3 + unplugin: 1.10.0 + transitivePeerDependencies: + - encoding + dev: true + + /fontkit@2.0.2: + resolution: {integrity: sha512-jc4k5Yr8iov8QfS6u8w2CnHWVmbOGtdBtOXMze5Y+QD966Rx6PEVWXSEGwXlsDlKtu1G12cJjcsybnqhSk/+LA==} + dependencies: + '@swc/helpers': 0.4.36 + brotli: 1.3.3 + clone: 2.1.2 + dfa: 1.2.0 + fast-deep-equal: 3.1.3 + restructure: 3.0.1 + tiny-inflate: 1.0.3 + unicode-properties: 1.4.1 + unicode-trie: 2.0.0 + dev: true /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -5673,15 +9880,26 @@ packages: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 + dev: true /fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - dev: false + dev: true /fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} - dev: false + dev: true + + /from@0.1.7: + resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} + dev: true + + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + requiresBuild: true + dev: true + optional: true /fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} @@ -5690,7 +9908,7 @@ packages: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - dev: false + dev: true /fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} @@ -5699,7 +9917,6 @@ packages: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 - dev: true /fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} @@ -5708,6 +9925,15 @@ packages: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 + + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 dev: true /fs-minipass@2.1.0: @@ -5715,28 +9941,28 @@ packages: engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - dev: false /fs-minipass@3.0.3: resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 7.0.4 - dev: false + dev: true /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: false optional: true /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true /function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} @@ -5744,7 +9970,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-abstract: 1.23.2 functions-have-names: 1.2.3 dev: true @@ -5752,6 +9978,15 @@ packages: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true + /fuse.js@6.6.2: + resolution: {integrity: sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==} + engines: {node: '>=10'} + dev: true + + /fuse.js@7.0.0: + resolution: {integrity: sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==} + engines: {node: '>=10'} + /gauge@3.0.2: resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} engines: {node: '>=10'} @@ -5765,7 +10000,7 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wide-align: 1.1.5 - dev: false + dev: true /gensequence@7.0.0: resolution: {integrity: sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==} @@ -5775,17 +10010,21 @@ packages: /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - dev: false /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + dev: true /get-east-asian-width@1.2.0: resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} engines: {node: '>=18'} dev: true + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true + /get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} @@ -5794,12 +10033,12 @@ packages: function-bind: 1.1.2 has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.1 + hasown: 2.0.2 dev: true /get-port-please@3.1.2: resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} - dev: false + dev: true /get-stdin@9.0.0: resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} @@ -5809,7 +10048,7 @@ packages: /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - dev: false + dev: true /get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} @@ -5824,30 +10063,29 @@ packages: get-intrinsic: 1.2.4 dev: true - /get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + /get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} dependencies: resolve-pkg-maps: 1.0.0 dev: true - /giget@1.2.1: - resolution: {integrity: sha512-4VG22mopWtIeHwogGSy1FViXVo0YT+m6BrqZfz0JJFwbSsePsCdOzdLIIli5BtMp7Xe8f/o2OmBpQX2NBOC24g==} + /giget@1.2.3: + resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} hasBin: true dependencies: citty: 0.1.6 consola: 3.2.3 defu: 6.1.4 - node-fetch-native: 1.6.2 - nypm: 0.3.6 + node-fetch-native: 1.6.4 + nypm: 0.3.8 ohash: 1.1.3 pathe: 1.1.2 - tar: 6.2.0 - dev: false + tar: 6.2.1 /git-config-path@2.0.0: resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==} engines: {node: '>=4'} - dev: false + dev: true /git-raw-commits@4.0.0: resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} @@ -5864,13 +10102,23 @@ packages: dependencies: is-ssh: 1.4.0 parse-url: 8.1.0 - dev: false + dev: true /git-url-parse@13.1.1: resolution: {integrity: sha512-PCFJyeSSdtnbfhSNRw9Wk96dDCNx+sogTe4YNXeXSJxt7xz5hvXekuRn9JX7m+Mf4OscCu8h+mtAl3+h5Fo8lQ==} dependencies: git-up: 7.0.0 - dev: false + dev: true + + /github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + requiresBuild: true + dev: true + optional: true + + /github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + dev: true /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -5883,6 +10131,11 @@ packages: engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 + dev: true + + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true /glob@10.3.10: resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} @@ -5894,6 +10147,7 @@ packages: minimatch: 9.0.3 minipass: 7.0.4 path-scurry: 1.10.1 + dev: true /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -5904,6 +10158,7 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: true /glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} @@ -5914,28 +10169,40 @@ packages: inherits: 2.0.4 minimatch: 5.1.6 once: 1.4.0 - dev: false + dev: true /global-directory@4.0.1: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} dependencies: ini: 4.1.1 + dev: true + + /global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + dependencies: + global-prefix: 3.0.0 + dev: true + + /global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + dev: true /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - dev: false /globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 - - /globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} dev: true /globalthis@1.0.3: @@ -5955,6 +10222,16 @@ packages: ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 + + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 4.0.0 dev: true /globby@14.0.0: @@ -5979,7 +10256,19 @@ packages: path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 - dev: false + + /globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + dev: true + + /google-fonts-helper@3.5.0: + resolution: {integrity: sha512-QcKvB3Y+jJFpvBUp/iG1oe9BbKirrjwU2mzJzKGGb5czz6T93CCP9A8IlfCoZnko7b1+gPH3yVghXP5EBvunDg==} + dependencies: + deepmerge: 4.3.1 + hookable: 5.5.3 + ofetch: 1.3.4 + ufo: 1.5.3 + dev: true /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -5996,13 +10285,29 @@ packages: /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + dependencies: + duplexer: 0.1.2 + dev: true /gzip-size@7.0.0: resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: duplexer: 0.1.2 - dev: false + dev: true + + /h3-compression@0.3.2(h3@1.11.1): + resolution: {integrity: sha512-B+yCKyDRnO0BXSfjAP4tCXJgJwmnKp3GyH5Yh66mY9KuOCrrGQSPk/gBFG2TgH7OyB/6mvqNZ1X0XNVuy0qRsw==} + peerDependencies: + h3: ^1.6.0 + dependencies: + h3: 1.11.1 + dev: true /h3@1.11.1: resolution: {integrity: sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==} @@ -6011,15 +10316,24 @@ packages: crossws: 0.2.4 defu: 6.1.4 destr: 2.0.3 - iron-webcrypto: 1.0.0 + iron-webcrypto: 1.1.0 ohash: 1.1.3 - radix3: 1.1.0 - ufo: 1.4.0 + radix3: 1.1.2 + ufo: 1.5.3 uncrypto: 0.1.3 unenv: 1.9.0 transitivePeerDependencies: - uWebSockets.js - dev: false + dev: true + + /happy-dom@14.3.8: + resolution: {integrity: sha512-jP7p/VQJ08lbIoCsw1Adna3RA86eE+2CNkqvJRWIhrKP7XKZ0e0s2TJSt5lwGS4b7x0z0Ztw0A9P4uQGMHPiiA==} + engines: {node: '>=16.0.0'} + dependencies: + entities: 4.5.0 + webidl-conversions: 7.0.0 + whatwg-mimetype: 3.0.0 + dev: true /hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} @@ -6037,6 +10351,7 @@ packages: /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + dev: true /has-own-prop@2.0.0: resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} @@ -6068,21 +10383,107 @@ packages: /has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - dev: false + dev: true /hash-sum@2.0.0: resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} - dev: false - /hasown@2.0.1: - resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 + dev: true + + /hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.4.1 + vfile: 6.0.1 + vfile-location: 5.0.2 + web-namespaces: 2.0.1 + dev: true + + /hast-util-heading-rank@3.0.0: + resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} + dependencies: + '@types/hast': 3.0.4 + dev: true + + /hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + dependencies: + '@types/hast': 3.0.4 + dev: true + + /hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + dependencies: + '@types/hast': 3.0.4 + dev: true + + /hast-util-raw@9.0.2: + resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.1.0 + parse5: 7.1.2 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: true + + /hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.4.1 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: true + + /hast-util-to-string@3.0.0: + resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} + dependencies: + '@types/hast': 3.0.4 + dev: true + + /hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.4.1 + space-separated-tokens: 2.0.2 + dev: true + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /hex-rgb@4.3.0: + resolution: {integrity: sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw==} + engines: {node: '>=6'} + dev: true /hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} - dev: false /hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -6093,16 +10494,71 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} dependencies: lru-cache: 10.2.0 - dev: false + dev: true + + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true /html-tags@3.3.1: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} - dev: false + dev: true + + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + dev: true + + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + dev: true + + /htmlparser2@9.1.0: + resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + dev: true + + /http-assert@1.5.0: + resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} + engines: {node: '>= 0.8'} + dependencies: + deep-equal: 1.0.1 + http-errors: 1.8.1 + dev: true /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - dev: false + dev: true + + /http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + dev: true + + /http-errors@1.8.1: + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 1.5.0 + toidentifier: 1.0.1 + dev: true /http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} @@ -6113,7 +10569,7 @@ packages: setprototypeof: 1.2.0 statuses: 2.0.1 toidentifier: 1.0.1 - dev: false + dev: true /http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} @@ -6123,12 +10579,12 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: false + dev: true /http-shutdown@1.2.2: resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: false + dev: true /https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} @@ -6138,7 +10594,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: false + dev: true /https-proxy-agent@7.0.4: resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} @@ -6148,20 +10604,24 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: false + dev: true /httpxy@0.1.5: resolution: {integrity: sha512-hqLDO+rfststuyEUTWObQK6zHEEmZ/kaIP2/zclGGZn6X8h/ESTWg+WKecQ/e5k4nPswjzZD+q2VqZIbr15CoQ==} - dev: false + dev: true /human-id@1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} dev: true /human-signals@4.3.1: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} engines: {node: '>=14.18.0'} - dev: false + dev: true /human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} @@ -6173,6 +10633,12 @@ packages: hasBin: true dev: true + /i18next@23.10.1: + resolution: {integrity: sha512-NDiIzFbcs3O9PXpfhkjyf7WdqFn5Vq6mhzhtkXzj51aOcNuPNcTwuYNuXCpHsanZGHlHKL35G7huoFeVic1hng==} + dependencies: + '@babel/runtime': 7.24.1 + dev: false + /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -6186,15 +10652,19 @@ packages: requiresBuild: true dependencies: safer-buffer: 2.1.2 - dev: false + dev: true optional: true + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + /ignore-walk@6.0.4: resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minimatch: 9.0.3 - dev: false + dev: true /ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} @@ -6202,7 +10672,23 @@ packages: /image-meta@0.2.0: resolution: {integrity: sha512-ZBGjl0ZMEMeOC3Ns0wUF/5UdUmr3qQhBSCniT0LxOgGGIRHiNFOkMtIHB7EOznRU47V2AxPgiVP+s+0/UCU0Hg==} - dev: false + dev: true + + /image-size@1.1.1: + resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} + engines: {node: '>=16.x'} + hasBin: true + dependencies: + queue: 6.0.2 + dev: true + + /immutable-json-patch@6.0.1: + resolution: {integrity: sha512-BHL/cXMjwFZlTOffiWNdY8ZTvNyYLrutCnWxrcKPHr5FqpAb6vsO6WWSPnVSys3+DruFN6lhHJJPHi8uELQL5g==} + dev: true + + /immutable@4.3.5: + resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} + dev: true /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -6210,6 +10696,7 @@ packages: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 + dev: true /import-meta-resolve@4.0.0: resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} @@ -6218,34 +10705,43 @@ packages: /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + dev: true /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} + dev: true /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 + dev: true + + /inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + dev: true /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: false + dev: true /ini@4.1.1: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true /internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 - hasown: 2.0.1 + hasown: 2.0.2 side-channel: 1.0.6 dev: true @@ -6264,7 +10760,7 @@ packages: standard-as-callback: 2.1.0 transitivePeerDependencies: - supports-color - dev: false + dev: true /ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} @@ -6272,11 +10768,55 @@ packages: dependencies: jsbn: 1.1.0 sprintf-js: 1.1.3 - dev: false + dev: true - /iron-webcrypto@1.0.0: - resolution: {integrity: sha512-anOK1Mktt8U1Xi7fCM3RELTuYbnFikQY5VtrDj7kPgpejV7d43tWKhzgioO0zpkazLEL/j/iayRqnJhrGfqUsg==} - dev: false + /ipx@2.1.0: + resolution: {integrity: sha512-AVnPGXJ8L41vjd11Z4akIF2yd14636Klxul3tBySxHA6PKfCOQPxBDkCFK5zcWh0z/keR6toh1eg8qzdBVUgdA==} + hasBin: true + requiresBuild: true + dependencies: + '@fastify/accept-negotiator': 1.1.0 + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + destr: 2.0.3 + etag: 1.8.1 + h3: 1.11.1 + image-meta: 0.2.0 + listhen: 1.7.2 + ofetch: 1.3.4 + pathe: 1.1.2 + sharp: 0.32.6 + svgo: 3.2.0 + ufo: 1.5.3 + unstorage: 1.10.2(ioredis@5.3.2) + xss: 1.0.15 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/kv' + - idb-keyval + - ioredis + - uWebSockets.js + dev: true + optional: true + + /iron-webcrypto@1.1.0: + resolution: {integrity: sha512-5vgYsCakNlaQub1orZK5QmNYhwYtcllTkZBp5sfIaCqY93Cf6l+v2rtE+E4TMbcfjxDMCdrO8wmp7+ZvhDECLA==} + dev: true + + /is-absolute-url@4.0.1: + resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true /is-alphabetical@1.0.4: resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} @@ -6300,6 +10840,14 @@ packages: is-decimal: 2.0.1 dev: true + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: true + /is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} @@ -6312,6 +10860,12 @@ packages: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + requiresBuild: true + dev: true + optional: true + /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: @@ -6322,8 +10876,7 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: - binary-extensions: 2.2.0 - dev: false + binary-extensions: 2.3.0 /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} @@ -6338,6 +10891,7 @@ packages: engines: {node: '>=6'} dependencies: builtin-modules: 3.3.0 + dev: true /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} @@ -6347,7 +10901,15 @@ packages: /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - hasown: 2.0.1 + hasown: 2.0.2 + dev: true + + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + dependencies: + is-typed-array: 1.1.13 + dev: true /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} @@ -6368,16 +10930,12 @@ packages: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true - dev: false + dev: true /is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true - dev: false - - /is-empty@1.2.0: - resolution: {integrity: sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w==} dev: true /is-extglob@2.1.1: @@ -6387,6 +10945,7 @@ packages: /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + dev: true /is-fullwidth-code-point@4.0.0: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} @@ -6400,6 +10959,13 @@ packages: get-east-asian-width: 1.2.0 dev: true + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -6414,13 +10980,17 @@ packages: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} dev: true + /is-https@4.0.0: + resolution: {integrity: sha512-FeMLiqf8E5g6SdiVJsPcNZX8k4h2fBs1wp5Bb6uaNxn58ufK1axBqQZdmAQsqh0t9BuwFObybrdVJh6MKyPlyg==} + dev: true + /is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} hasBin: true dependencies: is-docker: 3.0.0 - dev: false + dev: true /is-installed-globally@1.0.0: resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} @@ -6428,15 +10998,20 @@ packages: dependencies: global-directory: 4.0.1 is-path-inside: 4.0.0 - dev: false + dev: true /is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - dev: false + dev: true + + /is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + dev: true /is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - dev: false + dev: true /is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} @@ -6462,11 +11037,12 @@ packages: /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + dev: true /is-path-inside@4.0.0: resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} engines: {node: '>=12'} - dev: false + dev: true /is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} @@ -6478,16 +11054,27 @@ packages: engines: {node: '>=12'} dev: true + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + /is-primitive@3.0.1: resolution: {integrity: sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==} engines: {node: '>=0.10.0'} - dev: false + dev: true /is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: '@types/estree': 1.0.5 - dev: false + dev: true + + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + dependencies: + '@types/estree': 1.0.5 + dev: true /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} @@ -6497,6 +11084,11 @@ packages: has-tostringtag: 1.0.2 dev: true + /is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + dev: true + /is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} @@ -6508,7 +11100,12 @@ packages: resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} dependencies: protocols: 2.0.1 - dev: false + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} @@ -6526,7 +11123,6 @@ packages: engines: {node: '>=4'} dependencies: better-path-resolve: 1.0.0 - dev: true /is-symbol@1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} @@ -6546,48 +11142,60 @@ packages: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.14 + which-typed-array: 1.1.15 dev: true /is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} dev: true + /is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + dev: true + /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.7 dev: true + /is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true + /is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} - dev: true /is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} dependencies: is-docker: 2.2.1 - dev: false + dev: true /is-wsl@3.1.0: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} dependencies: is-inside-container: 1.0.0 - dev: false + dev: true /is64bit@2.0.0: resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} engines: {node: '>=18'} dependencies: system-architecture: 0.1.0 - dev: false + dev: true /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: false + dev: true /isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -6599,7 +11207,40 @@ packages: /isexe@3.1.1: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} - dev: false + dev: true + + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps@5.0.4: + resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} + engines: {node: '>=10'} + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + debug: 4.3.4 + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + dev: true /jackspeak@2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} @@ -6608,17 +11249,58 @@ packages: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 + dev: true + + /jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 20.11.30 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true /jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true + /jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + dev: false + + /jmespath@0.16.0: + resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} + engines: {node: '>= 0.6.0'} + dev: true + + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + + /js-beautify@1.15.1: + resolution: {integrity: sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==} + engines: {node: '>=14'} + hasBin: true + dependencies: + config-chain: 1.1.13 + editorconfig: 1.0.4 + glob: 10.3.10 + js-cookie: 3.0.5 + nopt: 7.2.0 + dev: true + + /js-cookie@3.0.5: + resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} + engines: {node: '>=14'} + dev: true + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} /js-tokens@8.0.3: resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==} - dev: false + dev: true /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} @@ -6626,17 +11308,17 @@ packages: dependencies: argparse: 1.0.10 esprima: 4.0.1 - dev: true /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true dependencies: argparse: 2.0.1 + dev: true /jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - dev: false + dev: true /jsdoc-type-pratt-parser@4.0.0: resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} @@ -6652,7 +11334,6 @@ packages: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true - dev: false /jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} @@ -6662,6 +11343,24 @@ packages: /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-editor-vue@0.12.0(@lezer/common@1.2.1)(vue@3.4.21): + resolution: {integrity: sha512-VOsWy2EiAUY+iD5zdKssG/lBVVTNbDEgkUWnq4FJbOVNuVXwdRdX76zWvtbhh6MSjlFVCxZc/7V0VEayZbcGeQ==} + requiresBuild: true + peerDependencies: + '@vue/composition-api': '>=1' + vue: 2||3 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vanilla-jsoneditor: 0.21.6(@lezer/common@1.2.1) + vue: 3.4.21(typescript@5.4.3) + vue-demi: 0.14.7(vue@3.4.21) + transitivePeerDependencies: + - '@lezer/common' + dev: true /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -6670,22 +11369,28 @@ packages: /json-parse-even-better-errors@3.0.1: resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} dev: true + /json-source-map@0.6.1: + resolution: {integrity: sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg==} + dev: true + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true - dev: false /jsonc-eslint-parser@2.4.0: resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} @@ -6708,7 +11413,6 @@ packages: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.11 - dev: true /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} @@ -6716,16 +11420,30 @@ packages: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - dev: false + dev: true /jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} + dev: true + + /jsonrepair@3.6.0: + resolution: {integrity: sha512-ZvOmoq35LhlDaf1W3uT7e17Bh2dYbln1+pdJ1KUIMkRAoUC4mvXX+dbr9Ih6dDmYvB0mdijAucyPk4xX1cEjww==} + hasBin: true + dev: true + + /keygrip@1.1.0: + resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} + engines: {node: '>= 0.6'} + dependencies: + tsscmp: 1.0.6 + dev: true /keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 + dev: true /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} @@ -6735,6 +11453,7 @@ packages: /kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} + dev: true /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} @@ -6744,36 +11463,122 @@ packages: /klona@2.0.6: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} - dev: false + dev: true /knitwork@1.0.0: resolution: {integrity: sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q==} - dev: false + + /known-css-properties@0.29.0: + resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==} + dev: true + + /known-css-properties@0.30.0: + resolution: {integrity: sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==} + dev: true + + /koa-compose@4.1.0: + resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} + dev: true + + /koa-convert@2.0.0: + resolution: {integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==} + engines: {node: '>= 10'} + dependencies: + co: 4.6.0 + koa-compose: 4.1.0 + dev: true + + /koa-send@5.0.1: + resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==} + engines: {node: '>= 8'} + dependencies: + debug: 4.3.4 + http-errors: 1.8.1 + resolve-path: 1.4.0 + transitivePeerDependencies: + - supports-color + dev: true + + /koa-static@5.0.0: + resolution: {integrity: sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==} + engines: {node: '>= 7.6.0'} + dependencies: + debug: 3.2.7 + koa-send: 5.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /koa@2.15.2: + resolution: {integrity: sha512-MXTeZH3M6AJ8ukW2QZ8wqO3Dcdfh2WRRmjCBkEP+NhKNCiqlO5RDqHmSnsyNrbRJrdjyvIGSJho4vQiWgQJSVA==} + engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} + dependencies: + accepts: 1.3.8 + cache-content-type: 1.0.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookies: 0.9.1 + debug: 4.3.4 + delegates: 1.0.0 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + fresh: 0.5.2 + http-assert: 1.5.0 + http-errors: 1.8.1 + is-generator-function: 1.0.10 + koa-compose: 4.1.0 + koa-convert: 2.0.0 + on-finished: 2.4.1 + only: 0.0.2 + parseurl: 1.3.3 + statuses: 1.5.0 + type-is: 1.6.18 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true /kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - dev: false + dev: true /launch-editor@2.6.1: resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} dependencies: picocolors: 1.0.0 shell-quote: 1.8.1 - dev: false + dev: true /lazystream@1.0.1: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} dependencies: readable-stream: 2.3.8 - dev: false + dev: true /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lighthouse-logger@2.0.1: + resolution: {integrity: sha512-ioBrW3s2i97noEmnXxmUq7cjIcVRjT5HBpAYy8zE11CxU9HqlWHHeRxfeN1tn8F7OEMVPIC9x1f8t3Z7US9ehQ==} + dependencies: + debug: 2.6.9 + marky: 1.2.5 + transitivePeerDependencies: + - supports-color + dev: true + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true /lilconfig@3.0.0: resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} @@ -6783,15 +11588,17 @@ packages: /lilconfig@3.1.1: resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} engines: {node: '>=14'} - dev: false + dev: true - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + /linebreak@1.1.0: + resolution: {integrity: sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==} + dependencies: + base64-js: 0.0.8 + unicode-trie: 2.0.0 dev: true - /lines-and-columns@2.0.4: - resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true /linkify-it@5.0.0: @@ -6838,12 +11645,12 @@ packages: node-forge: 1.3.1 pathe: 1.1.2 std-env: 3.7.0 - ufo: 1.4.0 + ufo: 1.5.3 untun: 0.1.3 uqr: 0.1.2 transitivePeerDependencies: - uWebSockets.js - dev: false + dev: true /listr2@8.0.1: resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} @@ -6857,11 +11664,9 @@ packages: wrap-ansi: 9.0.0 dev: true - /load-plugin@6.0.2: - resolution: {integrity: sha512-3KRkTvCOsyNrx4zvBl/+ZMqPdVyp26TIf6xkmfEGuGwCfNQ/HzhktwbJCxd1KJpzPbK42t/WVOL3cX+TDaMRuQ==} - dependencies: - '@npmcli/config': 8.2.0 - import-meta-resolve: 4.0.0 + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true /load-yaml-file@0.2.0: @@ -6874,10 +11679,15 @@ packages: strip-bom: 3.0.0 dev: true + /loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + dev: true + /local-pkg@0.4.3: resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} engines: {node: '>=14'} - dev: false + dev: true /local-pkg@0.5.0: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} @@ -6886,18 +11696,22 @@ packages: mlly: 1.6.1 pkg-types: 1.0.3 + /locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + dev: true + /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} dependencies: p-locate: 4.1.0 - dev: true /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} dependencies: p-locate: 5.0.0 + dev: true /locate-path@7.2.0: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} @@ -6906,17 +11720,37 @@ packages: p-locate: 6.0.0 dev: true + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: true + + /lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21): + resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==} + peerDependencies: + '@types/lodash-es': '*' + lodash: '*' + lodash-es: '*' + dependencies: + '@types/lodash-es': 4.17.12 + lodash: 4.17.21 + lodash-es: 4.17.21 + dev: true + /lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} dev: true + /lodash.castarray@4.4.0: + resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + dev: true + /lodash.defaults@4.2.0: resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - dev: false + dev: true /lodash.isarguments@3.1.0: resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} - dev: false + dev: true /lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} @@ -6928,10 +11762,11 @@ packages: /lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - dev: false + dev: true /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true /lodash.mergewith@4.6.2: resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} @@ -6941,12 +11776,21 @@ packages: resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} dev: true + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true + /lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} dev: true + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + dev: true + /lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + dev: true /lodash.upperfirst@4.3.1: resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} @@ -6954,12 +11798,13 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true /log-update@6.0.0: resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} engines: {node: '>=18'} dependencies: - ansi-escapes: 6.2.0 + ansi-escapes: 6.2.1 cli-cursor: 4.0.0 slice-ansi: 7.1.0 strip-ansi: 7.1.0 @@ -6970,22 +11815,27 @@ packages: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} dev: true + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + dependencies: + get-func-name: 2.0.2 + dev: true + /lru-cache@10.2.0: resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} + dev: true /lru-cache@4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: pseudomap: 1.0.2 yallist: 2.1.2 - dev: true /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 - dev: false /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} @@ -6993,15 +11843,38 @@ packages: dependencies: yallist: 4.0.0 + /lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + dev: true + + /magic-regexp@0.7.0: + resolution: {integrity: sha512-C9m5/JqFV1/CMrMFDf1PqmvMc8ohrssmlF5bdgea7nUqqn6D9xzKVTa6DIm0LReCqvEPS35o1UElmb7PmoSfHQ==} + dependencies: + estree-walker: 3.0.3 + magic-string: 0.30.8 + mlly: 1.6.1 + type-level-regexp: 0.1.17 + ufo: 1.5.3 + unplugin: 1.10.0 + dev: true + /magic-string-ast@0.3.0: resolution: {integrity: sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==} engines: {node: '>=16.14.0'} dependencies: - magic-string: 0.30.7 - dev: false + magic-string: 0.30.8 + dev: true + + /magic-string@0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true - /magic-string@0.30.7: - resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} + /magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -7009,17 +11882,24 @@ packages: /magicast@0.3.3: resolution: {integrity: sha512-ZbrP1Qxnpoes8sz47AM0z08U+jW6TyRgZzcWy3Ma3vDhJttwMwAFDMMQFobwdBxByBD46JYmxRzeF7w2+wJEuw==} dependencies: - '@babel/parser': 7.24.0 + '@babel/parser': 7.24.1 '@babel/types': 7.24.0 - source-map-js: 1.0.2 - dev: false + source-map-js: 1.2.0 + dev: true /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} dependencies: semver: 6.3.1 - dev: false + dev: true + + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + dependencies: + semver: 7.6.0 + dev: true /make-fetch-happen@13.0.0: resolution: {integrity: sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==} @@ -7038,7 +11918,7 @@ packages: ssri: 10.0.5 transitivePeerDependencies: - supports-color - dev: false + dev: true /map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} @@ -7050,6 +11930,10 @@ packages: engines: {node: '>=8'} dev: true + /map-stream@0.1.0: + resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} + dev: true + /markdown-it@14.0.0: resolution: {integrity: sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==} hasBin: true @@ -7062,6 +11946,10 @@ packages: uc.micro: 2.1.0 dev: true + /markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: true + /markdownlint-cli2-formatter-default@0.0.4(markdownlint-cli2@0.12.1): resolution: {integrity: sha512-xm2rM0E+sWgjpPn1EesPXx5hIyrN2ddUnUwnbCsD/ONxYtw3PX6LydvdH6dciWAoFDpwzbHM1TO7uHfcMd6IYg==} peerDependencies: @@ -7107,6 +11995,27 @@ packages: markdownlint-micromark: 0.1.8 dev: true + /marky@1.2.5: + resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} + dev: true + + /maska@2.1.11: + resolution: {integrity: sha512-IGqWjBnKxMYcVa06pb4mPfag9sJjnR2T15CdGfQ2llR3gajiSd4AxXCvNqHMEq9W3UBhjjTazgWumsP3sWrUSg==} + dev: false + + /mathml-tag-names@2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + dev: true + + /mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + dependencies: + '@types/mdast': 4.0.3 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: true + /mdast-util-from-markdown@0.8.5: resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} dependencies: @@ -7138,56 +12047,53 @@ packages: - supports-color dev: true - /mdast-util-mdx-expression@2.0.0: - resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + /mdast-util-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + dependencies: + '@types/mdast': 4.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 + dev: true + + /mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 '@types/mdast': 4.0.3 devlop: 1.1.0 mdast-util-from-markdown: 2.0.0 mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: - supports-color dev: true - /mdast-util-mdx-jsx@3.1.0: - resolution: {integrity: sha512-A8AJHlR7/wPQ3+Jre1+1rq040fX9A4Q1jG8JxmSNp/PLPHg80A6475wxTp3KzHpApFH6yWxFotHrJQA3dXP6/w==} + /mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 '@types/mdast': 4.0.3 - '@types/unist': 3.0.2 - ccount: 2.0.1 - devlop: 1.1.0 mdast-util-from-markdown: 2.0.0 mdast-util-to-markdown: 2.1.0 - parse-entities: 4.0.1 - stringify-entities: 4.0.3 - unist-util-remove-position: 5.0.0 - unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.2 transitivePeerDependencies: - supports-color dev: true - /mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + /mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} dependencies: + '@types/mdast': 4.0.3 + devlop: 1.1.0 + markdown-table: 3.0.3 mdast-util-from-markdown: 2.0.0 - mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.1.0 - mdast-util-mdxjs-esm: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color dev: true - /mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + /mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 '@types/mdast': 4.0.3 devlop: 1.1.0 mdast-util-from-markdown: 2.0.0 @@ -7196,6 +12102,20 @@ packages: - supports-color dev: true + /mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + dependencies: + mdast-util-from-markdown: 2.0.0 + mdast-util-gfm-autolink-literal: 2.0.0 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: true + /mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} dependencies: @@ -7203,6 +12123,20 @@ packages: unist-util-is: 6.0.0 dev: true + /mdast-util-to-hast@13.1.0: + resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + dev: true + /mdast-util-to-markdown@2.1.0: resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} dependencies: @@ -7228,21 +12162,36 @@ packages: /mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - dev: false + requiresBuild: true + dev: true /mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - dev: false + dev: true /mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} dev: true + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: true + + /memoize-one@6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + dev: true + /meow@12.1.1: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} dev: true + /meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} + dev: true + /meow@6.1.1: resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} engines: {node: '>=8'} @@ -7267,6 +12216,11 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + dev: true + /micromark-core-commonmark@2.0.0: resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} dependencies: @@ -7288,63 +12242,74 @@ packages: micromark-util-types: 2.0.0 dev: true - /micromark-extension-mdx-expression@3.0.0: - resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + /micromark-extension-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-extension-gfm-footnote@2.0.0: + resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} dependencies: - '@types/estree': 1.0.5 devlop: 1.1.0 - micromark-factory-mdx-expression: 2.0.1 + micromark-core-commonmark: 2.0.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 - micromark-util-events-to-acorn: 2.0.2 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 dev: true - /micromark-extension-mdx-jsx@3.0.0: - resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} + /micromark-extension-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-extension-gfm-table@2.0.0: + resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - micromark-factory-mdx-expression: 2.0.1 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - vfile-message: 4.0.2 dev: true - /micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + /micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} dependencies: micromark-util-types: 2.0.0 dev: true - /micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + /micromark-extension-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} dependencies: - '@types/estree': 1.0.5 devlop: 1.1.0 - micromark-core-commonmark: 2.0.0 + micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 - micromark-util-events-to-acorn: 2.0.2 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.2 dev: true - /micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + /micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - micromark-extension-mdx-expression: 3.0.0 - micromark-extension-mdx-jsx: 3.0.0 - micromark-extension-mdx-md: 2.0.0 - micromark-extension-mdxjs-esm: 3.0.0 + micromark-extension-gfm-autolink-literal: 2.0.0 + micromark-extension-gfm-footnote: 2.0.0 + micromark-extension-gfm-strikethrough: 2.0.0 + micromark-extension-gfm-table: 2.0.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.0.1 micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 dev: true @@ -7366,19 +12331,6 @@ packages: micromark-util-types: 2.0.0 dev: true - /micromark-factory-mdx-expression@2.0.1: - resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} - dependencies: - '@types/estree': 1.0.5 - devlop: 1.1.0 - micromark-util-character: 2.1.0 - micromark-util-events-to-acorn: 2.0.2 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.2 - dev: true - /micromark-factory-space@2.0.0: resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} dependencies: @@ -7451,19 +12403,6 @@ packages: resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} dev: true - /micromark-util-events-to-acorn@2.0.2: - resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} - dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 - '@types/unist': 3.0.2 - devlop: 1.1.0 - estree-util-visit: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - vfile-message: 4.0.2 - dev: true - /micromark-util-html-tag-name@2.0.0: resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} dev: true @@ -7545,23 +12484,35 @@ packages: braces: 3.0.2 picomatch: 2.3.1 + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + /mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} hasBin: true - dev: false + dev: true /mime@3.0.0: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} engines: {node: '>=10.0.0'} hasBin: true - dev: false + dev: true /mime@4.0.1: resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} engines: {node: '>=16'} hasBin: true - dev: false + dev: true /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} @@ -7572,28 +12523,49 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + requiresBuild: true + dev: true + optional: true + /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} dev: true + /mini-svg-data-uri@1.4.4: + resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} + hasBin: true + dev: true + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 + dev: true /minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 - dev: false + dev: true + + /minimatch@9.0.1: + resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true /minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 + dev: true /minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} @@ -7613,7 +12585,7 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: minipass: 7.0.4 - dev: false + dev: true /minipass-fetch@3.0.4: resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} @@ -7624,51 +12596,54 @@ packages: minizlib: 2.1.2 optionalDependencies: encoding: 0.1.13 - dev: false + dev: true /minipass-flush@1.0.5: resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - dev: false + dev: true /minipass-json-stream@1.0.1: resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} dependencies: jsonparse: 1.3.1 minipass: 3.3.6 - dev: false + dev: true /minipass-pipeline@1.2.4: resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} engines: {node: '>=8'} dependencies: minipass: 3.3.6 - dev: false + dev: true /minipass-sized@1.0.3: resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} engines: {node: '>=8'} dependencies: minipass: 3.3.6 - dev: false + dev: true /minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} dependencies: yallist: 4.0.0 - dev: false /minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} - dev: false /minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} + dev: true + + /minisearch@6.3.0: + resolution: {integrity: sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==} + dev: true /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -7676,18 +12651,65 @@ packages: dependencies: minipass: 3.3.6 yallist: 4.0.0 - dev: false + + /mitt@2.1.0: + resolution: {integrity: sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==} + dev: true + + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: true /mixme@0.5.10: resolution: {integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==} engines: {node: '>= 8.0.0'} dev: true + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + requiresBuild: true + dev: true + optional: true + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + /mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true - dev: false + + /mkdist@1.4.0(typescript@5.4.3): + resolution: {integrity: sha512-LzzdzWDx6cWWPd8saIoO+kT5jnbijfeDaE6jZfmCYEi3YL2aJSyF23/tCFee/mDuh/ek1UQeSYdLeSa6oesdiw==} + hasBin: true + peerDependencies: + sass: ^1.69.5 + typescript: '>=5.3.2' + peerDependenciesMeta: + sass: + optional: true + typescript: + optional: true + dependencies: + autoprefixer: 10.4.19(postcss@8.4.38) + citty: 0.1.6 + cssnano: 6.1.2(postcss@8.4.38) + defu: 6.1.4 + esbuild: 0.19.12 + fs-extra: 11.2.0 + globby: 13.2.2 + jiti: 1.21.0 + mlly: 1.6.1 + mri: 1.2.0 + pathe: 1.1.2 + postcss: 8.4.38 + postcss-nested: 6.0.1(postcss@8.4.38) + typescript: 5.4.3 + dev: true /mlly@1.6.1: resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} @@ -7695,7 +12717,7 @@ packages: acorn: 8.11.3 pathe: 1.1.2 pkg-types: 1.0.3 - ufo: 1.4.0 + ufo: 1.5.3 /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -7704,17 +12726,30 @@ packages: /mrmime@2.0.0: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} - dev: false + dev: true /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - dev: false + dev: true /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + dev: true + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} @@ -7725,22 +12760,39 @@ packages: resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} engines: {node: ^14 || ^16 || >=18} hasBin: true + dev: true + + /nanoid@5.0.6: + resolution: {integrity: sha512-rRq0eMHoGZxlvaFOUdK1Ev83Bd1IgzzR+WJ3IbDJ7QOSdAxYjlurSPqFs9s4lJg29RT6nPwizFtJhQS6V5xgiA==} + engines: {node: ^18 || >=20} + hasBin: true dev: false + /napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + requiresBuild: true + dev: true + optional: true + /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} - dev: false + dev: true + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true - /nitropack@2.9.1: - resolution: {integrity: sha512-qgz2VKJoiFvEtC6JnFlaqVx5hirD/oonb6SIM6kQODeDjEHVaiOViZxg7pnAGq13Zu2vNHhaJe6Sf49AEG3J+A==} + /nitropack@2.9.5: + resolution: {integrity: sha512-ClanSILi9O6HX95QNIC+TwxojpRpOSn9n3e3wmHExAHhLN5HdnHGmHN4LwtJdE2p91nse3kDULOTR7k1xRVJ/g==} engines: {node: ^16.11.0 || >=17.0.0} hasBin: true peerDependencies: @@ -7751,18 +12803,18 @@ packages: dependencies: '@cloudflare/kv-asset-handler': 0.3.1 '@netlify/functions': 2.6.0 - '@rollup/plugin-alias': 5.1.0(rollup@4.12.0) - '@rollup/plugin-commonjs': 25.0.7(rollup@4.12.0) - '@rollup/plugin-inject': 5.0.5(rollup@4.12.0) - '@rollup/plugin-json': 6.1.0(rollup@4.12.0) - '@rollup/plugin-node-resolve': 15.2.3(rollup@4.12.0) - '@rollup/plugin-replace': 5.0.5(rollup@4.12.0) - '@rollup/plugin-terser': 0.4.4(rollup@4.12.0) - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) + '@rollup/plugin-alias': 5.1.0(rollup@4.13.0) + '@rollup/plugin-commonjs': 25.0.7(rollup@4.13.0) + '@rollup/plugin-inject': 5.0.5(rollup@4.13.0) + '@rollup/plugin-json': 6.1.0(rollup@4.13.0) + '@rollup/plugin-node-resolve': 15.2.3(rollup@4.13.0) + '@rollup/plugin-replace': 5.0.5(rollup@4.13.0) + '@rollup/plugin-terser': 0.4.4(rollup@4.13.0) + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) '@types/http-proxy': 1.17.14 '@vercel/nft': 0.26.4 - archiver: 6.0.2 - c12: 1.9.0 + archiver: 7.0.1 + c12: 1.10.0 chalk: 5.3.0 chokidar: 3.6.0 citty: 0.1.6 @@ -7770,11 +12822,11 @@ packages: cookie-es: 1.0.0 croner: 8.0.1 crossws: 0.2.4 - db0: 0.1.3 + db0: 0.1.4 defu: 6.1.4 destr: 2.0.3 dot-prop: 8.0.2 - esbuild: 0.20.1 + esbuild: 0.20.2 escape-string-regexp: 5.0.0 etag: 1.8.1 fs-extra: 11.2.0 @@ -7783,38 +12835,39 @@ packages: h3: 1.11.1 hookable: 5.5.3 httpxy: 0.1.5 + ioredis: 5.3.2 is-primitive: 3.0.1 jiti: 1.21.0 klona: 2.0.6 knitwork: 1.0.0 listhen: 1.7.2 - magic-string: 0.30.7 + magic-string: 0.30.8 mime: 4.0.1 mlly: 1.6.1 mri: 1.2.0 - node-fetch-native: 1.6.2 - ofetch: 1.3.3 + node-fetch-native: 1.6.4 + ofetch: 1.3.4 ohash: 1.1.3 - openapi-typescript: 6.7.4 + openapi-typescript: 6.7.5 pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.0.3 pretty-bytes: 6.1.1 - radix3: 1.1.0 - rollup: 4.12.0 - rollup-plugin-visualizer: 5.12.0(rollup@4.12.0) + radix3: 1.1.2 + rollup: 4.13.0 + rollup-plugin-visualizer: 5.12.0(rollup@4.13.0) scule: 1.3.0 semver: 7.6.0 serve-placeholder: 2.0.1 serve-static: 1.15.0 std-env: 3.7.0 - ufo: 1.4.0 + ufo: 1.5.3 uncrypto: 0.1.3 unctx: 2.3.1 unenv: 1.9.0 - unimport: 3.7.1(rollup@4.12.0) - unstorage: 1.10.1 - unwasm: 0.3.7 + unimport: 3.7.1(rollup@4.13.0) + unstorage: 1.10.2(ioredis@5.3.2) + unwasm: 0.3.8 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -7834,16 +12887,40 @@ packages: - idb-keyval - supports-color - uWebSockets.js - dev: false + dev: true + + /node-abi@3.56.0: + resolution: {integrity: sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==} + engines: {node: '>=10'} + requiresBuild: true + dependencies: + semver: 7.6.0 + dev: true + optional: true + + /node-addon-api@6.1.0: + resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + requiresBuild: true + dev: true + optional: true /node-addon-api@7.1.0: resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} engines: {node: ^16 || ^18 || >= 20} - dev: false + dev: true - /node-fetch-native@1.6.2: - resolution: {integrity: sha512-69mtXOFZ6hSkYiXAVB5SqaRvrbITC/NPyqv7yuu/qw0nmgPyYbIMYYNIDhNtwPrzk0ptrimrLz/hhjvm4w5Z+w==} - dev: false + /node-emoji@2.1.3: + resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} + engines: {node: '>=18'} + dependencies: + '@sindresorhus/is': 4.6.0 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 + dev: true + + /node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} /node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} @@ -7855,19 +12932,20 @@ packages: optional: true dependencies: whatwg-url: 5.0.0 + dev: true /node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} - dev: false + dev: true /node-gyp-build@4.8.0: resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} hasBin: true - dev: false + dev: true - /node-gyp@10.0.1: - resolution: {integrity: sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==} + /node-gyp@10.1.0: + resolution: {integrity: sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==} engines: {node: ^16.14.0 || >=18.0.0} hasBin: true dependencies: @@ -7879,11 +12957,11 @@ packages: nopt: 7.2.0 proc-log: 3.0.0 semver: 7.6.0 - tar: 6.2.0 + tar: 6.2.1 which: 4.0.0 transitivePeerDependencies: - supports-color - dev: false + dev: true /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} @@ -7894,7 +12972,7 @@ packages: hasBin: true dependencies: abbrev: 1.1.1 - dev: false + dev: true /nopt@7.2.0: resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} @@ -7902,6 +12980,7 @@ packages: hasBin: true dependencies: abbrev: 2.0.0 + dev: true /normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -7920,35 +12999,39 @@ packages: is-core-module: 2.13.1 semver: 7.6.0 validate-npm-package-license: 3.0.4 - dev: false + dev: true /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: false /normalize-range@0.1.2: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} - dev: false + dev: true + + /normalize-wheel-es@1.2.0: + resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==} + dev: true /npm-bundled@3.0.0: resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: npm-normalize-package-bin: 3.0.1 - dev: false + dev: true /npm-install-checks@6.3.0: resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: semver: 7.6.0 - dev: false + dev: true /npm-normalize-package-bin@3.0.1: resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true /npm-package-arg@11.0.1: resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} @@ -7958,14 +13041,14 @@ packages: proc-log: 3.0.0 semver: 7.6.0 validate-npm-package-name: 5.0.0 - dev: false + dev: true /npm-packlist@8.0.2: resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: ignore-walk: 6.0.4 - dev: false + dev: true /npm-pick-manifest@9.0.0: resolution: {integrity: sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==} @@ -7975,7 +13058,7 @@ packages: npm-normalize-package-bin: 3.0.1 npm-package-arg: 11.0.1 semver: 7.6.0 - dev: false + dev: true /npm-registry-fetch@16.1.0: resolution: {integrity: sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==} @@ -7990,14 +13073,14 @@ packages: proc-log: 3.0.0 transitivePeerDependencies: - supports-color - dev: false + dev: true /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} dependencies: path-key: 3.1.1 - dev: false + dev: true /npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} @@ -8012,23 +13095,431 @@ packages: console-control-strings: 1.1.0 gauge: 3.0.2 set-blocking: 2.0.0 - dev: false + dev: true /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 + dev: true - /nuxi@3.10.1: - resolution: {integrity: sha512-ZNt858+FOZDIiKKFJkXO7uJAnALytDdn1XbLgtZAqbtWNMayHbOnWcnxh+WSOE4H9uOi2+loWXEqKElmNWLgcQ==} - engines: {node: ^14.18.0 || >=16.10.0} + /nuxi@3.11.1: + resolution: {integrity: sha512-AW71TpxRHNg8MplQVju9tEFvXPvX42e0wPYknutSStDuAjV99vWTWYed4jxr/grk2FtKAuv2KvdJxcn2W59qyg==} + engines: {node: ^16.10.0 || >=18.0.0} hasBin: true optionalDependencies: fsevents: 2.3.3 - dev: false + dev: true + + /nuxt-csurf@1.5.1(rollup@4.13.0): + resolution: {integrity: sha512-eR59ogunxo0/GBUczkRbTjnO03Zl6KD1+Wa0DcqqoA3FjWaZ4M3dre3pwRPIL67yh62UtXEWXcNt8cUek3b49w==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + defu: 6.1.4 + uncsrf: 1.1.1 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /nuxt-gtag@2.0.5(rollup@4.13.0): + resolution: {integrity: sha512-RX/52eXufjly/Y7PJKRLGLBQhI73SnmzcLoI4pjEJIVsEVpIXJLkAwHtKY3HvU8KiV0ai4UE3Cn1xB6ncoiFaA==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + defu: 6.1.4 + pathe: 1.1.2 + ufo: 1.5.3 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /nuxt-icon@0.6.10(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21): + resolution: {integrity: sha512-S9zHVA66ox4ZSpMWvCjqKZC4ZogC0s2z3vZs+M4D95YXGPEXwxDZu+insMKvkbe8+k7gvEmtTk0eq3KusKlxiw==} + dependencies: + '@iconify/collections': 1.0.408 + '@iconify/vue': 4.1.1(vue@3.4.21) + '@nuxt/devtools-kit': 1.1.4(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + transitivePeerDependencies: + - nuxt + - rollup + - supports-color + - vite + - vue + dev: true + + /nuxt-link-checker@3.0.0-rc.7(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0): + resolution: {integrity: sha512-2+vnwPTCR2DfMZW/M7XKVVH2Yp5hJanfh1pRKc+f95R5tRSMapTjWtxcx2kkPaiOJngu0uD69Fp+a77p6LNi4Q==} + dependencies: + '@nuxt/devtools-kit': 1.1.4(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6) + '@nuxt/devtools-ui-kit': 1.1.4(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(fuse.js@7.0.0)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@vueuse/core': 10.9.0(vue@3.4.21) + chalk: 5.3.0 + cheerio: 1.0.0-rc.12 + diff: 5.2.0 + floating-vue: 5.2.0(@nuxt/kit@3.11.1)(vue@3.4.21) + fuse.js: 7.0.0 + magic-string: 0.30.8 + nuxt-site-config: 2.2.7(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(fuse.js@7.0.0)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + nuxt-site-config-kit: 2.2.7(rollup@4.13.0)(vue@3.4.21) + pathe: 1.1.2 + radix3: 1.1.2 + shiki: 1.2.1 + sirv: 2.0.4 + site-config-stack: 2.2.11(vue@3.4.21) + ufo: 1.5.3 + transitivePeerDependencies: + - '@nuxt/devtools' + - '@unocss/webpack' + - '@vue/compiler-core' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - idb-keyval + - jwt-decode + - nprogress + - nuxt + - postcss + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - vite + - vue + - webpack + dev: true + + /nuxt-og-image@3.0.0-rc.47(@lezer/common@1.2.1)(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0): + resolution: {integrity: sha512-CFm0cZpMGevoJ7HnVUiMAsyWakjoDqcaUOvPhPofBbZYoFl/VU4N7BYDswHMBTGORHJm74blHwapfvvr9FeidA==} + dependencies: + '@css-inline/css-inline': 0.13.1 + '@css-inline/css-inline-wasm': 0.12.1 + '@nuxt/devtools-kit': 1.1.4(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@resvg/resvg-js': 2.6.2 + '@resvg/resvg-wasm': 2.6.2 + '@unocss/core': 0.58.7 + '@unocss/preset-wind': 0.58.7 + '@vueuse/core': 10.9.0(vue@3.4.21) + chrome-launcher: 1.1.1 + defu: 6.1.4 + execa: 8.0.1 + flatted: 3.3.1 + floating-vue: 5.2.2(@nuxt/kit@3.11.1)(vue@3.4.21) + image-size: 1.1.1 + json-editor-vue: 0.12.0(@lezer/common@1.2.1)(vue@3.4.21) + nuxt-icon: 0.6.10(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21) + nuxt-site-config: 2.2.11(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + nuxt-site-config-kit: 2.2.11(rollup@4.13.0)(vue@3.4.21) + nypm: 0.3.8 + ofetch: 1.3.4 + ohash: 1.1.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + playwright-core: 1.42.1 + radix3: 1.1.2 + satori: 0.10.13 + satori-html: 0.3.2 + shiki: 1.2.1 + sirv: 2.0.4 + splitpanes: 3.1.5 + std-env: 3.7.0 + terminate: 2.6.1 + ufo: 1.5.3 + unwasm: 0.3.8 + vanilla-jsoneditor: 0.23.0(@lezer/common@1.2.1) + yoga-wasm-web: 0.3.3 + transitivePeerDependencies: + - '@lezer/common' + - '@nuxt/devtools' + - '@unocss/webpack' + - '@vue/compiler-core' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - nuxt + - postcss + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - vite + - vue + - webpack + dev: true + + /nuxt-schema-org@3.3.6(@nuxt/devtools@1.1.4)(@unhead/shared@1.9.1)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(unhead@1.9.1)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0): + resolution: {integrity: sha512-1HTyYmwBjXuzQ3nXpI+0l+DZbFq0hPayUazaTUFcc/BF/176OIrBTymj/5DgwsUVtZKVDglCdzDriIF8YhfIDA==} + dependencies: + '@nuxt/devtools-kit': 1.1.4(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6) + '@nuxt/devtools-ui-kit': 1.1.4(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(fuse.js@7.0.0)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@unhead/schema-org': 1.9.1(@unhead/shared@1.9.1)(unhead@1.9.1) + floating-vue: 5.2.2(@nuxt/kit@3.11.1)(vue@3.4.21) + nuxt-site-config: 2.2.11(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + nuxt-site-config-kit: 2.2.11(rollup@4.13.0)(vue@3.4.21) + pathe: 1.1.2 + shiki: 1.2.1 + sirv: 2.0.4 + transitivePeerDependencies: + - '@nuxt/devtools' + - '@unhead/shared' + - '@unocss/webpack' + - '@vue/compiler-core' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - nuxt + - postcss + - qrcode + - rollup + - sortablejs + - supports-color + - unhead + - universal-cookie + - vite + - vue + - webpack + dev: true + + /nuxt-security@1.2.2(rollup@4.13.0): + resolution: {integrity: sha512-/g2gjl4ReruHe2RDv+LkWvkNFXl2GMKLvDQgdEuMPTrL+9fYARkdCKC2iDvPaBp0EymlFDVGIjtlzLAxAWkgbg==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + basic-auth: 2.0.1 + cheerio: 1.0.0-rc.12 + defu: 6.1.4 + nuxt-csurf: 1.5.1(rollup@4.13.0) + pathe: 1.1.2 + unplugin-remove: 0.1.7(rollup@4.13.0) + xss: 1.0.15 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /nuxt-seo-experiments@4.0.0-rc.5(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0): + resolution: {integrity: sha512-aXRTYEvqJh/r8Wgu+FNi1NZujHHXFB5sncButJ+5VoVa7Z251xIS7a6pHFUVzcLvV9ePkpsynO9h/EkSEk1MCA==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@unhead/addons': 1.9.1(rollup@4.13.0) + defu: 6.1.4 + escape-string-regexp: 5.0.0 + fast-glob: 3.3.2 + image-size: 1.1.1 + nuxt-site-config: 2.2.11(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + nuxt-site-config-kit: 2.2.11(rollup@4.13.0)(vue@3.4.21) + pathe: 1.1.2 + ufo: 1.5.3 + transitivePeerDependencies: + - '@nuxt/devtools' + - '@unocss/webpack' + - '@vue/compiler-core' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - nuxt + - postcss + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - vite + - vue + - webpack + dev: true + + /nuxt-simple-robots@4.0.0-rc.16(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0): + resolution: {integrity: sha512-jRgDvjRrRgTAC4WOLs1dx3mHlVa5VHATgDhk8+0Mp5H4WjBipZGrZs9WOWX5Jymh17oTIESVKGHZRhaRiP+AKA==} + dependencies: + '@nuxt/devtools-kit': 1.1.4(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + consola: 3.2.3 + defu: 6.1.4 + flatted: 3.3.1 + floating-vue: 5.2.2(@nuxt/kit@3.11.1)(vue@3.4.21) + nuxt-icon: 0.6.10(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21) + nuxt-site-config: 2.2.11(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + nuxt-site-config-kit: 2.2.11(rollup@4.13.0)(vue@3.4.21) + pathe: 1.1.2 + pkg-types: 1.0.3 + shiki: 1.2.0 + sirv: 2.0.4 + std-env: 3.7.0 + ufo: 1.5.3 + transitivePeerDependencies: + - '@nuxt/devtools' + - '@unocss/webpack' + - '@vue/compiler-core' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - nuxt + - postcss + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - vite + - vue + - webpack + dev: true + + /nuxt-site-config-kit@2.2.11(rollup@4.13.0)(vue@3.4.21): + resolution: {integrity: sha512-ApoVYvJDJq0//Y20C2sn6NjWV1Xg+zfyRfPVKs1GKtuk0fvUKzkmedwt6V15MhkMdNBIYwaMB0wfWzm6Pw9DyA==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@nuxt/schema': 3.11.1(rollup@4.13.0) + pkg-types: 1.0.3 + site-config-stack: 2.2.11(vue@3.4.21) + std-env: 3.7.0 + ufo: 1.5.3 + transitivePeerDependencies: + - rollup + - supports-color + - vue + dev: true + + /nuxt-site-config-kit@2.2.7(rollup@4.13.0)(vue@3.4.21): + resolution: {integrity: sha512-d7lJchV7J8AFMZ1cscJ0WK4gWYPneGn1jzL7NOyk8X59KpxmJqhqKQF/eJhb1oG9HY1HE4GCa7xYi0Up9S4wRg==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@nuxt/schema': 3.11.1(rollup@4.13.0) + pkg-types: 1.0.3 + site-config-stack: 2.2.7(vue@3.4.21) + std-env: 3.7.0 + ufo: 1.5.3 + transitivePeerDependencies: + - rollup + - supports-color + - vue + dev: true + + /nuxt-site-config@2.2.11(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0): + resolution: {integrity: sha512-yYR5g9wjc3aULpyv1Ne7FlmXA8pXr1JVf2ZOx40TT7DkGY86zNntOF9RWaQjrvFgw0fTJAQyrNxdbzWJc8O+mA==} + dependencies: + '@nuxt/devtools-kit': 1.1.4(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6) + '@nuxt/devtools-ui-kit': 1.1.4(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(fuse.js@7.0.0)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@nuxt/schema': 3.11.1(rollup@4.13.0) + floating-vue: 5.2.2(@nuxt/kit@3.11.1)(vue@3.4.21) + nuxt-site-config-kit: 2.2.11(rollup@4.13.0)(vue@3.4.21) + pathe: 1.1.2 + pkg-types: 1.0.3 + shiki: 1.2.1 + sirv: 2.0.4 + site-config-stack: 2.2.11(vue@3.4.21) + ufo: 1.5.3 + transitivePeerDependencies: + - '@nuxt/devtools' + - '@unocss/webpack' + - '@vue/compiler-core' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - nuxt + - postcss + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - vite + - vue + - webpack + dev: true + + /nuxt-site-config@2.2.7(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(fuse.js@7.0.0)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0): + resolution: {integrity: sha512-J99X2EUvDzOAOYxpx71FLNVsmMGXfwsZE61uc6vA5oC0zW6cKq6VHH+YIeQsobeUwmGrd/IjfpwUj2q6+0460w==} + dependencies: + '@nuxt/devtools-kit': 1.1.4(nuxt@3.11.1)(rollup@4.13.0)(vite@5.2.6) + '@nuxt/devtools-ui-kit': 1.1.4(@nuxt/devtools@1.1.4)(@vue/compiler-core@3.4.21)(fuse.js@7.0.0)(nuxt@3.11.1)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@nuxt/schema': 3.11.1(rollup@4.13.0) + floating-vue: 5.2.0(@nuxt/kit@3.11.1)(vue@3.4.21) + nuxt-site-config-kit: 2.2.7(rollup@4.13.0)(vue@3.4.21) + pathe: 1.1.2 + pkg-types: 1.0.3 + shikiji: 0.10.2 + sirv: 2.0.4 + site-config-stack: 2.2.7(vue@3.4.21) + ufo: 1.5.3 + transitivePeerDependencies: + - '@nuxt/devtools' + - '@unocss/webpack' + - '@vue/compiler-core' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - nuxt + - postcss + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - vite + - vue + - webpack + dev: true + + /nuxt-splide@1.1.0(rollup@4.13.0): + resolution: {integrity: sha512-uBrztrbdASrxqh23hZocZPcC2eWtuMS9HwYXojGGInTHKOw6lDhmpQi7Dp+WgWlBFeaw3TnJ0zKW9Qjl1a59tw==} + dependencies: + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@splidejs/vue-splide': 0.6.12 + defu: 6.1.4 + transitivePeerDependencies: + - rollup + - supports-color + dev: true - /nuxt@3.10.3(@types/node@20.11.24)(eslint@8.57.0)(typescript@5.3.3)(vite@5.1.4): - resolution: {integrity: sha512-NchGNiiz9g/ErJAb462W/lpX2NqcXYb9hugySKWvLXNdrjeAPiJ2/7mhgwUSiZA9MpjuQg3saiEajr1zlRIOCg==} + /nuxt@3.11.1(@types/node@20.11.30)(@unocss/reset@0.58.7)(floating-vue@5.2.2)(rollup@4.13.0)(typescript@5.4.3)(unocss@0.58.7)(vite@5.2.6)(vue-tsc@2.0.7): + resolution: {integrity: sha512-CsncE1dxP0cmOYT+PBdjMD0bOK8eZizG5tgNWUOJAAAtU45sO38maoBumYYL2kUpT/SC/dMP+831DAcVPvi9pQ==} engines: {node: ^14.18.0 || >=16.10.0} hasBin: true peerDependencies: @@ -8041,25 +13532,25 @@ packages: optional: true dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.0.8(nuxt@3.10.3)(vite@5.1.4) - '@nuxt/kit': 3.10.3 - '@nuxt/schema': 3.10.3 - '@nuxt/telemetry': 2.5.3 + '@nuxt/devtools': 1.1.4(@unocss/reset@0.58.7)(floating-vue@5.2.2)(nuxt@3.11.1)(rollup@4.13.0)(unocss@0.58.7)(vite@5.2.6)(vue@3.4.21) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@nuxt/schema': 3.11.1(rollup@4.13.0) + '@nuxt/telemetry': 2.5.3(rollup@4.13.0) '@nuxt/ui-templates': 1.3.1 - '@nuxt/vite-builder': 3.10.3(@types/node@20.11.24)(eslint@8.57.0)(typescript@5.3.3)(vue@3.4.21) - '@types/node': 20.11.24 - '@unhead/dom': 1.8.10 - '@unhead/ssr': 1.8.10 - '@unhead/vue': 1.8.10(vue@3.4.21) + '@nuxt/vite-builder': 3.11.1(@types/node@20.11.30)(rollup@4.13.0)(typescript@5.4.3)(vue-tsc@2.0.7)(vue@3.4.21) + '@types/node': 20.11.30 + '@unhead/dom': 1.9.1 + '@unhead/ssr': 1.9.1 + '@unhead/vue': 1.9.1(vue@3.4.21) '@vue/shared': 3.4.21 acorn: 8.11.3 - c12: 1.9.0 + c12: 1.10.0 chokidar: 3.6.0 cookie-es: 1.0.0 defu: 6.1.4 destr: 2.0.3 devalue: 4.3.2 - esbuild: 0.20.1 + esbuild: 0.20.2 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 fs-extra: 11.2.0 @@ -8069,30 +13560,31 @@ packages: jiti: 1.21.0 klona: 2.0.6 knitwork: 1.0.0 - magic-string: 0.30.7 + magic-string: 0.30.8 mlly: 1.6.1 - nitropack: 2.9.1 - nuxi: 3.10.1 - nypm: 0.3.6 - ofetch: 1.3.3 + nitropack: 2.9.5 + nuxi: 3.11.1 + nypm: 0.3.8 + ofetch: 1.3.4 ohash: 1.1.3 pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.0.3 - radix3: 1.1.0 + radix3: 1.1.2 scule: 1.3.0 std-env: 3.7.0 strip-literal: 2.0.0 - ufo: 1.4.0 + ufo: 1.5.3 ultrahtml: 1.5.3 uncrypto: 0.1.3 unctx: 2.3.1 unenv: 1.9.0 - unimport: 3.7.1(rollup@4.12.0) - unplugin: 1.8.0 - unplugin-vue-router: 0.7.0(vue-router@4.3.0)(vue@3.4.21) + unimport: 3.7.1(rollup@4.13.0) + unplugin: 1.10.0 + unplugin-vue-router: 0.7.0(rollup@4.13.0)(vue-router@4.3.0)(vue@3.4.21) + unstorage: 1.10.2(ioredis@5.3.2) untyped: 1.4.2 - vue: 3.4.21(typescript@5.3.3) + vue: 3.4.21(typescript@5.4.3) vue-bundle-renderer: 2.0.0 vue-devtools-stub: 0.1.0 vue-router: 4.3.0(vue@3.4.21) @@ -8107,21 +13599,34 @@ packages: - '@libsql/client' - '@netlify/blobs' - '@planetscale/database' + - '@unocss/reset' - '@upstash/redis' - '@vercel/kv' + - '@vue/composition-api' + - async-validator + - axios - better-sqlite3 - bluebird - bufferutil + - change-case + - drauu - drizzle-orm - encoding - eslint + - floating-vue + - fuse.js - idb-keyval + - ioredis + - jwt-decode - less - lightningcss - meow + - nprogress - optionator + - qrcode - rollup - sass + - sortablejs - stylelint - stylus - sugarss @@ -8129,34 +13634,49 @@ packages: - terser - typescript - uWebSockets.js + - universal-cookie + - unocss - utf-8-validate - vite - vls - vti - vue-tsc - xml2js - dev: false + dev: true - /nypm@0.3.6: - resolution: {integrity: sha512-2CATJh3pd6CyNfU5VZM7qSwFu0ieyabkEdnogE30Obn1czrmOYiZ8DOZLe1yBdLKWoyD3Mcy2maUs+0MR3yVjQ==} + /nypm@0.3.8: + resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} engines: {node: ^14.16.0 || >=16.10.0} hasBin: true dependencies: citty: 0.1.6 + consola: 3.2.3 execa: 8.0.1 pathe: 1.1.2 - ufo: 1.4.0 - dev: false + ufo: 1.5.3 /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - dev: false + dev: true + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: true /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true + /object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + dev: true + /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -8172,29 +13692,29 @@ packages: object-keys: 1.1.1 dev: true - /ofetch@1.3.3: - resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} + /ofetch@1.3.4: + resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} dependencies: destr: 2.0.3 - node-fetch-native: 1.6.2 - ufo: 1.4.0 - dev: false + node-fetch-native: 1.6.4 + ufo: 1.5.3 + dev: true /ohash@1.1.3: resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} - dev: false /on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 - dev: false + dev: true /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 + dev: true /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} @@ -8209,15 +13729,27 @@ packages: dependencies: mimic-fn: 4.0.0 - /open@10.0.4: - resolution: {integrity: sha512-oujJ/FFr7ra6/7gJuQ4ZJJ8Gf2VHM0J3J/W7IvH++zaqEzacWVxzK++NiVY5NLHTTj7u/jNH5H3Ei9biL31Lng==} + /only@0.0.2: + resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} + dev: true + + /open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} dependencies: default-browser: 5.2.1 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 is-wsl: 3.1.0 - dev: false + dev: true + + /open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true /open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} @@ -8226,10 +13758,10 @@ packages: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 - dev: false + dev: true - /openapi-typescript@6.7.4: - resolution: {integrity: sha512-EZyeW9Wy7UDCKv0iYmKrq2pVZtquXiD/YHiUClAKqiMi42nodx/EQH11K6fLqjt1IZlJmVokrAsExsBMM2RROQ==} + /openapi-typescript@6.7.5: + resolution: {integrity: sha512-ZD6dgSZi0u1QCP55g8/2yS5hNJfIpgqsSGHLxxdOjvY7eIrXzj271FJEQw33VwsZ6RCtO/NOuhxa7GBWmEudyA==} hasBin: true dependencies: ansi-colors: 4.1.3 @@ -8238,7 +13770,7 @@ packages: supports-color: 9.4.0 undici: 5.28.3 yargs-parser: 21.1.1 - dev: false + dev: true /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} @@ -8250,6 +13782,7 @@ packages: levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 + dev: true /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} @@ -8265,20 +13798,19 @@ packages: engines: {node: '>=8'} dependencies: p-map: 2.1.0 - dev: true /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} dependencies: p-try: 2.2.0 - dev: true /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 + dev: true /p-limit@4.0.0: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} @@ -8287,18 +13819,25 @@ packages: yocto-queue: 1.0.0 dev: true + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + dependencies: + yocto-queue: 1.0.0 + dev: true + /p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} dependencies: p-limit: 2.3.0 - dev: true /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} dependencies: p-limit: 3.1.0 + dev: true /p-locate@6.0.0: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} @@ -8310,19 +13849,17 @@ packages: /p-map@2.1.0: resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} engines: {node: '>=6'} - dev: true /p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} dependencies: aggregate-error: 3.1.0 - dev: false + dev: true /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - dev: true /pacote@17.0.6: resolution: {integrity: sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==} @@ -8346,17 +13883,22 @@ packages: read-package-json-fast: 3.0.2 sigstore: 2.2.2 ssri: 10.0.5 - tar: 6.2.0 + tar: 6.2.1 transitivePeerDependencies: - bluebird - supports-color - dev: false + dev: true + + /pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + dev: true /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} dependencies: callsites: 3.1.0 + dev: true /parent-module@2.0.0: resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} @@ -8365,6 +13907,13 @@ packages: callsites: 3.1.0 dev: true + /parse-css-color@0.2.1: + resolution: {integrity: sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg==} + dependencies: + color-name: 1.1.4 + hex-rgb: 4.3.0 + dev: true + /parse-entities@2.0.0: resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} dependencies: @@ -8395,50 +13944,51 @@ packages: dependencies: git-config-path: 2.0.0 ini: 1.3.8 - dev: false - - /parse-gitignore@2.0.0: - resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} - engines: {node: '>=14'} dev: true /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 dev: true - /parse-json@7.1.1: - resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} - engines: {node: '>=16'} - dependencies: - '@babel/code-frame': 7.23.5 - error-ex: 1.3.2 - json-parse-even-better-errors: 3.0.1 - lines-and-columns: 2.0.4 - type-fest: 3.13.1 - dev: true - /parse-path@7.0.0: resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} dependencies: protocols: 2.0.1 - dev: false + dev: true /parse-url@8.1.0: resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} dependencies: parse-path: 7.0.0 - dev: false + dev: true + + /parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + dependencies: + domhandler: 5.0.3 + parse5: 7.1.2 + dev: true + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: true /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} - dev: false + dev: true + + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -8452,6 +14002,7 @@ packages: /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} + dev: true /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} @@ -8463,6 +14014,7 @@ packages: /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true /path-scurry@1.10.1: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} @@ -8470,11 +14022,15 @@ packages: dependencies: lru-cache: 10.2.0 minipass: 7.0.4 + dev: true + + /path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + dev: true /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - dev: true /path-type@5.0.0: resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} @@ -8483,9 +14039,26 @@ packages: /pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + + /pause-stream@0.0.11: + resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} + dependencies: + through: 2.3.8 + dev: true + /perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} - dev: false + + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + dependencies: + '@types/estree': 1.0.5 + estree-walker: 3.0.3 + is-reference: 3.0.2 + dev: true /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -8494,20 +14067,49 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - /picomatch@4.0.1: - resolution: {integrity: sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==} - engines: {node: '>=12'} - dev: true - /pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} hasBin: true dev: true + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true + /pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} + + /pinia-plugin-persistedstate@3.2.1(pinia@2.1.7): + resolution: {integrity: sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==} + peerDependencies: + pinia: ^2.0.0 + dependencies: + pinia: 2.1.7(typescript@5.4.3)(vue@3.4.21) + dev: true + + /pinia@2.1.7(typescript@5.4.3)(vue@3.4.21): + resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==} + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.3.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + dependencies: + '@vue/devtools-api': 6.6.1 + typescript: 5.4.3 + vue: 3.4.21(typescript@5.4.3) + vue-demi: 0.14.7(vue@3.4.21) + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} dev: true /pkg-dir@4.2.0: @@ -8524,29 +14126,102 @@ packages: mlly: 1.6.1 pathe: 1.1.2 + /playwright-core@1.42.1: + resolution: {integrity: sha512-mxz6zclokgrke9p1vtdy/COWBH+eOZgYUVVU34C73M+4j4HLlQJHtfcqiqqxpP0o8HhMkflvfbquLX5dg6wlfA==} + engines: {node: '>=16'} + hasBin: true + dev: true + /pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} dev: true + /portfinder@1.0.32: + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} + dependencies: + async: 2.6.4 + debug: 3.2.7 + mkdirp: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: true + /possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} dev: true - /postcss-calc@9.0.1(postcss@8.4.35): + /postcss-attribute-case-insensitive@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-KHkmCILThWBRtg+Jn1owTnHPnFit4OkqS+eKiGEOPIGke54DCeYGJ6r0Fx/HjfE9M9kznApCLcU0DvnPchazMQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + + /postcss-calc@9.0.1(postcss@8.4.38): resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 - dev: false + dev: true + + /postcss-clamp@4.1.0(postcss@8.4.38): + resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} + engines: {node: '>=7.6.0'} + peerDependencies: + postcss: ^8.4.6 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-color-functional-notation@6.0.7(postcss@8.4.38): + resolution: {integrity: sha512-VwzaVfu1kEYDK2yM8ixeKA/QbgQ8k0uxpRevLH9Wam+R3C1sg68vnRB7m2AMhYfjqb5khp4p0EQk5aO90ASAkw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + dev: true + + /postcss-color-hex-alpha@9.0.4(postcss@8.4.38): + resolution: {integrity: sha512-XQZm4q4fNFqVCYMGPiBjcqDhuG7Ey2xrl99AnDJMyr5eDASsAGalndVgHZF8i97VFNy1GQeZc4q2ydagGmhelQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-color-rebeccapurple@9.0.3(postcss@8.4.38): + resolution: {integrity: sha512-ruBqzEFDYHrcVq3FnW3XHgwRqVMrtEPLBtD7K2YmsLKVc2jbkxzzNEctJKsPCpDZ+LeMHLKRDoSShVefGc+CkQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /postcss-colormin@6.0.3(postcss@8.4.35): - resolution: {integrity: sha512-ECpkS+UZRyAtu/kjive2/1mihP+GNtgC8kcdU8ueWZi1ZVxMNnRziCLdhrWECJhEtSWijfX2Cl9XTTCK/hjGaA==} + /postcss-colormin@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 @@ -8554,286 +14229,698 @@ packages: browserslist: 4.23.0 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true - /postcss-convert-values@6.0.4(postcss@8.4.35): - resolution: {integrity: sha512-YT2yrGzPXoQD3YeA2kBo/696qNwn7vI+15AOS2puXWEvSWqdCqlOyDWRy5GNnOc9ACRGOkuQ4ESQEqPJBWt/GA==} + /postcss-convert-values@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.23.0 - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true + + /postcss-custom-media@10.0.4(postcss@8.4.38): + resolution: {integrity: sha512-Ubs7O3wj2prghaKRa68VHBvuy3KnTQ0zbGwqDYY1mntxJD0QL2AeiAy+AMfl3HBedTCVr2IcFNktwty9YpSskA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/cascade-layer-name-parser': 1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/media-query-list-parser': 2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + postcss: 8.4.38 + dev: true + + /postcss-custom-properties@13.3.6(postcss@8.4.38): + resolution: {integrity: sha512-vVVIwQbJiIz+PBLMIWA6XMi53Zg66/f474KolA7x0Das6EwkATc/9ZvM6zZx2gs7ZhcgVHjmWBbHkK9FlCgLeA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/cascade-layer-name-parser': 1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-custom-selectors@7.1.8(postcss@8.4.38): + resolution: {integrity: sha512-fqDkGSEsO7+oQaqdRdR8nwwqH+N2uk6LE/2g4myVJJYz/Ly418lHKEleKTdV/GzjBjFcG4n0dbfuH/Pd2BE8YA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/cascade-layer-name-parser': 1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + + /postcss-dir-pseudo-class@8.0.1(postcss@8.4.38): + resolution: {integrity: sha512-uULohfWBBVoFiZXgsQA24JV6FdKIidQ+ZqxOouhWwdE+qJlALbkS5ScB43ZTjPK+xUZZhlaO/NjfCt5h4IKUfw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true - /postcss-discard-comments@6.0.1(postcss@8.4.35): - resolution: {integrity: sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==} + /postcss-discard-comments@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 - dev: false + postcss: 8.4.38 + dev: true - /postcss-discard-duplicates@6.0.2(postcss@8.4.35): - resolution: {integrity: sha512-U2rsj4w6pAGROCCcD13LP2eBIi1whUsXs4kgE6xkIuGfkbxCBSKhkCTWyowFd66WdVlLv0uM1euJKIgmdmZObg==} + /postcss-discard-duplicates@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 - dev: false + postcss: 8.4.38 + dev: true - /postcss-discard-empty@6.0.2(postcss@8.4.35): - resolution: {integrity: sha512-rj6pVC2dVCJrP0Y2RkYTQEbYaCf4HEm+R/2StQgJqGHxAa3+KcYslNQhcRqjLHtl/4wpzipJluaJLqBj6d5eDQ==} + /postcss-discard-empty@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 - dev: false + postcss: 8.4.38 + dev: true - /postcss-discard-overridden@6.0.1(postcss@8.4.35): - resolution: {integrity: sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==} + /postcss-discard-overridden@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + dev: true + + /postcss-double-position-gradients@5.0.5(postcss@8.4.38): + resolution: {integrity: sha512-26Tx4BfoxMNO9C89Nk56bfGv4jAwdDVgrQOyHZOP/6/D+xuOBf306KzTjHC2oBzaIIVtX+famOWHv4raxMjJMQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-focus-visible@9.0.1(postcss@8.4.38): + resolution: {integrity: sha512-N2VQ5uPz3Z9ZcqI5tmeholn4d+1H14fKXszpjogZIrFbhaq0zNAtq8sAnw6VLiqGbL8YBzsnu7K9bBkTqaRimQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + + /postcss-focus-within@8.0.1(postcss@8.4.38): + resolution: {integrity: sha512-NFU3xcY/xwNaapVb+1uJ4n23XImoC86JNwkY/uduytSl2s9Ekc2EpzmRR63+ExitnW3Mab3Fba/wRPCT5oDILA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + + /postcss-font-variant@5.0.0(postcss@8.4.38): + resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.38 + dev: true + + /postcss-gap-properties@5.0.1(postcss@8.4.38): + resolution: {integrity: sha512-k2z9Cnngc24c0KF4MtMuDdToROYqGMMUQGcE6V0odwjHyOHtaDBlLeRBV70y9/vF7KIbShrTRZ70JjsI1BZyWw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + dev: true + + /postcss-html@1.6.0: + resolution: {integrity: sha512-OWgQ9/Pe23MnNJC0PL4uZp8k0EDaUvqpJFSiwFxOLClAhmD7UEisyhO3x5hVsD4xFrjReVTXydlrMes45dJ71w==} + engines: {node: ^12 || >=14} + dependencies: + htmlparser2: 8.0.2 + js-tokens: 8.0.3 + postcss: 8.4.38 + postcss-safe-parser: 6.0.0(postcss@8.4.38) + dev: true + + /postcss-image-set-function@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-i2bXrBYzfbRzFnm+pVuxVePSTCRiNmlfssGI4H0tJQvDue+yywXwUxe68VyzXs7cGtMaH6MCLY6IbCShrSroCw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-import@15.1.0(postcss@8.4.38): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + dev: true + + /postcss-js@4.0.1(postcss@8.4.38): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.38 + dev: true + + /postcss-lab-function@6.0.12(postcss@8.4.38): + resolution: {integrity: sha512-flHW2jdRCRe8ClhMgrylR1BCiyyqLLvp1qKfO5wuAclUihldfRsoDIFQWFVW7rJbruil9/LCoHNUvY9JwTlLPw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 + dev: true + + /postcss-load-config@4.0.2(postcss@8.4.38): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.1.1 + postcss: 8.4.38 + yaml: 2.4.1 + dev: true + + /postcss-logical@7.0.1(postcss@8.4.38): + resolution: {integrity: sha512-8GwUQZE0ri0K0HJHkDv87XOLC8DE0msc+HoWLeKdtjDZEwpZ5xuK3QdV6FhmHSQW40LPkg43QzvATRAI3LsRkg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - postcss: 8.4.35 - dev: false + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + dev: true - /postcss-merge-longhand@6.0.3(postcss@8.4.35): - resolution: {integrity: sha512-kF/y3DU8CRt+SX3tP/aG+2gkZI2Z7OXDsPU7FgxIJmuyhQQ1EHceIYcsp/alvzCm2P4c37Sfdu8nNrHc+YeyLg==} + /postcss-merge-longhand@6.0.5(postcss@8.4.38): + resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - stylehacks: 6.0.3(postcss@8.4.35) - dev: false + stylehacks: 6.1.1(postcss@8.4.38) + dev: true - /postcss-merge-rules@6.0.4(postcss@8.4.35): - resolution: {integrity: sha512-97iF3UJ5v8N1BWy38y+0l+Z8o5/9uGlEgtWic2PJPzoRrLB6Gxg8TVG93O0EK52jcLeMsywre26AUlX1YAYeHA==} + /postcss-merge-rules@6.1.1(postcss@8.4.38): + resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 - cssnano-utils: 4.0.1(postcss@8.4.35) - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 - dev: false + cssnano-utils: 4.0.2(postcss@8.4.38) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true - /postcss-minify-font-values@6.0.2(postcss@8.4.35): - resolution: {integrity: sha512-IedzbVMoX0a7VZWjSYr5qJ6C37rws8kl8diPBeMZLJfWKkgXuMFY5R/OxPegn/q9tK9ztd0XRH3aR0u2t+A7uQ==} + /postcss-minify-font-values@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true - /postcss-minify-gradients@6.0.2(postcss@8.4.35): - resolution: {integrity: sha512-vP5mF7iI6/5fcpv+rSfwWQekOE+8I1i7/7RjZPGuIjj6eUaZVeG4XZYZrroFuw1WQd51u2V32wyQFZ+oYdE7CA==} + /postcss-minify-gradients@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: colord: 2.9.3 - cssnano-utils: 4.0.1(postcss@8.4.35) - postcss: 8.4.35 + cssnano-utils: 4.0.2(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true - /postcss-minify-params@6.0.3(postcss@8.4.35): - resolution: {integrity: sha512-j4S74d3AAeCK5eGdQndXSrkxusV2ekOxbXGnlnZthMyZBBvSDiU34CihTASbJxuVB3bugudmwolS7+Dgs5OyOQ==} + /postcss-minify-params@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.23.0 - cssnano-utils: 4.0.1(postcss@8.4.35) - postcss: 8.4.35 + cssnano-utils: 4.0.2(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true - /postcss-minify-selectors@6.0.2(postcss@8.4.35): - resolution: {integrity: sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==} + /postcss-minify-selectors@6.0.4(postcss@8.4.38): + resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 - dev: false + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + + /postcss-nested@6.0.1(postcss@8.4.38): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + + /postcss-nesting@12.1.0(postcss@8.4.38): + resolution: {integrity: sha512-QOYnosaZ+mlP6plQrAxFw09UUp2Sgtxj1BVHN+rSVbtV0Yx48zRt9/9F/ZOoxOKBBEsaJk2MYhhVRjeRRw5yuw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/selector-resolve-nested': 1.1.0(postcss-selector-parser@6.0.16) + '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.16) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true - /postcss-normalize-charset@6.0.1(postcss@8.4.35): - resolution: {integrity: sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==} + /postcss-normalize-charset@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 - dev: false + postcss: 8.4.38 + dev: true - /postcss-normalize-display-values@6.0.1(postcss@8.4.35): - resolution: {integrity: sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==} + /postcss-normalize-display-values@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true - /postcss-normalize-positions@6.0.1(postcss@8.4.35): - resolution: {integrity: sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==} + /postcss-normalize-positions@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true - /postcss-normalize-repeat-style@6.0.1(postcss@8.4.35): - resolution: {integrity: sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==} + /postcss-normalize-repeat-style@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true - /postcss-normalize-string@6.0.1(postcss@8.4.35): - resolution: {integrity: sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==} + /postcss-normalize-string@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true - /postcss-normalize-timing-functions@6.0.1(postcss@8.4.35): - resolution: {integrity: sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==} + /postcss-normalize-timing-functions@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true - /postcss-normalize-unicode@6.0.3(postcss@8.4.35): - resolution: {integrity: sha512-T2Bb3gXz0ASgc3ori2dzjv6j/P2IantreaC6fT8tWjqYUiqMAh5jGIkdPwEV2FaucjQlCLeFJDJh2BeSugE1ig==} + /postcss-normalize-unicode@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.23.0 - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true - /postcss-normalize-url@6.0.1(postcss@8.4.35): - resolution: {integrity: sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==} + /postcss-normalize-url@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true - /postcss-normalize-whitespace@6.0.1(postcss@8.4.35): - resolution: {integrity: sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==} + /postcss-normalize-whitespace@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true + + /postcss-opacity-percentage@2.0.0(postcss@8.4.38): + resolution: {integrity: sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.38 + dev: true - /postcss-ordered-values@6.0.1(postcss@8.4.35): - resolution: {integrity: sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==} + /postcss-ordered-values@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - cssnano-utils: 4.0.1(postcss@8.4.35) - postcss: 8.4.35 + cssnano-utils: 4.0.2(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true + + /postcss-overflow-shorthand@5.0.1(postcss@8.4.38): + resolution: {integrity: sha512-XzjBYKLd1t6vHsaokMV9URBt2EwC9a7nDhpQpjoPk2HRTSQfokPfyAS/Q7AOrzUu6q+vp/GnrDBGuj/FCaRqrQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-page-break@3.0.4(postcss@8.4.38): + resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} + peerDependencies: + postcss: ^8 + dependencies: + postcss: 8.4.38 + dev: true + + /postcss-place@9.0.1(postcss@8.4.38): + resolution: {integrity: sha512-JfL+paQOgRQRMoYFc2f73pGuG/Aw3tt4vYMR6UA3cWVMxivviPTnMFnFTczUJOA4K2Zga6xgQVE+PcLs64WC8Q==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-preset-env@9.5.2(postcss@8.4.38): + resolution: {integrity: sha512-/KIAHELdg5BxsKA/Vc6Nok/66EM7lps8NulKcQWX2S52HdzxAqh+6HcuAFj7trRSW587vlOA4zCjlRFgR+W6Ag==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/postcss-cascade-layers': 4.0.3(postcss@8.4.38) + '@csstools/postcss-color-function': 3.0.12(postcss@8.4.38) + '@csstools/postcss-color-mix-function': 2.0.12(postcss@8.4.38) + '@csstools/postcss-exponential-functions': 1.0.5(postcss@8.4.38) + '@csstools/postcss-font-format-keywords': 3.0.2(postcss@8.4.38) + '@csstools/postcss-gamut-mapping': 1.0.5(postcss@8.4.38) + '@csstools/postcss-gradients-interpolation-method': 4.0.13(postcss@8.4.38) + '@csstools/postcss-hwb-function': 3.0.11(postcss@8.4.38) + '@csstools/postcss-ic-unit': 3.0.5(postcss@8.4.38) + '@csstools/postcss-initial': 1.0.1(postcss@8.4.38) + '@csstools/postcss-is-pseudo-class': 4.0.5(postcss@8.4.38) + '@csstools/postcss-light-dark-function': 1.0.1(postcss@8.4.38) + '@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.4.38) + '@csstools/postcss-logical-overflow': 1.0.1(postcss@8.4.38) + '@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.4.38) + '@csstools/postcss-logical-resize': 2.0.1(postcss@8.4.38) + '@csstools/postcss-logical-viewport-units': 2.0.7(postcss@8.4.38) + '@csstools/postcss-media-minmax': 1.1.4(postcss@8.4.38) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.7(postcss@8.4.38) + '@csstools/postcss-nested-calc': 3.0.2(postcss@8.4.38) + '@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.4.38) + '@csstools/postcss-oklab-function': 3.0.12(postcss@8.4.38) + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.38) + '@csstools/postcss-relative-color-syntax': 2.0.12(postcss@8.4.38) + '@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.4.38) + '@csstools/postcss-stepped-value-functions': 3.0.6(postcss@8.4.38) + '@csstools/postcss-text-decoration-shorthand': 3.0.4(postcss@8.4.38) + '@csstools/postcss-trigonometric-functions': 3.0.6(postcss@8.4.38) + '@csstools/postcss-unset-value': 3.0.1(postcss@8.4.38) + autoprefixer: 10.4.19(postcss@8.4.38) + browserslist: 4.23.0 + css-blank-pseudo: 6.0.1(postcss@8.4.38) + css-has-pseudo: 6.0.2(postcss@8.4.38) + css-prefers-color-scheme: 9.0.1(postcss@8.4.38) + cssdb: 7.11.2 + postcss: 8.4.38 + postcss-attribute-case-insensitive: 6.0.3(postcss@8.4.38) + postcss-clamp: 4.1.0(postcss@8.4.38) + postcss-color-functional-notation: 6.0.7(postcss@8.4.38) + postcss-color-hex-alpha: 9.0.4(postcss@8.4.38) + postcss-color-rebeccapurple: 9.0.3(postcss@8.4.38) + postcss-custom-media: 10.0.4(postcss@8.4.38) + postcss-custom-properties: 13.3.6(postcss@8.4.38) + postcss-custom-selectors: 7.1.8(postcss@8.4.38) + postcss-dir-pseudo-class: 8.0.1(postcss@8.4.38) + postcss-double-position-gradients: 5.0.5(postcss@8.4.38) + postcss-focus-visible: 9.0.1(postcss@8.4.38) + postcss-focus-within: 8.0.1(postcss@8.4.38) + postcss-font-variant: 5.0.0(postcss@8.4.38) + postcss-gap-properties: 5.0.1(postcss@8.4.38) + postcss-image-set-function: 6.0.3(postcss@8.4.38) + postcss-lab-function: 6.0.12(postcss@8.4.38) + postcss-logical: 7.0.1(postcss@8.4.38) + postcss-nesting: 12.1.0(postcss@8.4.38) + postcss-opacity-percentage: 2.0.0(postcss@8.4.38) + postcss-overflow-shorthand: 5.0.1(postcss@8.4.38) + postcss-page-break: 3.0.4(postcss@8.4.38) + postcss-place: 9.0.1(postcss@8.4.38) + postcss-pseudo-class-any-link: 9.0.1(postcss@8.4.38) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.38) + postcss-selector-not: 7.0.2(postcss@8.4.38) + dev: true + + /postcss-pseudo-class-any-link@9.0.1(postcss@8.4.38): + resolution: {integrity: sha512-cKYGGZ9yzUZi+dZd7XT2M8iSDfo+T2Ctbpiizf89uBTBfIpZpjvTavzIJXpCReMVXSKROqzpxClNu6fz4DHM0Q==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true - /postcss-reduce-initial@6.0.3(postcss@8.4.35): - resolution: {integrity: sha512-w4QIR9pEa1N4xMx3k30T1vLZl6udVK2RmNqrDXhBXX9L0mBj2a8ADs8zkbaEH7eUy1m30Wyr5EBgHN31Yq1JvA==} + /postcss-reduce-initial@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 - postcss: 8.4.35 - dev: false + postcss: 8.4.38 + dev: true - /postcss-reduce-transforms@6.0.1(postcss@8.4.35): - resolution: {integrity: sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==} + /postcss-reduce-transforms@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false + dev: true + + /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.38): + resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} + peerDependencies: + postcss: ^8.0.3 + dependencies: + postcss: 8.4.38 + dev: true + + /postcss-resolve-nested-selector@0.1.1: + resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} + dev: true + + /postcss-safe-parser@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: 8.4.38 + dev: true + + /postcss-safe-parser@7.0.0(postcss@8.4.38): + resolution: {integrity: sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==} + engines: {node: '>=18.0'} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + dev: true + + /postcss-scss@4.0.9(postcss@8.4.38): + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.29 + dependencies: + postcss: 8.4.38 + dev: true + + /postcss-selector-not@7.0.2(postcss@8.4.38): + resolution: {integrity: sha512-/SSxf/90Obye49VZIfc0ls4H0P6i6V1iHv0pzZH8SdgvZOPFkF37ef1r5cyWcMflJSFJ5bfuoluTnFnBBFiuSA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + + /postcss-selector-parser@6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true - /postcss-selector-parser@6.0.15: - resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + /postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 + dev: true + + /postcss-sorting@8.0.2(postcss@8.4.38): + resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==} + peerDependencies: + postcss: ^8.4.20 + dependencies: + postcss: 8.4.38 + dev: true - /postcss-svgo@6.0.2(postcss@8.4.35): - resolution: {integrity: sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==} + /postcss-svgo@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 svgo: 3.2.0 - dev: false + dev: true - /postcss-unique-selectors@6.0.2(postcss@8.4.35): - resolution: {integrity: sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==} + /postcss-unique-selectors@6.0.4(postcss@8.4.38): + resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 - dev: false + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: false + dev: true - /postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 - source-map-js: 1.0.2 + source-map-js: 1.2.0 + + /prebuild-install@7.1.2: + resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} + engines: {node: '>=10'} + hasBin: true + requiresBuild: true + dependencies: + detect-libc: 2.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.56.0 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: true + optional: true /preferred-pm@3.1.3: resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} @@ -8848,6 +14935,7 @@ packages: /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + dev: true /prettier-linter-helpers@1.0.0: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} @@ -8883,7 +14971,6 @@ packages: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true - dev: true /prettier@3.2.5: resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} @@ -8894,15 +14981,39 @@ packages: /pretty-bytes@6.1.1: resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} - dev: false + dev: true + + /pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + dev: true + + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true /proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: false + dev: true + + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + dev: true /promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} @@ -8911,7 +15022,7 @@ packages: peerDependenciesMeta: bluebird: optional: true - dev: false + dev: true /promise-retry@2.0.1: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} @@ -8919,7 +15030,7 @@ packages: dependencies: err-code: 2.0.3 retry: 0.12.0 - dev: false + dev: true /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} @@ -8927,14 +15038,39 @@ packages: dependencies: kleur: 3.0.3 sisteransi: 1.0.5 + dev: true + + /property-information@6.4.1: + resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} + dev: true + + /proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + dev: true /protocols@2.0.1: resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} - dev: false + dev: true + + /ps-tree@1.2.0: + resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==} + engines: {node: '>= 0.10'} + hasBin: true + dependencies: + event-stream: 3.3.4 + dev: true /pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + requiresBuild: true + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 dev: true + optional: true /punycode.js@2.3.1: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} @@ -8944,33 +15080,40 @@ packages: /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + dev: true /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} /queue-tick@1.0.1: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - dev: false + dev: true + + /queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + dependencies: + inherits: 2.0.4 + dev: true /quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} dev: true - /radix3@1.1.0: - resolution: {integrity: sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==} - dev: false + /radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + dev: true /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 - dev: false + dev: true /range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - dev: false + dev: true /rc9@2.1.1: resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==} @@ -8978,7 +15121,32 @@ packages: defu: 6.1.4 destr: 2.0.3 flat: 5.0.2 - dev: false + + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + requiresBuild: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + dev: true + optional: true + + /react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: true + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: true /read-package-json-fast@3.0.2: resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} @@ -8986,6 +15154,7 @@ packages: dependencies: json-parse-even-better-errors: 3.0.1 npm-normalize-package-bin: 3.0.1 + dev: true /read-package-json@7.0.0: resolution: {integrity: sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==} @@ -8995,7 +15164,7 @@ packages: json-parse-even-better-errors: 3.0.1 normalize-package-data: 6.0.0 npm-normalize-package-bin: 3.0.1 - dev: false + dev: true /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} @@ -9024,7 +15193,6 @@ packages: js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 - dev: true /readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -9036,7 +15204,7 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: false + dev: true /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -9045,19 +15213,30 @@ packages: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 + dev: true + + /readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + dev: true /readdir-glob@1.1.3: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} dependencies: minimatch: 5.1.6 - dev: false + dev: true /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - dev: false /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} @@ -9070,46 +15249,129 @@ packages: /redis-errors@1.2.0: resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} engines: {node: '>=4'} - dev: false + dev: true /redis-parser@3.0.0: resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} engines: {node: '>=4'} dependencies: redis-errors: 1.2.0 - dev: false + dev: true + + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + /regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + dev: true + + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + dev: true + + /regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /rehype-external-links@3.0.0: + resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} + dependencies: + '@types/hast': 3.0.4 + '@ungap/structured-clone': 1.2.0 + hast-util-is-element: 3.0.0 + is-absolute-url: 4.0.1 + space-separated-tokens: 2.0.2 + unist-util-visit: 5.0.0 + dev: true + + /rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.0.2 + vfile: 6.0.1 + dev: true + + /rehype-slug@6.0.0: + resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} + dependencies: + '@types/hast': 3.0.4 + github-slugger: 2.0.0 + hast-util-heading-rank: 3.0.0 + hast-util-to-string: 3.0.0 + unist-util-visit: 5.0.0 + dev: true - /regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + /rehype-sort-attribute-values@5.0.0: + resolution: {integrity: sha512-dQdHdCIRnpiU+BkrLSqH+aM4lWJyLqGzv49KvH4gHj+JxYwNqvGhoTXckS3AJu4V9ZutwsTcawP0pC7PhwX0tQ==} + dependencies: + '@types/hast': 3.0.4 + hast-util-is-element: 3.0.0 + unist-util-visit: 5.0.0 dev: true - /regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true + /rehype-sort-attributes@5.0.0: + resolution: {integrity: sha512-6tJUH4xHFcdO85CZRwAcEtHNCzjZ9V9S0VZLgo1pzbN04qy8jiVCZ3oAxDmBVG3Rth5b1xFTDet5WG/UYZeJLQ==} + dependencies: + '@types/hast': 3.0.4 + unist-util-visit: 5.0.0 dev: true - /regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} + /remark-emoji@4.0.1: + resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-errors: 1.3.0 - set-function-name: 2.0.2 + '@types/mdast': 4.0.3 + emoticon: 4.0.1 + mdast-util-find-and-replace: 3.0.1 + node-emoji: 2.1.3 + unified: 11.0.4 dev: true - /regjsparser@0.10.0: - resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} - hasBin: true + /remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} dependencies: - jsesc: 0.5.0 + '@types/mdast': 4.0.3 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.4 + transitivePeerDependencies: + - supports-color dev: true - /remark-mdx@3.0.1: - resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} + /remark-mdc@3.2.0: + resolution: {integrity: sha512-zRi5frIC3O/bcxXgUPHfQ3lyRBKPtokrGnsOPvNrt9bqp4EfjPtduzcWgO4R1WeHYUnvl0zeBStvGsFkJIZf+Q==} dependencies: - mdast-util-mdx: 3.0.0 - micromark-extension-mdxjs: 3.0.0 + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + flat: 6.0.1 + js-yaml: 4.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + micromark: 4.0.0 + micromark-core-commonmark: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + parse-entities: 4.0.1 + scule: 1.3.0 + stringify-entities: 4.0.3 + unified: 11.0.4 + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 transitivePeerDependencies: - supports-color dev: true @@ -9125,6 +15387,16 @@ packages: - supports-color dev: true + /remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + mdast-util-to-hast: 13.1.0 + unified: 11.0.4 + vfile: 6.0.1 + dev: true + /remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} dependencies: @@ -9138,9 +15410,20 @@ packages: engines: {node: '>=0.10'} dev: true + /replace-in-file@6.3.5: + resolution: {integrity: sha512-arB9d3ENdKva2fxRnSjwBEXfK1npgyci7ZZuwysgAp7ORjHSyxz6oqIjTEv8R0Ydl4Ll7uOAZXL4vbkhGIizCg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + chalk: 4.1.2 + glob: 7.2.3 + yargs: 17.7.2 + dev: true + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + dev: true /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} @@ -9154,10 +15437,20 @@ packages: /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + dev: true /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + dev: true + + /resolve-path@1.4.0: + resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==} + engines: {node: '>= 0.8'} + dependencies: + http-errors: 1.6.3 + path-is-absolute: 1.0.1 + dev: true /resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -9170,6 +15463,7 @@ packages: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true /restore-cursor@4.0.0: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} @@ -9179,10 +15473,14 @@ packages: signal-exit: 3.0.7 dev: true + /restructure@3.0.1: + resolution: {integrity: sha512-6neDpI/yE9eogQo22qmWwKIA9wFPRyYjQleDEh6zaNAf2ZPqLJYUvNBJBWEWNoBlCeQMQkvIOe2YI/K2GOag+g==} + dev: true + /retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} - dev: false + dev: true /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} @@ -9197,8 +15495,23 @@ packages: hasBin: true dependencies: glob: 7.2.3 + dev: true + + /rollup-plugin-dts@6.1.0(rollup@4.13.0)(typescript@5.4.3): + resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==} + engines: {node: '>=16'} + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 + dependencies: + magic-string: 0.30.8 + rollup: 4.13.0 + typescript: 5.4.3 + optionalDependencies: + '@babel/code-frame': 7.24.2 + dev: true - /rollup-plugin-visualizer@5.12.0(rollup@4.12.0): + /rollup-plugin-visualizer@5.12.0(rollup@4.13.0): resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} engines: {node: '>=14'} hasBin: true @@ -9210,53 +15523,45 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 - rollup: 4.12.0 + rollup: 4.13.0 source-map: 0.7.4 yargs: 17.7.2 - dev: false + dev: true - /rollup@4.12.0: - resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} + /rollup@4.13.0: + resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.12.0 - '@rollup/rollup-android-arm64': 4.12.0 - '@rollup/rollup-darwin-arm64': 4.12.0 - '@rollup/rollup-darwin-x64': 4.12.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 - '@rollup/rollup-linux-arm64-gnu': 4.12.0 - '@rollup/rollup-linux-arm64-musl': 4.12.0 - '@rollup/rollup-linux-riscv64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-musl': 4.12.0 - '@rollup/rollup-win32-arm64-msvc': 4.12.0 - '@rollup/rollup-win32-ia32-msvc': 4.12.0 - '@rollup/rollup-win32-x64-msvc': 4.12.0 + '@rollup/rollup-android-arm-eabi': 4.13.0 + '@rollup/rollup-android-arm64': 4.13.0 + '@rollup/rollup-darwin-arm64': 4.13.0 + '@rollup/rollup-darwin-x64': 4.13.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.13.0 + '@rollup/rollup-linux-arm64-gnu': 4.13.0 + '@rollup/rollup-linux-arm64-musl': 4.13.0 + '@rollup/rollup-linux-riscv64-gnu': 4.13.0 + '@rollup/rollup-linux-x64-gnu': 4.13.0 + '@rollup/rollup-linux-x64-musl': 4.13.0 + '@rollup/rollup-win32-arm64-msvc': 4.13.0 + '@rollup/rollup-win32-ia32-msvc': 4.13.0 + '@rollup/rollup-win32-x64-msvc': 4.13.0 fsevents: 2.3.3 - dev: false /run-applescript@7.0.0: resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} engines: {node: '>=18'} - dev: false + dev: true /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - /sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - dependencies: - mri: 1.2.0 - dev: true - - /safe-array-concat@1.1.0: - resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} dependencies: call-bind: 1.0.7 @@ -9267,10 +15572,11 @@ packages: /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: false + dev: true /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true /safe-regex-test@1.0.3: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} @@ -9283,11 +15589,51 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - requiresBuild: true + dev: true + + /sass@1.72.0: + resolution: {integrity: sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.6.0 + immutable: 4.3.5 + source-map-js: 1.2.0 + dev: true + + /satori-html@0.3.2: + resolution: {integrity: sha512-wjTh14iqADFKDK80e51/98MplTGfxz2RmIzh0GqShlf4a67+BooLywF17TvJPD6phO0Hxm7Mf1N5LtRYvdkYRA==} + dependencies: + ultrahtml: 1.5.3 + dev: true + + /satori@0.10.13: + resolution: {integrity: sha512-klCwkVYMQ/ZN5inJLHzrUmGwoRfsdP7idB5hfpJ1jfiJk1ErDitK8Hkc6Kll1+Ox2WtqEuGecSZLnmup3CGzvQ==} + engines: {node: '>=16'} + dependencies: + '@shuding/opentype.js': 1.4.0-beta.0 + css-background-parser: 0.1.0 + css-box-shadow: 1.0.0-3 + css-to-react-native: 3.2.0 + emoji-regex: 10.3.0 + escape-html: 1.0.3 + linebreak: 1.1.0 + parse-css-color: 0.2.1 + postcss-value-parser: 4.2.0 + yoga-wasm-web: 0.3.3 + dev: true + + /schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + dev: true /scule@1.3.0: resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} - dev: false /semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} @@ -9297,7 +15643,6 @@ packages: /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - dev: false /semver@7.6.0: resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} @@ -9325,19 +15670,19 @@ packages: statuses: 2.0.1 transitivePeerDependencies: - supports-color - dev: false + dev: true /serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} dependencies: randombytes: 2.1.0 - dev: false + dev: true /serve-placeholder@2.0.1: resolution: {integrity: sha512-rUzLlXk4uPFnbEaIz3SW8VISTxMuONas88nYWjAWaM2W9VDbt9tyFOr3lq8RhVOFrT3XISoBw8vni5una8qMnQ==} dependencies: defu: 6.1.4 - dev: false + dev: true /serve-static@1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} @@ -9349,13 +15694,14 @@ packages: send: 0.18.0 transitivePeerDependencies: - supports-color - dev: false + dev: true /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true - /set-function-length@1.2.1: - resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 @@ -9376,16 +15722,35 @@ packages: has-property-descriptors: 1.0.2 dev: true + /setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + dev: true + /setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - dev: false + dev: true + + /sharp@0.32.6: + resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} + engines: {node: '>=14.15.0'} + requiresBuild: true + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + node-addon-api: 6.1.0 + prebuild-install: 7.1.2 + semver: 7.6.0 + simple-get: 4.0.1 + tar-fs: 3.0.5 + tunnel-agent: 0.6.0 + dev: true + optional: true /shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} dependencies: shebang-regex: 1.0.0 - dev: true /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -9396,7 +15761,6 @@ packages: /shebang-regex@1.0.0: resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} engines: {node: '>=0.10.0'} - dev: true /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} @@ -9404,7 +15768,35 @@ packages: /shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - dev: false + dev: true + + /shiki@1.1.7: + resolution: {integrity: sha512-9kUTMjZtcPH3i7vHunA6EraTPpPOITYTdA5uMrvsJRexktqP0s7P3s9HVK80b4pP42FRVe03D7fT3NmJv2yYhw==} + dependencies: + '@shikijs/core': 1.1.7 + dev: true + + /shiki@1.2.0: + resolution: {integrity: sha512-xLhiTMOIUXCv5DqJ4I70GgQCtdlzsTqFLZWcMHHG3TAieBUbvEGthdrlPDlX4mL/Wszx9C6rEcxU6kMlg4YlxA==} + dependencies: + '@shikijs/core': 1.2.0 + dev: true + + /shiki@1.2.1: + resolution: {integrity: sha512-u+XW6o0vCkUNlneZb914dLO+AayEIwK5tI62WeS//R5HIXBFiYaj/Hc5xcq27Yh83Grr4JbNtUBV8W6zyK4hWg==} + dependencies: + '@shikijs/core': 1.2.1 + dev: true + + /shikiji-core@0.10.2: + resolution: {integrity: sha512-9Of8HMlF96usXJHmCL3Gd0Fcf0EcyJUF9m8EoAKKd98mHXi0La2AZl1h6PegSFGtiYcBDK/fLuKbDa1l16r1fA==} + dev: true + + /shikiji@0.10.2: + resolution: {integrity: sha512-wtZg3T0vtYV2PnqusWQs3mDaJBdCPWxFDrBM/SE5LfrX92gjUvfEMlc+vJnoKY6Z/S44OWaCRzNIsdBRWcTAiw==} + dependencies: + shikiji-core: 0.10.2 + dev: true /side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -9416,6 +15808,10 @@ packages: object-inspect: 1.13.1 dev: true + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -9428,51 +15824,109 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@sigstore/bundle': 2.2.0 - '@sigstore/core': 1.0.0 + '@sigstore/core': 1.1.0 '@sigstore/protobuf-specs': 0.3.0 '@sigstore/sign': 2.2.3 - '@sigstore/tuf': 2.3.1 - '@sigstore/verify': 1.1.0 + '@sigstore/tuf': 2.3.2 + '@sigstore/verify': 1.1.1 transitivePeerDependencies: - supports-color - dev: false + dev: true + + /simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + requiresBuild: true + dev: true + optional: true + + /simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + requiresBuild: true + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + dev: true + optional: true - /simple-git@3.22.0: - resolution: {integrity: sha512-6JujwSs0ac82jkGjMHiCnTifvf1crOiY/+tfs/Pqih6iow7VrpNKRRNdWm6RtaXpvvv/JGNYhlUtLhGFqHF+Yw==} + /simple-git@3.23.0: + resolution: {integrity: sha512-P9ggTW8vb/21CAL/AmnACAhqBDfnqSSZVpV7WuFtsFR9HLunf5IqQvk+OXAQTfkcZep8pKnt3DV3o7w3TegEkQ==} dependencies: '@kwsites/file-exists': 1.1.1 '@kwsites/promise-deferred': 1.1.1 debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: false + dev: true + + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + requiresBuild: true + dependencies: + is-arrayish: 0.3.2 + dev: true + optional: true /sirv@2.0.4: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} dependencies: - '@polka/url': 1.0.0-next.24 + '@polka/url': 1.0.0-next.25 mrmime: 2.0.0 totalist: 3.0.1 - dev: false + dev: true /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true + + /site-config-stack@2.2.11(vue@3.4.21): + resolution: {integrity: sha512-j3okTVJiZV1QH4XJLCeO4UgaJzv4ogtFOOkAu1TlEcKSTSDBZ7PKBvZiyaW90TLnCTaB29JAAB/jmrJK7zlxdA==} + peerDependencies: + vue: ^3 + dependencies: + ufo: 1.5.3 + vue: 3.4.21(typescript@5.4.3) + dev: true + + /site-config-stack@2.2.7(vue@3.4.21): + resolution: {integrity: sha512-mLd6MUsQdkxGPN0KWt8U8b46K+TbSqssCDqGO1eeCkUVGH0ry4Ewz/Vfy9X5TGmNF5wJVi1YTMi+g3SVHdtJHg==} + peerDependencies: + vue: ^3 + dependencies: + ufo: 1.5.3 + vue: 3.4.21(typescript@5.4.3) + dev: true + + /skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + dependencies: + unicode-emoji-modifier-base: 1.0.0 + dev: true /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - dev: true /slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} - dev: false + dev: true /slash@5.1.0: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + /slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -9489,10 +15943,15 @@ packages: is-fullwidth-code-point: 5.0.0 dev: true + /slugify@1.6.6: + resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} + engines: {node: '>=8.0.0'} + dev: true + /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: false + dev: true /smartwrap@2.0.2: resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} @@ -9509,7 +15968,31 @@ packages: /smob@1.4.1: resolution: {integrity: sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==} - dev: false + dev: true + + /socket.io-client@4.7.5: + resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} + engines: {node: '>=10.0.0'} + dependencies: + '@socket.io/component-emitter': 3.1.0 + debug: 4.3.4 + engine.io-client: 6.5.3 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + dependencies: + '@socket.io/component-emitter': 3.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true /socks-proxy-agent@8.0.2: resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} @@ -9520,7 +16003,7 @@ packages: socks: 2.8.1 transitivePeerDependencies: - supports-color - dev: false + dev: true /socks@2.8.1: resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} @@ -9528,10 +16011,10 @@ packages: dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 - dev: false + dev: true - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} /source-map-support@0.5.21: @@ -9539,39 +16022,52 @@ packages: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - dev: false + dev: true /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - dev: false + dev: true /source-map@0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - dev: false + dev: true + + /source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true + + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + dev: true /spawndamnit@2.0.0: resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} dependencies: cross-spawn: 5.1.0 signal-exit: 3.0.7 - dev: true /spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.17 + dev: true /spdx-exceptions@2.5.0: resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + dev: true /spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.17 + dev: true /spdx-expression-parse@4.0.0: resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} @@ -9582,39 +16078,75 @@ packages: /spdx-license-ids@3.0.17: resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + dev: true + + /speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + dev: true /split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} dev: true + /split@0.3.3: + resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} + dependencies: + through: 2.3.8 + dev: true + + /splitpanes@3.1.5: + resolution: {integrity: sha512-r3Mq2ITFQ5a2VXLOy4/Sb2Ptp7OfEO8YIbhVJqJXoFc9hc5nTXXkCvtVDjIGbvC0vdE7tse+xTM9BMjsszP6bw==} + dev: true + /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: true /sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - dev: false + dev: true /ssri@10.0.5: resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 7.0.4 - dev: false + dev: true + + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true /standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} - dev: false + dev: true + + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - dev: false + dev: true /std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - dev: false + + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.7 + dev: true + + /stream-combiner@0.0.4: + resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} + dependencies: + duplexer: 0.1.2 + dev: true /stream-transform@2.1.3: resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} @@ -9628,8 +16160,8 @@ packages: fast-fifo: 1.3.2 queue-tick: 1.0.1 optionalDependencies: - bare-events: 2.2.1 - dev: false + bare-events: 2.2.2 + dev: true /string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} @@ -9643,6 +16175,7 @@ packages: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + dev: true /string-width@5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} @@ -9651,14 +16184,6 @@ packages: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - - /string-width@6.1.0: - resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} - engines: {node: '>=16'} - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 10.3.0 - strip-ansi: 7.1.0 dev: true /string-width@7.1.0: @@ -9670,41 +16195,48 @@ packages: strip-ansi: 7.1.0 dev: true - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + /string.prototype.codepointat@0.2.1: + resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} + dev: true + + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-abstract: 1.23.2 + es-object-atoms: 1.0.0 dev: true - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-object-atoms: 1.0.0 dev: true - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-object-atoms: 1.0.0 dev: true /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 - dev: false + dev: true /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 + dev: true /stringify-entities@4.0.3: resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} @@ -9718,16 +16250,22 @@ packages: engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 + dev: true /strip-ansi@7.1.0: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 + dev: true /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} dev: true /strip-final-newline@3.0.0: @@ -9741,32 +16279,216 @@ packages: min-indent: 1.0.1 dev: true + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + requiresBuild: true + dev: true + optional: true + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + dev: true /strip-literal@1.3.0: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: acorn: 8.11.3 - dev: false /strip-literal@2.0.0: resolution: {integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==} dependencies: js-tokens: 8.0.3 - dev: false + dev: true + + /style-mod@4.1.2: + resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} + dev: true - /stylehacks@6.0.3(postcss@8.4.35): - resolution: {integrity: sha512-KzBqjnqktc8/I0ERCb+lGq06giF/JxDbw2r9kEVhen9noHeIDRtMWUp9r62sOk+/2bbX6sFG1GhsS7ToXG0PEg==} + /stylehacks@6.1.1(postcss@8.4.38): + resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: browserslist: 4.23.0 - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 - dev: false + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + + /stylelint-config-html@1.1.0(postcss-html@1.6.0)(stylelint@16.3.1): + resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.6.0 + stylelint: 16.3.1(typescript@5.4.3) + dev: true + + /stylelint-config-recess-order@5.0.0(stylelint@16.3.1): + resolution: {integrity: sha512-D+/Got844O96No2mj/H2NhLjj555iKAy/Mea+JCerfKB9TBKQW3/IudSVkTCxE4QiRDLldfH15x6FH1D1Anjhw==} + peerDependencies: + stylelint: '>=16' + dependencies: + stylelint: 16.3.1(typescript@5.4.3) + stylelint-order: 6.0.4(stylelint@16.3.1) + dev: true + + /stylelint-config-recommended-scss@14.0.0(postcss@8.4.38)(stylelint@16.3.1): + resolution: {integrity: sha512-HDvpoOAQ1RpF+sPbDOT2Q2/YrBDEJDnUymmVmZ7mMCeNiFSdhRdyGEimBkz06wsN+HaFwUh249gDR+I9JR7Onw==} + engines: {node: '>=18.12.0'} + peerDependencies: + postcss: ^8.3.3 + stylelint: ^16.0.2 + peerDependenciesMeta: + postcss: + optional: true + dependencies: + postcss: 8.4.38 + postcss-scss: 4.0.9(postcss@8.4.38) + stylelint: 16.3.1(typescript@5.4.3) + stylelint-config-recommended: 14.0.0(stylelint@16.3.1) + stylelint-scss: 6.2.1(stylelint@16.3.1) + dev: true + + /stylelint-config-recommended-vue@1.5.0(postcss-html@1.6.0)(stylelint@16.3.1): + resolution: {integrity: sha512-65TAK/clUqkNtkZLcuytoxU0URQYlml+30Nhop7sRkCZ/mtWdXt7T+spPSB3KMKlb+82aEVJ4OrcstyDBdbosg==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.6.0 + semver: 7.6.0 + stylelint: 16.3.1(typescript@5.4.3) + stylelint-config-html: 1.1.0(postcss-html@1.6.0)(stylelint@16.3.1) + stylelint-config-recommended: 14.0.0(stylelint@16.3.1) + dev: true + + /stylelint-config-recommended@14.0.0(stylelint@16.3.1): + resolution: {integrity: sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.0.0 + dependencies: + stylelint: 16.3.1(typescript@5.4.3) + dev: true + + /stylelint-config-standard-scss@13.0.0(postcss@8.4.38)(stylelint@16.3.1): + resolution: {integrity: sha512-WaLvkP689qSYUpJQPCo30TFJSSc3VzvvoWnrgp+7PpVby5o8fRUY1cZcP0sePZfjrFl9T8caGhcKg0GO34VDiQ==} + engines: {node: '>=18.12.0'} + peerDependencies: + postcss: ^8.3.3 + stylelint: ^16.1.0 + peerDependenciesMeta: + postcss: + optional: true + dependencies: + postcss: 8.4.38 + stylelint: 16.3.1(typescript@5.4.3) + stylelint-config-recommended-scss: 14.0.0(postcss@8.4.38)(stylelint@16.3.1) + stylelint-config-standard: 36.0.0(stylelint@16.3.1) + dev: true + + /stylelint-config-standard@36.0.0(stylelint@16.3.1): + resolution: {integrity: sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.1.0 + dependencies: + stylelint: 16.3.1(typescript@5.4.3) + stylelint-config-recommended: 14.0.0(stylelint@16.3.1) + dev: true + + /stylelint-order@6.0.4(stylelint@16.3.1): + resolution: {integrity: sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==} + peerDependencies: + stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1 + dependencies: + postcss: 8.4.38 + postcss-sorting: 8.0.2(postcss@8.4.38) + stylelint: 16.3.1(typescript@5.4.3) + dev: true + + /stylelint-scss@6.2.1(stylelint@16.3.1): + resolution: {integrity: sha512-ZoGLbVb1keZYRVGQlhB8G6sZOoNqw61whzzzGFWp05N12ErqLFfBv3JPrXiMLZaW98sBS7K/vUQhRnvUj4vwdw==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.0.2 + dependencies: + known-css-properties: 0.29.0 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.1 + postcss-selector-parser: 6.0.16 + postcss-value-parser: 4.2.0 + stylelint: 16.3.1(typescript@5.4.3) + dev: true + + /stylelint@16.3.1(typescript@5.4.3): + resolution: {integrity: sha512-/JOwQnBvxEKOT2RtNgGpBVXnCSMBgKOL2k7w0K52htwCyJls4+cHvc4YZgXlVoAZS9QJd2DgYAiRnja96pTgxw==} + engines: {node: '>=18.12.0'} + hasBin: true + dependencies: + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/media-query-list-parser': 2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.16) + '@dual-bundle/import-meta-resolve': 4.0.0 + balanced-match: 2.0.0 + colord: 2.9.3 + cosmiconfig: 9.0.0(typescript@5.4.3) + css-functions-list: 3.2.1 + css-tree: 2.3.1 + debug: 4.3.4 + fast-glob: 3.3.2 + fastest-levenshtein: 1.0.16 + file-entry-cache: 8.0.0 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.3.1 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-plain-object: 5.0.0 + known-css-properties: 0.30.0 + mathml-tag-names: 2.1.3 + meow: 13.2.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.38 + postcss-resolve-nested-selector: 0.1.1 + postcss-safe-parser: 7.0.0(postcss@8.4.38) + postcss-selector-parser: 6.0.16 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + string-width: 4.2.3 + strip-ansi: 7.1.0 + supports-hyperlinks: 3.0.0 + svg-tags: 1.0.0 + table: 6.8.2 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.3.10 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: true /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -9779,10 +16501,19 @@ packages: engines: {node: '>=8'} dependencies: has-flag: 4.0.0 + dev: true + + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true /supports-color@9.4.0: resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} engines: {node: '>=12'} + dev: true /supports-hyperlinks@2.3.0: resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} @@ -9792,13 +16523,42 @@ packages: supports-color: 7.2.0 dev: true + /supports-hyperlinks@3.0.0: + resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + engines: {node: '>=14.18'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + dev: true + /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + dev: true + + /svelte@4.2.12: + resolution: {integrity: sha512-d8+wsh5TfPwqVzbm4/HCXC783/KPHV60NvwitJnyTA5lWn1elhXMNWhXGCJ7PwPa8qFUnyJNIyuIRt2mT0WMug==} + engines: {node: '>=16'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + '@types/estree': 1.0.5 + acorn: 8.11.3 + aria-query: 5.3.0 + axobject-query: 4.0.0 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.8 + periscopic: 3.1.0 + dev: true /svg-tags@1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} - dev: false + dev: true /svgo@3.2.0: resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} @@ -9812,7 +16572,7 @@ packages: css-what: 6.1.0 csso: 5.0.5 picocolors: 1.0.0 - dev: false + dev: true /synckit@0.6.2: resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} @@ -9840,12 +16600,119 @@ packages: /system-architecture@0.1.0: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} engines: {node: '>=18'} - dev: false + dev: true + + /tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + + /table@6.8.2: + resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.12.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /tailwind-config-viewer@1.7.3(tailwindcss@3.4.1): + resolution: {integrity: sha512-rgeFXe9vL4njtaSI1y2uUAD1aRx05RYHbReN72ARAVEVSlNmS0Zf46pj3/ORc3xQwLK/AzbaIs6UFcK7hJSIlA==} + engines: {node: '>=8'} + hasBin: true + peerDependencies: + tailwindcss: 1 || 2 || 2.0.1-compat || 3 + dependencies: + '@koa/router': 12.0.1 + commander: 6.2.1 + fs-extra: 9.1.0 + koa: 2.15.2 + koa-static: 5.0.0 + open: 7.4.2 + portfinder: 1.0.32 + replace-in-file: 6.3.5 + tailwindcss: 3.4.1 + transitivePeerDependencies: + - supports-color + dev: true + + /tailwind-merge@2.2.2: + resolution: {integrity: sha512-tWANXsnmJzgw6mQ07nE3aCDkCK4QdT3ThPMCzawoYA2Pws7vSTCvz3Vrjg61jVUGfFZPJzxEP+NimbcW+EdaDw==} + dependencies: + '@babel/runtime': 7.24.1 + dev: true + + /tailwindcss@3.4.1: + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.38 + postcss-import: 15.1.0(postcss@8.4.38) + postcss-js: 4.0.1(postcss@8.4.38) + postcss-load-config: 4.0.2(postcss@8.4.38) + postcss-nested: 6.0.1(postcss@8.4.38) + postcss-selector-parser: 6.0.16 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + dev: true /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - dev: false + dev: true + + /tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + requiresBuild: true + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: true + optional: true + + /tar-fs@3.0.5: + resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} + requiresBuild: true + dependencies: + pump: 3.0.0 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 2.2.2 + bare-path: 2.1.0 + dev: true + optional: true + + /tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + requiresBuild: true + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + optional: true /tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} @@ -9853,10 +16720,10 @@ packages: b4a: 1.6.6 fast-fifo: 1.3.2 streamx: 2.16.1 - dev: false + dev: true - /tar@6.2.0: - resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} + /tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} dependencies: chownr: 2.0.0 @@ -9865,7 +16732,6 @@ packages: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 - dev: false /term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} @@ -9880,32 +16746,105 @@ packages: supports-hyperlinks: 2.3.0 dev: true - /terser@5.28.1: - resolution: {integrity: sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==} + /terminate@2.6.1: + resolution: {integrity: sha512-0kdr49oam98yvjkVY+gfUaT3SMaJI6Sc+yijJjU+qhat+0NQKQn60OsIZZeKyVgTO0/33nRa3HowRbpw3A7u9A==} + engines: {node: '>=12'} + dependencies: + ps-tree: 1.2.0 + dev: true + + /terser-webpack-plugin@5.3.10(esbuild@0.19.12)(webpack@5.91.0): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + esbuild: 0.19.12 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.29.2 + webpack: 5.91.0(esbuild@0.19.12) + dev: true + + /terser@5.29.2: + resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} engines: {node: '>=10'} hasBin: true dependencies: - '@jridgewell/source-map': 0.3.5 + '@jridgewell/source-map': 0.3.6 acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 - dev: false + dev: true + + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true /text-extensions@2.4.0: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} engines: {node: '>=8'} dev: true - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true + /tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + dev: true + /tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - dev: false + dev: true + + /tinybench@2.6.0: + resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} + dev: true + + /tinypool@0.8.3: + resolution: {integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + engines: {node: '>=14.0.0'} + dev: true /tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} @@ -9927,22 +16866,36 @@ packages: /toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - dev: false + dev: true - /toml-eslint-parser@0.9.3: - resolution: {integrity: sha512-moYoCvkNUAPCxSW9jmHmRElhm4tVJpHL8ItC/+uYD0EpPSFXbck7yREz9tNdJVTSpHVod8+HoipcpbQ0oE6gsw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - eslint-visitor-keys: 3.4.3 + /tosource@2.0.0-alpha.3: + resolution: {integrity: sha512-KAB2lrSS48y91MzFPFuDg4hLbvDiyTjOVgaK7Erw+5AmZXNq4sFRVn8r6yxSLuNs15PaokrDRpS61ERY9uZOug==} + engines: {node: '>=10'} dev: true /totalist@3.0.1: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} - dev: false + dev: true /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: true + + /tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.3.1 + dev: true + + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: true /trim-newlines@3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} @@ -9953,19 +16906,98 @@ packages: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} dev: true - /ts-api-utils@1.2.1(typescript@5.3.3): - resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + /ts-api-utils@1.3.0(typescript@5.4.3): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.3 + typescript: 5.4.3 + dev: true + + /ts-deepmerge@7.0.0: + resolution: {integrity: sha512-WZ/iAJrKDhdINv1WG6KZIGHrZDar6VfhftG1QJFpVbOYZMYJLJOvZOo1amictRXVdBXZIgBHKswMTXzElngprA==} + engines: {node: '>=14.13.1'} + dev: true + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: true + /tsscmp@1.0.6: + resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} + engines: {node: '>=0.6.x'} + dev: true + + /tsup@8.0.2(postcss@8.4.38)(typescript@5.4.3): + resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + bundle-require: 4.0.2(esbuild@0.19.12) + cac: 6.7.14 + chokidar: 3.6.0 + debug: 4.3.4 + esbuild: 0.19.12 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss: 8.4.38 + postcss-load-config: 4.0.2(postcss@8.4.38) + resolve-from: 5.0.0 + rollup: 4.13.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tree-kill: 1.2.2 + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + + /tsutils@3.21.0(typescript@5.4.3): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 5.4.3 + dev: true + + /tsx@4.7.1: + resolution: {integrity: sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==} + engines: {node: '>=18.0.0'} + hasBin: true + dependencies: + esbuild: 0.19.12 + get-tsconfig: 4.7.3 + optionalDependencies: + fsevents: 2.3.3 + dev: true + /tty-table@4.2.3: resolution: {integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==} engines: {node: '>=8.0.0'} @@ -9989,66 +17021,74 @@ packages: make-fetch-happen: 13.0.0 transitivePeerDependencies: - supports-color - dev: false + dev: true + + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + requiresBuild: true + dependencies: + safe-buffer: 5.2.1 + dev: true + optional: true - /turbo-darwin-64@1.12.4: - resolution: {integrity: sha512-dBwFxhp9isTa9RS/fz2gDVk5wWhKQsPQMozYhjM7TT4jTrnYn0ZJMzr7V3B/M/T8QF65TbniW7w1gtgxQgX5Zg==} + /turbo-darwin-64@1.13.0: + resolution: {integrity: sha512-ctHeJXtQgBcgxnCXwrJTGiq57HtwF7zWz5NTuSv//5yeU01BtQIt62ArKfjudOhRefWJbX3Z5srn88XTb9hfww==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-darwin-arm64@1.12.4: - resolution: {integrity: sha512-1Uo5iI6xsJ1j9ObsqxYRsa3W26mEbUe6fnj4rQYV6kDaqYD54oAMJ6hM53q9rB8JvFxwdrUXGp3PwTw9A0qqkA==} + /turbo-darwin-arm64@1.13.0: + resolution: {integrity: sha512-/Q9/pNFkF9w83tNxwMpgapwLYdQ12p8mpty2YQRoUiS9ClWkcqe136jR0mtuMqzlNlpREOFZaoyIthjt6Sdo0g==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-linux-64@1.12.4: - resolution: {integrity: sha512-ONg2aSqKP7LAQOg7ysmU5WpEQp4DGNxSlAiR7um+LKtbmC/UxogbR5+T+Uuq6zGuQ5kJyKjWJ4NhtvUswOqBsA==} + /turbo-linux-64@1.13.0: + resolution: {integrity: sha512-hgbT7o020BGV4L7Sd8hhFTd5zVKPKxbsr0dPfel/9NkdTmptz2aGZ0Vb2MAa18SY3XaCQpDxmdYuOzvvRpo5ZA==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-linux-arm64@1.12.4: - resolution: {integrity: sha512-9FPufkwdgfIKg/9jj87Cdtftw8o36y27/S2vLN7FTR2pp9c0MQiTBOLVYadUr1FlShupddmaMbTkXEhyt9SdrA==} + /turbo-linux-arm64@1.13.0: + resolution: {integrity: sha512-WK01i2wDZARrV+HEs495A3hNeGMwQR5suYk7G+ceqqW7b+dOTlQdvUjnI3sg7wAnZPgjafFs/hoBaZdJjVa/nw==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-windows-64@1.12.4: - resolution: {integrity: sha512-2mOtxHW5Vjh/5rDVu/aFwsMzI+chs8XcEuJHlY1sYOpEymYTz+u6AXbnzRvwZFMrLKr7J7fQOGl+v96sLKbNdA==} + /turbo-windows-64@1.13.0: + resolution: {integrity: sha512-hJgSZJZwlWHNwLEthaqJqJWGm4NqF5X/I7vE0sPE4i/jeDl8f0n1hcOkgJkJiNXVxhj+qy/9+4dzbPLKT9imaQ==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /turbo-windows-arm64@1.12.4: - resolution: {integrity: sha512-nOY5wae9qnxPOpT1fRuYO0ks6dTwpKMPV6++VkDkamFDLFHUDVM/9kmD2UTeh1yyrKnrZksbb9zmShhmfj1wog==} + /turbo-windows-arm64@1.13.0: + resolution: {integrity: sha512-L/ErxYoXeq8tmjU/AIGicC9VyBN1zdYw8JlM4yPmMI0pJdY8E4GaYK1IiIazqq7M72lmQhU/WW7fV9FqEktwrw==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /turbo@1.12.4: - resolution: {integrity: sha512-yUJ7elEUSToiGwFZogXpYKJpQ0BvaMbkEuQECIWtkBLcmWzlMOt6bActsIm29oN83mRU0WbzGt4e8H1KHWedhg==} + /turbo@1.13.0: + resolution: {integrity: sha512-r02GtNmkOPcQvUzVE6lg474QVLyU02r3yh3lUGqrFHf5h5ZEjgDGWILsAUqplVqjri1Y/oOkTssks4CObTAaiw==} hasBin: true optionalDependencies: - turbo-darwin-64: 1.12.4 - turbo-darwin-arm64: 1.12.4 - turbo-linux-64: 1.12.4 - turbo-linux-arm64: 1.12.4 - turbo-windows-64: 1.12.4 - turbo-windows-arm64: 1.12.4 + turbo-darwin-64: 1.13.0 + turbo-darwin-arm64: 1.13.0 + turbo-linux-64: 1.13.0 + turbo-linux-arm64: 1.13.0 + turbo-windows-64: 1.13.0 + turbo-windows-arm64: 1.13.0 dev: true /type-check@0.4.0: @@ -10056,6 +17096,12 @@ packages: engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 + dev: true + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true /type-fest@0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} @@ -10065,11 +17111,12 @@ packages: /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} + dev: true /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - dev: false + dev: true /type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} @@ -10089,6 +17136,19 @@ packages: /type-fest@3.13.1: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} + dev: true + + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: true + + /type-level-regexp@0.1.17: + resolution: {integrity: sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==} + dev: true /typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} @@ -10122,8 +17182,8 @@ packages: is-typed-array: 1.1.13 dev: true - /typed-array-length@1.0.5: - resolution: {integrity: sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==} + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -10140,12 +17200,27 @@ packages: is-typedarray: 1.0.0 dev: true - /typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + /typescript-eslint@7.4.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-8GYQsb/joknlAZEAs/kqonfrsAc98C5DoellmwHREPqKwSTKSY2YB93IwmvNuX6+WE5QkKc31X9wHo/UcpYXpw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) + eslint: 8.57.0 + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color dev: true - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + /typescript@5.4.3: + resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} engines: {node: '>=14.17'} hasBin: true @@ -10153,12 +17228,12 @@ packages: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} dev: true - /ufo@1.4.0: - resolution: {integrity: sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==} + /ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} /ultrahtml@1.5.3: resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} - dev: false + dev: true /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} @@ -10169,28 +17244,81 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /unbuild@3.0.0-rc.1(typescript@5.4.3): + resolution: {integrity: sha512-hvJItFEoE/qRBS7V4hBzTGcdP8s2OZAW5D4qHf5uHbrDZUwU5kaNFSXDjkZtubRcKwSVPtYOOhv8E9UZg1duUw==} + hasBin: true + peerDependencies: + typescript: ^5.3.3 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@rollup/plugin-alias': 5.1.0(rollup@4.13.0) + '@rollup/plugin-commonjs': 25.0.7(rollup@4.13.0) + '@rollup/plugin-json': 6.1.0(rollup@4.13.0) + '@rollup/plugin-node-resolve': 15.2.3(rollup@4.13.0) + '@rollup/plugin-replace': 5.0.5(rollup@4.13.0) + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + chalk: 5.3.0 + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + esbuild: 0.19.12 + globby: 14.0.1 + hookable: 5.5.3 + jiti: 1.21.0 + magic-string: 0.30.8 + mkdist: 1.4.0(typescript@5.4.3) + mlly: 1.6.1 + pathe: 1.1.2 + pkg-types: 1.0.3 + pretty-bytes: 6.1.1 + rollup: 4.13.0 + rollup-plugin-dts: 6.1.0(rollup@4.13.0)(typescript@5.4.3) + scule: 1.3.0 + typescript: 5.4.3 + ufo: 1.5.3 + untyped: 1.4.2 + transitivePeerDependencies: + - sass + - supports-color + dev: true + + /unconfig@0.3.11: + resolution: {integrity: sha512-bV/nqePAKv71v3HdVUn6UefbsDKQWRX+bJIkiSm0+twIds6WiD2bJLWWT3i214+J/B4edufZpG2w7Y63Vbwxow==} + dependencies: + '@antfu/utils': 0.7.7 + defu: 6.1.4 + jiti: 1.21.0 + mlly: 1.6.1 + dev: true + /uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - dev: false + dev: true + + /uncsrf@1.1.1: + resolution: {integrity: sha512-wH9+N3oNdr2XB3egUKxCR26XTVfYywv2STZYtZLIp8votOf0/9b0axA9gpIHdYfgq/Myfh/HS5e0lQ/+27dj9A==} + dev: true /unctx@2.3.1: resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==} dependencies: acorn: 8.11.3 estree-walker: 3.0.3 - magic-string: 0.30.7 - unplugin: 1.8.0 - dev: false + magic-string: 0.30.8 + unplugin: 1.10.0 /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true /undici@5.28.3: resolution: {integrity: sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==} engines: {node: '>=14.0'} dependencies: '@fastify/busboy': 2.1.1 - dev: false + dev: true /unenv@1.9.0: resolution: {integrity: sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==} @@ -10198,51 +17326,42 @@ packages: consola: 3.2.3 defu: 6.1.4 mime: 3.0.0 - node-fetch-native: 1.6.2 + node-fetch-native: 1.6.4 pathe: 1.1.2 - dev: false + dev: true - /unhead@1.8.10: - resolution: {integrity: sha512-dth8FvZkLriO5ZWWOBIYBNSfGiwJtKcqpPWpSOk/Z0e2jdlgwoZEWZHFyte0EKvmbZxKcsWNMqIuv7dEmS5yZQ==} + /unhead@1.9.1: + resolution: {integrity: sha512-qTyA0V6xjUrIJp6KWs0CqAayw4K2DE7rh0GO0vmcC2YuF0HITO/3zkVtG7zhJUd5VeGgGCO/82zatDOOhMyneA==} dependencies: - '@unhead/dom': 1.8.10 - '@unhead/schema': 1.8.10 - '@unhead/shared': 1.8.10 + '@unhead/dom': 1.9.1 + '@unhead/schema': 1.9.1 + '@unhead/shared': 1.9.1 hookable: 5.5.3 - dev: false + dev: true - /unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} + /unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + dev: true - /unified-engine@11.2.0: - resolution: {integrity: sha512-H9wEDpBSM0cpEUuuYAOIiPzLCVN0pjASZZ6FFNzgzYS/HHzl9tArk/ereOMGtcF8m8vgjzw+HrU3YN7oenT7Ww==} + /unicode-properties@1.4.1: + resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} dependencies: - '@types/concat-stream': 2.0.3 - '@types/debug': 4.1.12 - '@types/is-empty': 1.2.3 - '@types/node': 20.11.24 - '@types/unist': 3.0.2 - '@ungap/structured-clone': 1.2.0 - concat-stream: 2.0.0 - debug: 4.3.4 - glob: 10.3.10 - ignore: 5.3.1 - is-empty: 1.2.0 - is-plain-obj: 4.1.0 - load-plugin: 6.0.2 - parse-json: 7.1.1 - trough: 2.2.0 - unist-util-inspect: 8.0.0 - vfile: 6.0.1 - vfile-message: 4.0.2 - vfile-reporter: 8.1.0 - vfile-statistics: 3.0.0 - yaml: 2.4.0 - transitivePeerDependencies: - - supports-color + base64-js: 1.5.1 + unicode-trie: 2.0.0 + dev: true + + /unicode-trie@2.0.0: + resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + dependencies: + pako: 0.2.9 + tiny-inflate: 1.0.3 dev: true + /unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + /unified@11.0.4: resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} dependencies: @@ -10255,39 +17374,38 @@ packages: vfile: 6.0.1 dev: true - /unimport@3.7.1(rollup@4.12.0): + /unimport@3.7.1(rollup@4.13.0): resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) acorn: 8.11.3 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 fast-glob: 3.3.2 local-pkg: 0.5.0 - magic-string: 0.30.7 + magic-string: 0.30.8 mlly: 1.6.1 pathe: 1.1.2 pkg-types: 1.0.3 scule: 1.3.0 strip-literal: 1.3.0 - unplugin: 1.8.0 + unplugin: 1.10.0 transitivePeerDependencies: - rollup - dev: false /unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: unique-slug: 4.0.0 - dev: false + dev: true /unique-slug@4.0.0: resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 - dev: false + dev: true /unique-string@3.0.0: resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} @@ -10296,8 +17414,8 @@ packages: crypto-random-string: 4.0.0 dev: true - /unist-util-inspect@8.0.0: - resolution: {integrity: sha512-/3Wn/wU6/H6UEo4FoYUeo8KUePN8ERiZpQYFWYoihOsr1DoDuv80PeB0hobVZyYSvALa2e556bG1A1/AbwU4yg==} + /unist-builder@4.0.0: + resolution: {integrity: sha512-wmRFnH+BLpZnTKpc5L7O67Kac89s9HMrtELpnNaE6TAobq5DTZZs5YaTQfAZBA9bFPECx2uVAPO31c+GVug8mg==} dependencies: '@types/unist': 3.0.2 dev: true @@ -10308,17 +17426,10 @@ packages: '@types/unist': 3.0.2 dev: true - /unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} - dependencies: - '@types/unist': 3.0.2 - dev: true - - /unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} dependencies: '@types/unist': 3.0.2 - unist-util-visit: 5.0.0 dev: true /unist-util-stringify-position@2.0.3: @@ -10351,14 +17462,102 @@ packages: /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} - dev: true /universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - dev: false + dev: true + + /unocss@0.58.7(@unocss/webpack@0.58.7)(postcss@8.4.38)(rollup@4.13.0)(vite@5.2.6): + resolution: {integrity: sha512-WZEG5+RWlMvuMX8qOpZI9PAwBlFpRMnGlOtQV3M6BHsUbEPvC7IPx1fr4I22XizctRfNftUG3MWe5l74CcoD7Q==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 0.58.7 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + dependencies: + '@unocss/astro': 0.58.7(rollup@4.13.0)(vite@5.2.6) + '@unocss/cli': 0.58.7(rollup@4.13.0) + '@unocss/core': 0.58.7 + '@unocss/extractor-arbitrary-variants': 0.58.7 + '@unocss/postcss': 0.58.7(postcss@8.4.38) + '@unocss/preset-attributify': 0.58.7 + '@unocss/preset-icons': 0.58.7 + '@unocss/preset-mini': 0.58.7 + '@unocss/preset-tagify': 0.58.7 + '@unocss/preset-typography': 0.58.7 + '@unocss/preset-uno': 0.58.7 + '@unocss/preset-web-fonts': 0.58.7 + '@unocss/preset-wind': 0.58.7 + '@unocss/reset': 0.58.7 + '@unocss/transformer-attributify-jsx': 0.58.7 + '@unocss/transformer-attributify-jsx-babel': 0.58.7 + '@unocss/transformer-compile-class': 0.58.7 + '@unocss/transformer-directives': 0.58.7 + '@unocss/transformer-variant-group': 0.58.7 + '@unocss/vite': 0.58.7(rollup@4.13.0)(vite@5.2.6) + '@unocss/webpack': 0.58.7(rollup@4.13.0)(webpack@5.91.0) + vite: 5.2.6(@types/node@20.11.30) + transitivePeerDependencies: + - postcss + - rollup + - supports-color + dev: true + + /unplugin-ast@0.9.0(rollup@4.13.0): + resolution: {integrity: sha512-hmBkcAo1kYhR6MKYucbeLpX3QoEQyktQaVKZLmLjebND/XXyvN/w1COkMRs136kO7lWK47gGLHzmK8w9XI3blA==} + engines: {node: '>=16.14.0'} + dependencies: + '@antfu/utils': 0.7.7 + '@babel/generator': 7.24.1 + '@babel/parser': 7.24.1 + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + ast-kit: 0.12.1 + magic-string-ast: 0.3.0 + unplugin: 1.10.0 + transitivePeerDependencies: + - rollup + dev: true + + /unplugin-formkit@0.2.13(esbuild@0.19.12)(rollup@4.13.0)(vite@5.2.6): + resolution: {integrity: sha512-qNHz7/0QDO0uVD5MoUZz49CI7q8cHM24RQDwbs5NfRJ6EiyZ1gBmWq9ta3QHR2nD7xacXV+yzmfDbnwlNpkzsg==} + peerDependencies: + esbuild: '*' + rollup: '*' + vite: '*' + webpack: '*' + peerDependenciesMeta: + esbuild: + optional: true + rollup: + optional: true + vite: + optional: true + webpack: + optional: true + dependencies: + esbuild: 0.19.12 + pathe: 1.1.2 + rollup: 4.13.0 + unplugin: 1.10.0 + vite: 5.2.6(@types/node@20.11.30) + dev: true + + /unplugin-remove@0.1.7(rollup@4.13.0): + resolution: {integrity: sha512-7BaEfgR/hMQRgaN++RAILeq9/wBrJPqCLRsQH+ow8979s2TE3TAFE4rQRmMUPcJ/w4ccsVSLepwGbimLMkQjyA==} + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + magic-string: 0.30.8 + unplugin: 1.10.0 + transitivePeerDependencies: + - rollup + dev: true - /unplugin-vue-router@0.7.0(vue-router@4.3.0)(vue@3.4.21): + /unplugin-vue-router@0.7.0(rollup@4.13.0)(vue-router@4.3.0)(vue@3.4.21): resolution: {integrity: sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw==} peerDependencies: vue-router: ^4.1.0 @@ -10367,9 +17566,9 @@ packages: optional: true dependencies: '@babel/types': 7.24.0 - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - '@vue-macros/common': 1.10.1(vue@3.4.21) - ast-walker-scope: 0.5.0 + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + '@vue-macros/common': 1.10.1(rollup@4.13.0)(vue@3.4.21) + ast-walker-scope: 0.5.0(rollup@4.13.0) chokidar: 3.6.0 fast-glob: 3.3.2 json5: 2.2.3 @@ -10377,38 +17576,39 @@ packages: mlly: 1.6.1 pathe: 1.1.2 scule: 1.3.0 - unplugin: 1.8.0 + unplugin: 1.10.0 vue-router: 4.3.0(vue@3.4.21) - yaml: 2.4.0 + yaml: 2.4.1 transitivePeerDependencies: - rollup - vue - dev: false + dev: true - /unplugin@1.8.0: - resolution: {integrity: sha512-yGEQsodWICmgt7asHF7QzqDZYeEP9h14vyd9Lul98UnYf29pLZZLwI09z2QdTjwU/FCkum1SRvsK7cx232X8NA==} + /unplugin@1.10.0: + resolution: {integrity: sha512-CuZtvvO8ua2Wl+9q2jEaqH6m3DoQ38N7pvBYQbbaeNlWGvK2l6GHiKi29aIHDPoSxdUzQ7Unevf1/ugil5X6Pg==} + engines: {node: '>=14.0.0'} dependencies: acorn: 8.11.3 chokidar: 3.6.0 webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.1 - dev: false - /unstorage@1.10.1: - resolution: {integrity: sha512-rWQvLRfZNBpF+x8D3/gda5nUCQL2PgXy2jNG4U7/Rc9BGEv9+CAJd0YyGCROUBKs9v49Hg8huw3aih5Bf5TAVw==} + /unstorage@1.10.2(ioredis@5.3.2): + resolution: {integrity: sha512-cULBcwDqrS8UhlIysUJs2Dk0Mmt8h7B0E6mtR+relW9nZvsf/u4SkAYyNliPiPW7XtFNb5u3IUMkxGxFTTRTgQ==} peerDependencies: - '@azure/app-configuration': ^1.4.1 + '@azure/app-configuration': ^1.5.0 '@azure/cosmos': ^4.0.0 '@azure/data-tables': ^13.2.2 - '@azure/identity': ^3.3.2 - '@azure/keyvault-secrets': ^4.7.0 - '@azure/storage-blob': ^12.16.0 - '@capacitor/preferences': ^5.0.6 - '@netlify/blobs': ^6.2.0 - '@planetscale/database': ^1.11.0 - '@upstash/redis': ^1.23.4 - '@vercel/kv': ^0.2.3 + '@azure/identity': ^4.0.1 + '@azure/keyvault-secrets': ^4.8.0 + '@azure/storage-blob': ^12.17.0 + '@capacitor/preferences': ^5.0.7 + '@netlify/blobs': ^6.5.0 || ^7.0.0 + '@planetscale/database': ^1.16.0 + '@upstash/redis': ^1.28.4 + '@vercel/kv': ^1.0.1 idb-keyval: ^6.2.1 + ioredis: ^5.3.2 peerDependenciesMeta: '@azure/app-configuration': optional: true @@ -10434,6 +17634,8 @@ packages: optional: true idb-keyval: optional: true + ioredis: + optional: true dependencies: anymatch: 3.1.3 chokidar: 3.6.0 @@ -10443,13 +17645,12 @@ packages: listhen: 1.7.2 lru-cache: 10.2.0 mri: 1.2.0 - node-fetch-native: 1.6.2 - ofetch: 1.3.3 - ufo: 1.4.0 + node-fetch-native: 1.6.4 + ofetch: 1.3.4 + ufo: 1.5.3 transitivePeerDependencies: - - supports-color - uWebSockets.js - dev: false + dev: true /untun@0.1.3: resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} @@ -10458,14 +17659,14 @@ packages: citty: 0.1.6 consola: 3.2.3 pathe: 1.1.2 - dev: false + dev: true /untyped@1.4.2: resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==} hasBin: true dependencies: - '@babel/core': 7.24.0 - '@babel/standalone': 7.24.0 + '@babel/core': 7.24.3 + '@babel/standalone': 7.24.3 '@babel/types': 7.24.0 defu: 6.1.4 jiti: 1.21.0 @@ -10473,17 +17674,17 @@ packages: scule: 1.3.0 transitivePeerDependencies: - supports-color - dev: false - /unwasm@0.3.7: - resolution: {integrity: sha512-+s4iWvHHYnLuwNo+9mqVFLBmBzGc3gIuzkVZ8fdMN9K/kWopCnfaUVnDagd2OX3It5nRR5EenI5nSQb8FOd0fA==} + /unwasm@0.3.8: + resolution: {integrity: sha512-nIJQXxGl/gTUp5dZkSc8jbxAqSOa9Vv4jjSZXNI6OK0JXdvW3SQUHR+KY66rjI0W//km59jivGgd5TCvBUWsnA==} dependencies: - magic-string: 0.30.7 + knitwork: 1.0.0 + magic-string: 0.30.8 mlly: 1.6.1 pathe: 1.1.2 pkg-types: 1.0.3 - unplugin: 1.8.0 - dev: false + unplugin: 1.10.0 + dev: true /update-browserslist-db@1.0.13(browserslist@4.23.0): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} @@ -10497,29 +17698,37 @@ packages: /uqr@0.1.2: resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} - dev: false + dev: true /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 + dev: true /urlpattern-polyfill@8.0.2: resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} - dev: false + dev: true /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true - /uvu@0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} - engines: {node: '>=8'} - hasBin: true + /v-lazy-show@0.2.4(@vue/compiler-core@3.4.21): + resolution: {integrity: sha512-Lx9Str2i+HTh+zGzs9O3YyhGAZOAAfU+6MUUPcQPPiPxQO1sHBEv9sH3MO9bPc4T09gsjsS2+sbaCWQ1MdhpJQ==} + peerDependencies: + '@vue/compiler-core': ^3.3 dependencies: - dequal: 2.0.3 - diff: 5.2.0 - kleur: 4.1.5 - sade: 1.8.1 + '@vue/compiler-core': 3.4.21 + dev: true + + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 dev: true /validate-npm-package-license@3.0.4: @@ -10527,46 +17736,102 @@ packages: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 + dev: true /validate-npm-package-name@5.0.0: resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: builtins: 5.0.1 - dev: false + dev: true - /vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - dependencies: - '@types/unist': 3.0.2 - unist-util-stringify-position: 4.0.0 + /vanilla-jsoneditor@0.21.6(@lezer/common@1.2.1): + resolution: {integrity: sha512-qKWVW2qXrVazurZ5gZ+Ah7vTkxArUdv6JxlWJJlO3v4K+dowytku4KgfdOEkACpA6HQI2hyHL9GaGnWjwdj4dQ==} + dependencies: + '@codemirror/autocomplete': 6.15.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.0)(@lezer/common@1.2.1) + '@codemirror/commands': 6.3.3 + '@codemirror/lang-json': 6.0.1 + '@codemirror/language': 6.10.1 + '@codemirror/lint': 6.5.0 + '@codemirror/search': 6.5.6 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.0 + '@fortawesome/free-regular-svg-icons': 6.5.1 + '@fortawesome/free-solid-svg-icons': 6.5.1 + '@lezer/highlight': 1.2.0 + '@replit/codemirror-indentation-markers': 6.5.1(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.0) + ajv: 8.12.0 + codemirror-wrapped-line-indent: 1.0.8(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.0) + diff-sequences: 29.6.3 + immutable-json-patch: 6.0.1 + jmespath: 0.16.0 + json-source-map: 0.6.1 + jsonrepair: 3.6.0 + lodash-es: 4.17.21 + memoize-one: 6.0.0 + natural-compare-lite: 1.4.0 + sass: 1.72.0 + svelte: 4.2.12 + vanilla-picker: 2.12.3 + transitivePeerDependencies: + - '@lezer/common' + dev: true + + /vanilla-jsoneditor@0.23.0(@lezer/common@1.2.1): + resolution: {integrity: sha512-8gWgvj9xqnlI5M4lXxFN0NUeDsYqT4izh6PeztViRtwaXywH8Z8J0GUWMlnnzWuhvSjnZxlrCP5Yce5V6vwqUA==} + dependencies: + '@codemirror/autocomplete': 6.15.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.0)(@lezer/common@1.2.1) + '@codemirror/commands': 6.3.3 + '@codemirror/lang-json': 6.0.1 + '@codemirror/language': 6.10.1 + '@codemirror/lint': 6.5.0 + '@codemirror/search': 6.5.6 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.0 + '@fortawesome/free-regular-svg-icons': 6.5.1 + '@fortawesome/free-solid-svg-icons': 6.5.1 + '@lezer/highlight': 1.2.0 + '@replit/codemirror-indentation-markers': 6.5.1(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.0) + ajv: 8.12.0 + codemirror-wrapped-line-indent: 1.0.8(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.0) + diff-sequences: 29.6.3 + immutable-json-patch: 6.0.1 + jmespath: 0.16.0 + json-source-map: 0.6.1 + jsonrepair: 3.6.0 + lodash-es: 4.17.21 + memoize-one: 6.0.0 + natural-compare-lite: 1.4.0 + sass: 1.72.0 + svelte: 4.2.12 + vanilla-picker: 2.12.3 + transitivePeerDependencies: + - '@lezer/common' dev: true - /vfile-reporter@8.1.0: - resolution: {integrity: sha512-NfHyHdkCcy0BsXiLA3nId29TY7W7hgpc8nd8Soe3imATx5N4/+mkLYdMR+Y6Zvu6BXMMi0FZsD4FLCm1dN85Pg==} + /vanilla-picker@2.12.3: + resolution: {integrity: sha512-qVkT1E7yMbUsB2mmJNFmaXMWE2hF8ffqzMMwe9zdAikd8u2VfnsVY2HQcOUi2F38bgbxzlJBEdS1UUhOXdF9GQ==} dependencies: - '@types/supports-color': 8.1.3 - string-width: 6.1.0 - supports-color: 9.4.0 - unist-util-stringify-position: 4.0.0 - vfile: 6.0.1 - vfile-message: 4.0.2 - vfile-sort: 4.0.0 - vfile-statistics: 3.0.0 + '@sphinxxxx/color-conversion': 2.2.2 + dev: true + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} dev: true - /vfile-sort@4.0.0: - resolution: {integrity: sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ==} + /vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} dependencies: + '@types/unist': 3.0.2 vfile: 6.0.1 - vfile-message: 4.0.2 dev: true - /vfile-statistics@3.0.0: - resolution: {integrity: sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==} + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} dependencies: - vfile: 6.0.1 - vfile-message: 4.0.2 + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 dev: true /vfile@6.0.1: @@ -10577,8 +17842,16 @@ packages: vfile-message: 4.0.2 dev: true - /vite-node@1.3.1(@types/node@20.11.24): - resolution: {integrity: sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==} + /vite-hot-client@0.2.3(vite@5.2.6): + resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==} + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 + dependencies: + vite: 5.2.6(@types/node@20.11.30) + dev: true + + /vite-node@1.4.0(@types/node@20.11.30): + resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: @@ -10586,7 +17859,7 @@ packages: debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.1.4(@types/node@20.11.24) + vite: 5.2.6(@types/node@20.11.30) transitivePeerDependencies: - '@types/node' - less @@ -10596,9 +17869,9 @@ packages: - sugarss - supports-color - terser - dev: false + dev: true - /vite-plugin-checker@0.6.4(eslint@8.57.0)(typescript@5.3.3)(vite@5.1.4): + /vite-plugin-checker@0.6.4(typescript@5.4.3)(vite@5.2.6)(vue-tsc@2.0.7): resolution: {integrity: sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==} engines: {node: '>=14.16'} peerDependencies: @@ -10629,27 +17902,27 @@ packages: vue-tsc: optional: true dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.2 ansi-escapes: 4.3.2 chalk: 4.1.2 chokidar: 3.6.0 commander: 8.3.0 - eslint: 8.57.0 fast-glob: 3.3.2 fs-extra: 11.2.0 npm-run-path: 4.0.1 semver: 7.6.0 strip-ansi: 6.0.1 tiny-invariant: 1.3.3 - typescript: 5.3.3 - vite: 5.1.4(@types/node@20.11.24) + typescript: 5.4.3 + vite: 5.2.6(@types/node@20.11.30) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - dev: false + vue-tsc: 2.0.7(typescript@5.4.3) + dev: true - /vite-plugin-inspect@0.8.3(@nuxt/kit@3.10.3)(vite@5.1.4): + /vite-plugin-inspect@0.8.3(@nuxt/kit@3.11.1)(rollup@4.13.0)(vite@5.2.6): resolution: {integrity: sha512-SBVzOIdP/kwe6hjkt7LSW4D0+REqqe58AumcnCfRNw4Kt3mbS9pEBkch+nupu2PBxv2tQi69EQHQ1ZA1vgB/Og==} engines: {node: '>=14'} peerDependencies: @@ -10660,42 +17933,42 @@ packages: optional: true dependencies: '@antfu/utils': 0.7.7 - '@nuxt/kit': 3.10.3 - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) + '@nuxt/kit': 3.11.1(rollup@4.13.0) + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) debug: 4.3.4 error-stack-parser-es: 0.1.1 fs-extra: 11.2.0 - open: 10.0.4 + open: 10.1.0 perfect-debounce: 1.0.0 picocolors: 1.0.0 sirv: 2.0.4 - vite: 5.1.4(@types/node@20.11.24) + vite: 5.2.6(@types/node@20.11.30) transitivePeerDependencies: - rollup - supports-color - dev: false + dev: true - /vite-plugin-vue-inspector@4.0.2(vite@5.1.4): + /vite-plugin-vue-inspector@4.0.2(vite@5.2.6): resolution: {integrity: sha512-KPvLEuafPG13T7JJuQbSm5PwSxKFnVS965+MP1we2xGw9BPkkc/+LPix5MMWenpKWqtjr0ws8THrR+KuoDC8hg==} peerDependencies: vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/plugin-proposal-decorators': 7.24.0(@babel/core@7.24.0) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.0) - '@vue/babel-plugin-jsx': 1.2.1(@babel/core@7.24.0) + '@babel/core': 7.24.3 + '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.3) + '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.3) '@vue/compiler-dom': 3.4.21 kolorist: 1.8.0 - magic-string: 0.30.7 - vite: 5.1.4(@types/node@20.11.24) + magic-string: 0.30.8 + vite: 5.2.6(@types/node@20.11.30) transitivePeerDependencies: - supports-color - dev: false + dev: true - /vite@5.1.4(@types/node@20.11.24): - resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} + /vite@5.2.6(@types/node@20.11.30): + resolution: {integrity: sha512-FPtnxFlSIKYjZ2eosBQamz4CbyrTizbZ3hnGJlh/wMtCrlp1Hah6AzBLjGI5I2urTfNnpovpHdrL6YRuBOPnCA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -10722,18 +17995,98 @@ packages: terser: optional: true dependencies: - '@types/node': 20.11.24 - esbuild: 0.19.12 - postcss: 8.4.35 - rollup: 4.12.0 + '@types/node': 20.11.30 + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.13.0 optionalDependencies: fsevents: 2.3.3 - dev: false + dev: true + + /vitest-environment-nuxt@1.0.0(@testing-library/vue@8.0.3)(@vue/test-utils@2.4.5)(h3@1.11.1)(happy-dom@14.3.8)(playwright-core@1.42.1)(rollup@4.13.0)(vite@5.2.6)(vitest@1.4.0)(vue-router@4.3.0)(vue@3.4.21): + resolution: {integrity: sha512-AWMO9h4HdbaFdPWZw34gALFI8gbBiOpvfbyeZwHIPfh4kWg/TwElYHvYMQ61WPUlCGaS5LebfHkaI0WPyb//Iw==} + dependencies: + '@nuxt/test-utils': 3.12.0(@testing-library/vue@8.0.3)(@vue/test-utils@2.4.5)(h3@1.11.1)(happy-dom@14.3.8)(playwright-core@1.42.1)(rollup@4.13.0)(vite@5.2.6)(vitest@1.4.0)(vue-router@4.3.0)(vue@3.4.21) + transitivePeerDependencies: + - '@cucumber/cucumber' + - '@jest/globals' + - '@playwright/test' + - '@testing-library/vue' + - '@vitest/ui' + - '@vue/test-utils' + - h3 + - happy-dom + - jsdom + - playwright-core + - rollup + - supports-color + - vite + - vitest + - vue + - vue-router + dev: true + + /vitest@1.4.0(@types/node@20.11.30)(happy-dom@14.3.8): + resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.4.0 + '@vitest/ui': 1.4.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/node': 20.11.30 + '@vitest/expect': 1.4.0 + '@vitest/runner': 1.4.0 + '@vitest/snapshot': 1.4.0 + '@vitest/spy': 1.4.0 + '@vitest/utils': 1.4.0 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.4 + execa: 8.0.1 + happy-dom: 14.3.8 + local-pkg: 0.5.0 + magic-string: 0.30.8 + pathe: 1.1.2 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 2.0.0 + tinybench: 2.6.0 + tinypool: 0.8.3 + vite: 5.2.6(@types/node@20.11.30) + vite-node: 1.4.0(@types/node@20.11.30) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true /vscode-jsonrpc@6.0.0: resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} engines: {node: '>=8.0.0 || >=10.0.0'} - dev: false + dev: true /vscode-languageclient@7.0.0: resolution: {integrity: sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==} @@ -10742,41 +18095,61 @@ packages: minimatch: 3.1.2 semver: 7.6.0 vscode-languageserver-protocol: 3.16.0 - dev: false + dev: true /vscode-languageserver-protocol@3.16.0: resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} dependencies: vscode-jsonrpc: 6.0.0 vscode-languageserver-types: 3.16.0 - dev: false + dev: true /vscode-languageserver-textdocument@1.0.11: resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + dev: true /vscode-languageserver-types@3.16.0: resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} - dev: false + dev: true /vscode-languageserver@7.0.0: resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} hasBin: true dependencies: vscode-languageserver-protocol: 3.16.0 - dev: false + dev: true /vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + dev: true /vue-bundle-renderer@2.0.0: resolution: {integrity: sha512-oYATTQyh8XVkUWe2kaKxhxKVuuzK2Qcehe+yr3bGiaQAhK3ry2kYE4FWOfL+KO3hVFwCdLmzDQTzYhTi9C+R2A==} dependencies: - ufo: 1.4.0 - dev: false + ufo: 1.5.3 + dev: true + + /vue-component-type-helpers@2.0.7: + resolution: {integrity: sha512-7e12Evdll7JcTIocojgnCgwocX4WzIYStGClBQ+QuWPinZo/vQolv2EMq4a3lg16TKfwWafLimG77bxb56UauA==} + dev: true + + /vue-demi@0.14.7(vue@3.4.21): + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.21(typescript@5.4.3) /vue-devtools-stub@0.1.0: resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} - dev: false + dev: true /vue-eslint-parser@9.4.2(eslint@8.57.0): resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} @@ -10796,16 +18169,97 @@ packages: - supports-color dev: true + /vue-final-modal@4.5.4(@vueuse/core@10.9.0)(@vueuse/integrations@10.9.0)(focus-trap@7.5.4)(vue@3.4.21): + resolution: {integrity: sha512-wYunoN89Ago2d6p/hevyo4KSfar1HxScllS6FaHujCGyx69fsb40YPGzN17bk9K68daYAgrJ1inxv+fvhIGv5A==} + peerDependencies: + '@vueuse/core': '>=10.0.0' + '@vueuse/integrations': '>=10.0.0' + focus-trap: '>=7.2.0' + vue: '>=3.2.0' + dependencies: + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(fuse.js@7.0.0)(vue@3.4.21) + focus-trap: 7.5.4 + vue: 3.4.21(typescript@5.4.3) + + /vue-i18n@9.10.2(vue@3.4.21): + resolution: {integrity: sha512-ECJ8RIFd+3c1d3m1pctQ6ywG5Yj8Efy1oYoAKQ9neRdkLbuKLVeW4gaY5HPkD/9ssf1pOnUrmIFjx2/gkGxmEw==} + engines: {node: '>= 16'} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@intlify/core-base': 9.10.2 + '@intlify/shared': 9.10.2 + '@vue/devtools-api': 6.6.1 + vue: 3.4.21(typescript@5.4.3) + dev: true + + /vue-observe-visibility@2.0.0-alpha.1(vue@3.4.21): + resolution: {integrity: sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.4.21(typescript@5.4.3) + dev: true + + /vue-resize@2.0.0-alpha.1(vue@3.4.21): + resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.4.21(typescript@5.4.3) + /vue-router@4.3.0(vue@3.4.21): resolution: {integrity: sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==} peerDependencies: vue: ^3.2.0 dependencies: '@vue/devtools-api': 6.6.1 - vue: 3.4.21(typescript@5.3.3) + vue: 3.4.21(typescript@5.4.3) + + /vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /vue-tsc@2.0.7(typescript@5.4.3): + resolution: {integrity: sha512-LYa0nInkfcDBB7y8jQ9FQ4riJTRNTdh98zK/hzt4gEpBZQmf30dPhP+odzCa+cedGz6B/guvJEd0BavZaRptjg==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/typescript': 2.1.5 + '@vue/language-core': 2.0.7(typescript@5.4.3) + semver: 7.6.0 + typescript: 5.4.3 + dev: true + + /vue-virtual-scroller@2.0.0-beta.8(vue@3.4.21): + resolution: {integrity: sha512-b8/f5NQ5nIEBRTNi6GcPItE4s7kxNHw2AIHLtDp+2QvqdTjVN0FgONwX9cr53jWRgnu+HRLPaWDOR2JPI5MTfQ==} + peerDependencies: + vue: ^3.2.0 + dependencies: + mitt: 2.1.0 + vue: 3.4.21(typescript@5.4.3) + vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.21) + vue-resize: 2.0.0-alpha.1(vue@3.4.21) + dev: true + + /vue3-toastify@0.2.1(vue@3.4.21): + resolution: {integrity: sha512-u4i5LCu1q5qs4L4Kbjb4u8NipCS8ox1fCHQ6XFS62676xnA6Q/AJRpZEkAurTMp723LeH6eQX6k9+24bKf1T4Q==} + engines: {node: '>=16', npm: '>=7'} + peerDependencies: + vue: '>=3.2.0' + peerDependenciesMeta: + vue: + optional: true + dependencies: + vue: 3.4.21(typescript@5.4.3) dev: false - /vue@3.4.21(typescript@5.3.3): + /vue@3.4.21(typescript@5.4.3): resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==} peerDependencies: typescript: '*' @@ -10818,11 +18272,18 @@ packages: '@vue/runtime-dom': 3.4.21 '@vue/server-renderer': 3.4.21(vue@3.4.21) '@vue/shared': 3.4.21 - typescript: 5.3.3 - dev: false + typescript: 5.4.3 + + /w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + dev: true - /walk-up-path@3.0.1: - resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} + /watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 dev: true /wcwidth@1.0.1: @@ -10831,23 +18292,89 @@ packages: defaults: 1.0.4 dev: true + /web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + dev: true + /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: true + + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true /webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - dev: false /webpack-virtual-modules@0.6.1: resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} - dev: false + + /webpack@5.91.0(esbuild@0.19.12): + resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) + browserslist: 4.23.0 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.16.0 + es-module-lexer: 1.5.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(esbuild@0.19.12)(webpack@5.91.0) + watchpack: 2.4.1 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + /whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + dev: true + + /whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -10859,6 +18386,16 @@ packages: is-symbol: 1.0.4 dev: true + /which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 + dev: true + /which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} dev: true @@ -10871,8 +18408,8 @@ packages: path-exists: 4.0.0 dev: true - /which-typed-array@1.1.14: - resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 @@ -10887,7 +18424,6 @@ packages: hasBin: true dependencies: isexe: 2.0.0 - dev: true /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} @@ -10902,7 +18438,7 @@ packages: hasBin: true dependencies: isexe: 2.0.0 - dev: false + dev: true /which@4.0.0: resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} @@ -10910,13 +18446,22 @@ packages: hasBin: true dependencies: isexe: 3.1.1 - dev: false + dev: true + + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true /wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: string-width: 4.2.3 - dev: false + dev: true /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} @@ -10934,6 +18479,7 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true /wrap-ansi@8.1.0: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} @@ -10942,6 +18488,7 @@ packages: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 + dev: true /wrap-ansi@9.0.0: resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} @@ -10954,6 +18501,7 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true /write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} @@ -10964,6 +18512,27 @@ packages: typedarray-to-buffer: 3.1.5 dev: true + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + dev: true + + /ws@8.11.0: + resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + /ws@8.16.0: resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} engines: {node: '>=10.0.0'} @@ -10975,7 +18544,7 @@ packages: optional: true utf-8-validate: optional: true - dev: false + dev: true /xdg-basedir@5.1.0: resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} @@ -10987,6 +18556,20 @@ packages: engines: {node: '>=12'} dev: true + /xmlhttprequest-ssl@2.0.0: + resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} + engines: {node: '>=0.4.0'} + dev: true + + /xss@1.0.15: + resolution: {integrity: sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==} + engines: {node: '>= 0.10.0'} + hasBin: true + dependencies: + commander: 2.20.3 + cssfilter: 0.0.10 + dev: true + /y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: true @@ -10994,14 +18577,13 @@ packages: /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + dev: true /yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - dev: true /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: false /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -11012,7 +18594,7 @@ packages: dependencies: eslint-visitor-keys: 3.4.3 lodash: 4.17.21 - yaml: 2.4.0 + yaml: 2.4.1 dev: true /yaml@2.3.4: @@ -11020,10 +18602,11 @@ packages: engines: {node: '>= 14'} dev: true - /yaml@2.4.0: - resolution: {integrity: sha512-j9iR8g+/t0lArF4V6NE/QCfT+CO7iLqrXAHZbJdo+LfjqP1vR8Fg5bSiaq6Q2lOD1AUEVrEVIgABvBFYojJVYQ==} + /yaml@2.4.1: + resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} engines: {node: '>= 14'} hasBin: true + dev: true /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} @@ -11036,6 +18619,7 @@ packages: /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + dev: true /yargs@15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} @@ -11065,29 +18649,53 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + dev: true + + /ylru@1.3.2: + resolution: {integrity: sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==} + engines: {node: '>= 4.0.0'} + dev: true /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + dev: true /yocto-queue@1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} dev: true + /yoga-wasm-web@0.3.3: + resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} + dev: true + /zhead@2.2.4: resolution: {integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==} - dev: false + dev: true - /zip-stream@5.0.2: - resolution: {integrity: sha512-LfOdrUvPB8ZoXtvOBz6DlNClfvi//b5d56mSWyJi7XbH/HfhOHfUhOqxhT/rUiR7yiktlunqRo+jY6y/cWC/5g==} - engines: {node: '>= 12.0.0'} + /zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} dependencies: - archiver-utils: 4.0.1 - compress-commons: 5.0.3 - readable-stream: 3.6.2 + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.5.2 + dev: true + + /zod-i18n-map@2.27.0(i18next@23.10.1)(zod@3.22.4): + resolution: {integrity: sha512-ORu9XpiVh3WDiEUs5Cr9siGgnpeODoBsTIgSD8sQCH9B//f9KowlzqHUEdPYb3vFonaSH8yPvPCOFM4niwp3Sg==} + peerDependencies: + i18next: '>=21.3.0' + zod: '>=3.17.0' + dependencies: + i18next: 23.10.1 + zod: 3.22.4 dev: false + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} dev: true diff --git a/turbo.json b/turbo.json index 9e7814f..954eac3 100644 --- a/turbo.json +++ b/turbo.json @@ -1,22 +1,31 @@ { "$schema": "https://turbo.build/schema.json", "pipeline": { + "app:prepare": { + "cache": false + }, "dev": { "cache": false, "persistent": true }, + "cleanup": { + "cache": false + }, + "build:clean": { + "cache": false + }, "build": { "dependsOn": ["^build"], - "outputs": ["dist/**", ".outputs/**"] + "outputs": ["dist/**", ".output/**"] }, "deploy": { "dependsOn": ["build", "test", "lint"] }, - "test": { - "outputs": ["coverage/**"], - "inputs": ["src/**/*.tsx", "src/**/*.ts", "test/**/*.ts", "test/**/*.tsx"] - }, + "test": {}, "lint": {}, - "typecheck": {} + "typecheck": {}, + "coverage": { + "outputs": ["coverage/**"] + } } } From 294bbe8f876041ddbd74468bb405d066c4097c3c Mon Sep 17 00:00:00 2001 From: Alan Lu Date: Wed, 27 Mar 2024 04:36:58 +0800 Subject: [PATCH 2/2] fix: useless regular-expression character escape --- packages/changeset/src/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/changeset/src/index.ts b/packages/changeset/src/index.ts index 7a80259..79e9cab 100644 --- a/packages/changeset/src/index.ts +++ b/packages/changeset/src/index.ts @@ -71,11 +71,11 @@ const defaultCommitTypes = [ ] export function isBreakingChange(commit: string) { - return commit.includes('BREAKING CHANGE:') || defaultCommitTypes.some((commitType) => commit.match(new RegExp(`^${commitType.type}(?:\(.*\))?!:`))) + return commit.includes('BREAKING CHANGE:') || defaultCommitTypes.some((commitType) => commit.match(new RegExp(`^${commitType.type}(?:(.*))?!:`))) } export function isConventionalCommit(commit: string) { - return defaultCommitTypes.some((commitType) => commit.match(new RegExp(`^${commitType.type}(?:\(.*\))?!?:`))) + return defaultCommitTypes.some((commitType) => commit.match(new RegExp(`^${commitType.type}(?:(.*))?!?:`))) } /* Attempts to associate non-conventional commits to the nearest conventional commit */