diff --git a/.eslintrc.js b/.eslintrc.js
index 4e79b48f8e..b61a401ab4 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,34 +1,29 @@
module.exports = {
- "env": {
- "browser": true,
- "es6": true,
- "mocha": true,
- "node": true
- },
- "extends": [
- "plugin:@typescript-eslint/recommended"
- ],
- "parser": "@typescript-eslint/parser",
- "parserOptions": {
- "project": "tsconfig.json",
- "sourceType": "module"
- },
- "plugins": [
- "@typescript-eslint",
- "prettier"
- ],
- "ignorePatterns": ["**/lib/", "**/dist/"],
- "rules": {
- "prettier/prettier": "error",
- "@typescript-eslint/no-explicit-any": "off",
- "@typescript-eslint/no-unused-vars": [
- "warn", // or "error"
- {
- "argsIgnorePattern": "^_",
- "varsIgnorePattern": "^_",
- "caughtErrorsIgnorePattern": "^_",
- "ignoreRestSiblings": true
- }
- ]
- }
-};
+ env: {
+ browser: true,
+ es6: true,
+ mocha: true,
+ node: true
+ },
+ extends: ['plugin:@typescript-eslint/recommended'],
+ parser: '@typescript-eslint/parser',
+ parserOptions: {
+ project: 'tsconfig.json',
+ sourceType: 'module'
+ },
+ plugins: ['@typescript-eslint', 'prettier'],
+ ignorePatterns: ['**/lib/', '**/cjs/', '**/dist/', 'website/'],
+ rules: {
+ 'prettier/prettier': 'error',
+ '@typescript-eslint/no-explicit-any': 'off',
+ '@typescript-eslint/no-unused-vars': [
+ 'warn', // or "error"
+ {
+ argsIgnorePattern: '^_',
+ varsIgnorePattern: '^_',
+ caughtErrorsIgnorePattern: '^_',
+ ignoreRestSiblings: true
+ }
+ ]
+ }
+}
diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml
index 0e5fa98d11..7d5bdd093e 100644
--- a/.github/workflows/nodejs.yml
+++ b/.github/workflows/nodejs.yml
@@ -8,32 +8,15 @@ jobs:
strategy:
matrix:
- node-version: [18.x, 20.x]
-
- services:
- postgres:
- image: postgres:latest
- env:
- POSTGRES_DB: feathers
- POSTGRES_PASSWORD: postgres
- POSTGRES_PORT: 5432
- POSTGRES_USER: postgres
- ports:
- - 5432:5432
- options: >-
- --health-cmd pg_isready
- --health-interval 10s
- --health-timeout 5s
- --health-retries 5
+ node-version: [20.x, 24.x]
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v1
+ uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- - run: npm install
+ - run: npm ci
- run: npm test
env:
CI: true
- TEST_DB: postgres
diff --git a/.gitignore b/.gitignore
index 23c3853ef3..bbeaa35f02 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,6 +40,12 @@ dist/
# TypeScript compiled files
packages/**/lib
+packages/**/cjs
**/build/*.tgz
*.sqlite
-docs/.vitepress/cache
\ No newline at end of file
+docs/.vitepress/cache
+
+# Website (uses pnpm independently)
+website/node_modules
+website/.nuxt
+website/.output
diff --git a/.mocharc.json b/.mocharc.json
deleted file mode 100644
index afb61cb4d6..0000000000
--- a/.mocharc.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "timeout": 30000,
- "require": ["ts-node/register", "source-map-support/register"],
- "reporter": "Dot",
- "extension": ".test.ts",
- "exit": true
-}
diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 0000000000..2bd5a0a98a
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+22
diff --git a/.nycrc b/.nycrc
deleted file mode 100644
index bea9ca089d..0000000000
--- a/.nycrc
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "verbose": false,
- "tempDirectory": "./coverage/.tmp",
- "semistandard": {
- "env": [
- "mocha"
- ]
- },
- "extension": [
- ".ts",
- ".tsx",
- ".js"
- ],
- "exclude": [
- "**/test/*",
- "**/dist/*",
- "**/*.dist.js",
- "**/_templates/*",
- "**/tests/*",
- "**/adapter-tests/*"
- ],
- "print": "detail",
- "reporter": [
- "html",
- "text",
- "text-summary",
- "lcov"
- ],
- "watermarks": {
- "statements": [
- 70,
- 90
- ],
- "lines": [
- 70,
- 90
- ],
- "functions": [
- 70,
- 90
- ],
- "branches": [
- 70,
- 90
- ]
- }
-}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ceff2d33cf..f6c7d9cdbb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,108 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [6.0.0-pre.11](https://github.com/feathersjs/feathers/compare/v6.0.0-pre.10...v6.0.0-pre.11) (2026-03-19)
+
+### Bug Fixes
+
+- Add CommonJS legacy build for backwards compatibility ([#3674](https://github.com/feathersjs/feathers/issues/3674)) ([9d0cdda](https://github.com/feathersjs/feathers/commit/9d0cddaf3418939c6fc96a2144bb0cbd18157d80))
+- Add SSE disconnect event ([#3673](https://github.com/feathersjs/feathers/issues/3673)) ([b04d785](https://github.com/feathersjs/feathers/commit/b04d7858a10e63d53d2b6f382fac377ff5a8c37c))
+- Improve SSE handling and add documentation ([#3672](https://github.com/feathersjs/feathers/issues/3672)) ([714792d](https://github.com/feathersjs/feathers/commit/714792d6741a3aa3fbe4b01c9dda61af0a3b2257))
+
+### Features
+
+- npm create feathers for v6 ([#3654](https://github.com/feathersjs/feathers/issues/3654)) ([358c50e](https://github.com/feathersjs/feathers/commit/358c50e780ad055b9feab007124e883d83fd6c44))
+
+# [6.0.0-pre.10](https://github.com/feathersjs/feathers/compare/v6.0.0-pre.9...v6.0.0-pre.10) (2026-02-19)
+
+### Features
+
+- Replace query-string with qs@6-compatible bracket-notation parser ([#3662](https://github.com/feathersjs/feathers/issues/3662)) ([471e571](https://github.com/feathersjs/feathers/commit/471e5717fddc2da73af199e785b5f3b5fc1b5473))
+
+# [6.0.0-pre.9](https://github.com/feathersjs/feathers/compare/v6.0.0-pre.8...v6.0.0-pre.9) (2026-02-19)
+
+**Note:** Version bump only for package feathers
+
+# [6.0.0-pre.8](https://github.com/feathersjs/feathers/compare/v6.0.0-pre.7...v6.0.0-pre.8) (2026-02-19)
+
+### Bug Fixes
+
+- **website:** add .npmrc to allow native module builds ([0fbe74d](https://github.com/feathersjs/feathers/commit/0fbe74d439e6096e01bd641729156053454f4b00))
+- **website:** add pnpm.onlyBuiltDependencies to package.json ([47be7fe](https://github.com/feathersjs/feathers/commit/47be7fe4c21fc23791794c1c64ca9d68e04c052e))
+- **website:** enable build scripts in pnpm config ([0cbbd26](https://github.com/feathersjs/feathers/commit/0cbbd26f0050b448cfc9998010f9afeef3c8da49))
+- **website:** enable observability logs in wrangler config ([8c2a2a1](https://github.com/feathersjs/feathers/commit/8c2a2a118c9404638cd76a899571face5572b384))
+- **website:** remove broken links from API index ([a065bdc](https://github.com/feathersjs/feathers/commit/a065bdc3d8f37b4ce4afb776f78ecce58406a5c9))
+- **website:** update @feathersdev/websites to 0.0.4 ([#3652](https://github.com/feathersjs/feathers/issues/3652)) ([197295d](https://github.com/feathersjs/feathers/commit/197295ddee25cae93af1891404751ffa39985be3))
+
+### Features
+
+- Remove qs dependency ([#3659](https://github.com/feathersjs/feathers/issues/3659)) ([2e787a8](https://github.com/feathersjs/feathers/commit/2e787a8b7d36c653007dce9cd532b50686c8174b))
+- Replace events package with modern TypeScript implementation ([#3658](https://github.com/feathersjs/feathers/issues/3658)) ([6c4deab](https://github.com/feathersjs/feathers/commit/6c4deab262219b41d8e660c7a1b8466c4890fa59))
+- **website:** add D1 database binding for content ([9839437](https://github.com/feathersjs/feathers/commit/9839437a1a60cf1261d56cca4d41bf93f1892112))
+- **website:** configure full observability logging in wrangler ([6f1e2c8](https://github.com/feathersjs/feathers/commit/6f1e2c84350b4dfcf931d88825c4a06510c912df))
+
+# [6.0.0-pre.7](https://github.com/feathersjs/feathers/compare/v6.0.0-pre.6...v6.0.0-pre.7) (2026-01-29)
+
+**Note:** Version bump only for package feathers
+
+# [6.0.0-pre.6](https://github.com/feathersjs/feathers/compare/v6.0.0-pre.5...v6.0.0-pre.6) (2026-01-29)
+
+### Bug Fixes
+
+- **client:** Buffer SSE stream chunks before parsing ([#3643](https://github.com/feathersjs/feathers/issues/3643)) ([e3cc58c](https://github.com/feathersjs/feathers/commit/e3cc58c3a59f1bd0044d13f79d1326878f3857b5))
+- **website:** add Badges component and update markdown syntax ([7c45c1c](https://github.com/feathersjs/feathers/commit/7c45c1c3ae00c45803767088f720c4c2c3fc4c78))
+- **website:** update search collections and add ThemeToggle component ([1a8bb35](https://github.com/feathersjs/feathers/commit/1a8bb3546dda247337b724f7e83d24de15b5c915))
+
+### Features
+
+- v6 initial website ([#3641](https://github.com/feathersjs/feathers/issues/3641)) ([b539643](https://github.com/feathersjs/feathers/commit/b53964381233bee7fcb9e50b77508164aa756bb5))
+- **website:** add scroll-aware table of contents and sidebar navigation ([5194823](https://github.com/feathersjs/feathers/commit/51948237e637b89eb9fc3fdd1144267effc7f7e8))
+
+# [6.0.0-pre.5](https://github.com/feathersjs/feathers/compare/v6.0.0-pre.4...v6.0.0-pre.5) (2025-12-20)
+
+**Note:** Version bump only for package feathers
+
+# [6.0.0-pre.4](https://github.com/feathersjs/feathers/compare/v6.0.0-pre.3...v6.0.0-pre.4) (2025-12-20)
+
+### Bug Fixes
+
+- Do not allow id or undefined in fetch client .get ([#3632](https://github.com/feathersjs/feathers/issues/3632)) ([4faeeec](https://github.com/feathersjs/feathers/commit/4faeeecf0911dcf1cd121446c9ac22c7b0aa0c9d))
+
+### Features
+
+- **http:** Add multipart/form-data support for file uploads ([#3634](https://github.com/feathersjs/feathers/issues/3634)) ([8476bf2](https://github.com/feathersjs/feathers/commit/8476bf23b10218e531f2ad93f3c5934e1582da7b))
+- **http:** Add streaming request body support ([#3635](https://github.com/feathersjs/feathers/issues/3635)) ([4c2aa85](https://github.com/feathersjs/feathers/commit/4c2aa859465da46334b9b5d2209766a17d71a8b7))
+
+# [6.0.0-pre.3](https://github.com/feathersjs/feathers/compare/v6.0.0-pre.2...v6.0.0-pre.3) (2025-10-10)
+
+### Bug Fixes
+
+- Fix redirect URI encoding ([#3621](https://github.com/feathersjs/feathers/issues/3621)) ([4dbcce5](https://github.com/feathersjs/feathers/commit/4dbcce598d894846899417cd51820a70b00f22e0))
+
+# [6.0.0-pre.2](https://github.com/feathersjs/feathers/compare/v6.0.0-pre.1...v6.0.0-pre.2) (2025-09-04)
+
+### Bug Fixes
+
+- Add typesVersions for TypeScript compatibility ([87c181c](https://github.com/feathersjs/feathers/commit/87c181cf8d3bcd4f86d0caad41de83d220077ad8))
+
+# [6.0.0-pre.1](https://github.com/feathersjs/feathers/compare/v6.0.0-pre.0...v6.0.0-pre.1) (2025-09-03)
+
+### Bug Fixes
+
+- Add compatibility exports ([#3605](https://github.com/feathersjs/feathers/issues/3605)) ([3aed869](https://github.com/feathersjs/feathers/commit/3aed8696ca95fe4a4351c2d7e7f274ab66b50c09))
+- Add registerPublisher method to protected method list ([2c0664a](https://github.com/feathersjs/feathers/commit/2c0664acf97dca3bf7a2efaf3564f04c3de5842e))
+
+# [6.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v5.0.34...v6.0.0-pre.0) (2025-08-30)
+
+### Bug Fixes
+
+- Make handling of async iterables consistent ([#3602](https://github.com/feathersjs/feathers/issues/3602)) ([a29ea3c](https://github.com/feathersjs/feathers/commit/a29ea3c89bf0fe07f0aec823ef3f3e33941f1aa3))
+
+### Features
+
+- SSE real-time events ([#3601](https://github.com/feathersjs/feathers/issues/3601)) ([fbfb75c](https://github.com/feathersjs/feathers/commit/fbfb75c5a2fde7ff785a71e787e746952b7a47b3))
+- V6 packages refactor ([#3596](https://github.com/feathersjs/feathers/issues/3596)) ([364aab5](https://github.com/feathersjs/feathers/commit/364aab563542fc9d6dd96c1f5f48b146727d7d1e))
+
## [5.0.34](https://github.com/feathersjs/feathers/compare/v5.0.33...v5.0.34) (2025-05-03)
### Bug Fixes
diff --git a/LICENSE b/LICENSE
index 7712f870f3..3b2691f486 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2024 Feathers Contributors
+Copyright (c) 2026 Feathers Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -19,4 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-
diff --git a/README.md b/README.md
index 1f6cebbdec..1b448978ea 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-
+
---
@@ -10,7 +10,7 @@
Feathers is a full-stack framework for creating web APIs and real-time applications with TypeScript or JavaScript.
-Feathers can interact with any backend technology, supports many databases out of the box and works with any frontend like React, VueJS, Angular, React Native, Android or iOS.
+Feathers works with Node.js, Deno, Bun, Cloudflare Workers and standalone in the browser and can interact with any backend technology, supports many databases out of the box and works with any frontend like React, VueJS, Angular, React Native, Android or iOS.
# Getting started
@@ -48,6 +48,6 @@ npm test
# License
-Copyright (c) 2024 [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
+Copyright (c) 2026 [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
Licensed under the [MIT license](LICENSE).
diff --git a/docs/.vitepress/components.d.ts b/docs/.vitepress/components.d.ts
deleted file mode 100644
index 1a744ba1f0..0000000000
--- a/docs/.vitepress/components.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/* eslint-disable */
-// @ts-nocheck
-// Generated by unplugin-vue-components
-// Read more: https://github.com/vuejs/core/pull/3399
-export {}
-
-/* prettier-ignore */
-declare module 'vue' {
- export interface GlobalComponents {
- Badges: typeof import('./components/Badges.vue')['default']
- BlockQuote: typeof import('./components/BlockQuote.vue')['default']
- Contributors: typeof import('./components/Contributors.vue')['default']
- DatabaseBlock: typeof import('./components/DatabaseBlock.vue')['default']
- DatabaseSelect: typeof import('./components/DatabaseSelect.vue')['default']
- ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
- ElInput: typeof import('element-plus/es')['ElInput']
- ElOption: typeof import('element-plus/es')['ElOption']
- ElRadio: typeof import('element-plus/es')['ElRadio']
- ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
- ElSelect: typeof import('element-plus/es')['ElSelect']
- FeaturesList: typeof import('./components/FeaturesList.vue')['default']
- LanguageBlock: typeof import('./components/LanguageBlock.vue')['default']
- LanguageSelect: typeof import('./components/LanguageSelect.vue')['default']
- ListItem: typeof import('./components/ListItem.vue')['default']
- Logo: typeof import('./components/Logo.vue')['default']
- Select: typeof import('./components/Select.vue')['default']
- Tab: typeof import('./components/Tab.vue')['default']
- Tabs: typeof import('./components/Tabs.vue')['default']
- TeamMember: typeof import('./components/TeamMember.vue')['default']
- }
-}
diff --git a/docs/.vitepress/components/Badges.vue b/docs/.vitepress/components/Badges.vue
deleted file mode 100644
index 74381d28e4..0000000000
--- a/docs/.vitepress/components/Badges.vue
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
diff --git a/docs/.vitepress/components/BlockQuote.vue b/docs/.vitepress/components/BlockQuote.vue
deleted file mode 100644
index 6594d318d2..0000000000
--- a/docs/.vitepress/components/BlockQuote.vue
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
- {{ label || type }}
-
-
-
-
diff --git a/docs/.vitepress/components/Contributors.vue b/docs/.vitepress/components/Contributors.vue
deleted file mode 100644
index 6fa8dcd327..0000000000
--- a/docs/.vitepress/components/Contributors.vue
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
diff --git a/docs/.vitepress/components/DatabaseBlock.vue b/docs/.vitepress/components/DatabaseBlock.vue
deleted file mode 100644
index afd7e7a1c5..0000000000
--- a/docs/.vitepress/components/DatabaseBlock.vue
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
diff --git a/docs/.vitepress/components/DatabaseSelect.vue b/docs/.vitepress/components/DatabaseSelect.vue
deleted file mode 100644
index 5a930b7612..0000000000
--- a/docs/.vitepress/components/DatabaseSelect.vue
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
diff --git a/docs/.vitepress/components/FeaturesList.vue b/docs/.vitepress/components/FeaturesList.vue
deleted file mode 100644
index 2422b31276..0000000000
--- a/docs/.vitepress/components/FeaturesList.vue
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
- Vite 's config, transformers, resolvers, and plugins.
- Use the same setup from your app to run the tests!
- Smart & instant watch mode, like HMR for tests!
- Components testing for Vue, React, Svelte, Lit and more
- Out-of-box TypeScript / JSX support
- ESM first, top level await
- Workers multi-threading via tinypool
- Filtering, timeouts, concurrent for suite and tests
- Jest Snapshot
- Chai built-in for assertions + Jest expect compatible APIs
- Tinyspy built-in for mocking
- happy-dom or jsdom for DOM mocking
- Native code coverage via c8
- Rust like in-source testing
-
-
-
-
diff --git a/docs/.vitepress/components/LanguageBlock.vue b/docs/.vitepress/components/LanguageBlock.vue
deleted file mode 100644
index f12c0f2d49..0000000000
--- a/docs/.vitepress/components/LanguageBlock.vue
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
diff --git a/docs/.vitepress/components/LanguageSelect.vue b/docs/.vitepress/components/LanguageSelect.vue
deleted file mode 100644
index b77d4c27ff..0000000000
--- a/docs/.vitepress/components/LanguageSelect.vue
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
diff --git a/docs/.vitepress/components/ListItem.vue b/docs/.vitepress/components/ListItem.vue
deleted file mode 100644
index ae92d61a0e..0000000000
--- a/docs/.vitepress/components/ListItem.vue
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/.vitepress/components/Logo.vue b/docs/.vitepress/components/Logo.vue
deleted file mode 100644
index e60a917bb4..0000000000
--- a/docs/.vitepress/components/Logo.vue
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/docs/.vitepress/components/Select.vue b/docs/.vitepress/components/Select.vue
deleted file mode 100644
index 1ce60ceeeb..0000000000
--- a/docs/.vitepress/components/Select.vue
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
-
- {{ label }}
-
-
-
- {{ option.text }}
-
-
-
-
-
-
-
-
-
diff --git a/docs/.vitepress/components/Tab.vue b/docs/.vitepress/components/Tab.vue
deleted file mode 100644
index 8b4d2fdd78..0000000000
--- a/docs/.vitepress/components/Tab.vue
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
diff --git a/docs/.vitepress/components/Tabs.vue b/docs/.vitepress/components/Tabs.vue
deleted file mode 100644
index 59d939c5ef..0000000000
--- a/docs/.vitepress/components/Tabs.vue
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
-
- setActiveTab(index)"
- >
- {{ tab.name }}
-
-
-
-
-
-
diff --git a/docs/.vitepress/components/TeamMember.vue b/docs/.vitepress/components/TeamMember.vue
deleted file mode 100644
index b0c9ab6e96..0000000000
--- a/docs/.vitepress/components/TeamMember.vue
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
-
diff --git a/docs/.vitepress/config.nav.ts b/docs/.vitepress/config.nav.ts
deleted file mode 100644
index 02585a1da6..0000000000
--- a/docs/.vitepress/config.nav.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { releases } from './meta'
-// import { version } from '../package.json'
-
-const version = 5
-
-export default [
- { text: 'Guides', link: '/guides/' },
- { text: 'API', link: '/api/' },
- { text: 'Help', link: '/help/' },
- {
- text: `v${version}`,
- items: [
- {
- text: 'Release Notes ',
- link: releases
- },
- {
- text: 'Crow v4 ',
- link: 'https://crow.docs.feathersjs.com'
- },
- {
- text: 'Buzzard v3 ',
- link: 'https://buzzard.docs.feathersjs.com'
- }
- ]
- },
- {
- text: 'Ecosystem',
- link: '/ecosystem/'
- }
-]
diff --git a/docs/.vitepress/config.sidebar.ts b/docs/.vitepress/config.sidebar.ts
deleted file mode 100644
index 78779ff635..0000000000
--- a/docs/.vitepress/config.sidebar.ts
+++ /dev/null
@@ -1,501 +0,0 @@
-const comparisonSidebar = [
- {
- text: 'Compare Feathers',
- items: [
- {
- text: 'Overview',
- link: '/comparison'
- },
- {
- text: 'Feathers vs Firebase',
- link: '/feathers-vs-firebase'
- },
- {
- text: 'Feathers vs Meteor',
- link: '/feathers-vs-meteor'
- },
- {
- text: 'Feathers vs Sails',
- link: '/feathers-vs-sails'
- },
- {
- text: 'Feathers vs Loopback',
- link: '/feathers-vs-loopback'
- }
- ]
- }
-]
-
-export default {
- '/guides': [
- {
- text: 'Getting Started',
- collapsible: true,
- items: [
- {
- text: 'Quick start',
- link: '/guides/basics/starting.md'
- },
- {
- text: 'Creating an app',
- link: '/guides/basics/generator.md'
- },
- {
- text: 'Authentication',
- link: '/guides/basics/authentication.md'
- },
- {
- text: 'Services',
- link: '/guides/basics/services.md'
- },
- {
- text: 'Hooks',
- link: '/guides/basics/hooks.md'
- },
- {
- text: 'Schemas',
- link: '/guides/basics/schemas.md'
- },
- {
- text: 'Logging in',
- link: '/guides/basics/login.md'
- }
- // {
- // text: 'Writing Tests',
- // link: '/guides/basics/testing.md'
- // }
- ]
- },
- {
- text: 'Frontend',
- collapsible: true,
- collapsed: false,
- items: [
- {
- text: 'JavaScript',
- link: '/guides/frontend/javascript.md'
- }
- // {
- // text: 'Frontend Frameworks',
- // link: '/guides/frameworks.md'
- // }
- ]
- },
- {
- text: 'CLI',
- collapsible: true,
- collapsed: true,
- items: [
- {
- text: '📖 Readme',
- link: '/guides/cli/index.md'
- },
- {
- text: '📂 config',
- items: [
- {
- text: '📄 default.json',
- link: '/guides/cli/default.json.md'
- },
- {
- text: '📄 custom-environment-variables.json',
- link: '/guides/cli/custom-environment-variables.md'
- }
- ]
- },
- {
- text: '📂 src',
- items: [
- {
- text: '📂 hooks',
- items: [
- {
- text: '📄 <hook>',
- link: '/guides/cli/hook.md'
- },
- {
- text: '📄 log-error',
- link: '/guides/cli/log-error.md'
- }
- ]
- },
- {
- text: '📂 services',
- items: [
- {
- text: '📂 <service>',
- items: [
- {
- text: '📄 <service>',
- link: '/guides/cli/service.md'
- },
- {
- text: '📄 <service>.class',
- link: '/guides/cli/service.class.md'
- },
- {
- text: '📄 <service>.schemas',
- link: '/guides/cli/service.schemas.md'
- },
- {
- text: '📄 <service>.shared',
- link: '/guides/cli/service.shared.md'
- }
- ]
- }
- ]
- },
- {
- text: '📄 app',
- link: '/guides/cli/app.md'
- },
- {
- text: '📄 authentication',
- link: '/guides/cli/authentication.md'
- },
- {
- text: '📄 channels',
- link: '/guides/cli/channels.md'
- },
- {
- text: '📄 client',
- link: '/guides/cli/client.md'
- },
- {
- text: '📄 configuration',
- link: '/guides/cli/configuration.md'
- },
- {
- text: '📄 declarations',
- link: '/guides/cli/declarations.md'
- },
- {
- text: '📄 logger',
- link: '/guides/cli/logger.md'
- },
- {
- text: '📄 validators',
- link: '/guides/cli/validators.md'
- },
- {
- text: '📄 <database>',
- link: '/guides/cli/databases.md'
- }
- ]
- },
- {
- text: '📂 test',
- items: [
- {
- text: '📄 client.test',
- link: '/guides/cli/client.test.md'
- },
- {
- text: '📄 app.test',
- link: '/guides/cli/app.test.md'
- },
- {
- text: '📄 <service>.test',
- link: '/guides/cli/service.test.md'
- }
- ]
- },
- {
- text: '📄 .prettierrc',
- link: '/guides/cli/prettierrc.md'
- },
- {
- text: '📄 knexfile',
- link: '/guides/cli/knexfile.md'
- },
- {
- text: '📄 package.json',
- link: '/guides/cli/package.md'
- },
- {
- text: '📄 tsconfig.json',
- link: '/guides/cli/tsconfig.md'
- }
- ]
- },
- {
- text: 'Migrating',
- // collapsible: true,
- items: [
- {
- text: "What's new?",
- link: '/guides/whats-new.md'
- },
- {
- text: 'Migration guide',
- link: '/guides/migrating.md'
- }
- ]
- }
- ],
- '/api': [
- {
- text: 'Core',
- collapsible: true,
- items: [
- {
- text: 'Application',
- link: '/api/application'
- },
- {
- text: 'Services',
- link: '/api/services'
- },
- {
- text: 'Hooks',
- link: '/api/hooks'
- },
- {
- text: 'Events',
- link: '/api/events'
- },
- {
- text: 'Errors',
- link: '/api/errors'
- }
- ]
- },
- {
- text: 'Transports',
- collapsible: true,
- collapsed: true,
- items: [
- {
- text: 'Configuration',
- link: '/api/configuration'
- },
- {
- text: 'Koa',
- link: '/api/koa'
- },
- {
- text: 'Express',
- link: '/api/express'
- },
- {
- text: 'Socket.io',
- link: '/api/socketio'
- },
- {
- text: 'Channels',
- link: '/api/channels'
- }
- ]
- },
- {
- text: 'Authentication',
- collapsible: true,
- collapsed: true,
- items: [
- {
- text: 'Overview',
- link: '/api/authentication/'
- },
- {
- text: 'Service',
- link: '/api/authentication/service'
- },
- {
- text: 'Hook',
- link: '/api/authentication/hook'
- },
- {
- text: 'Strategies',
- link: '/api/authentication/strategy'
- },
- {
- text: 'JWT',
- link: '/api/authentication/jwt'
- },
- {
- text: 'Local',
- link: '/api/authentication/local'
- },
- {
- text: 'OAuth',
- link: '/api/authentication/oauth'
- }
- ]
- },
- {
- text: 'Client',
- collapsible: true,
- collapsed: true,
- items: [
- {
- text: 'Feathers Client',
- link: '/api/client'
- },
- {
- text: 'REST Client',
- link: '/api/client/rest'
- },
- {
- text: 'Socket.io Client',
- link: '/api/client/socketio'
- },
- {
- text: 'Authentication',
- link: '/api/authentication/client'
- }
- ]
- },
- {
- text: 'Schema',
- collapsible: true,
- collapsed: true,
- items: [
- {
- text: 'Overview',
- link: '/api/schema/'
- },
- {
- text: 'TypeBox',
- link: '/api/schema/typebox'
- },
- {
- text: 'JSON schema',
- link: '/api/schema/schema'
- },
- {
- text: 'Validators',
- link: '/api/schema/validators'
- },
- {
- text: 'Resolvers',
- link: '/api/schema/resolvers'
- }
- ]
- },
- {
- text: 'Databases',
- collapsible: true,
- collapsed: true,
- items: [
- {
- text: 'Adapters',
- link: '/api/databases/adapters'
- },
- {
- text: 'Common API',
- link: '/api/databases/common'
- },
- {
- text: 'Querying',
- link: '/api/databases/querying'
- },
- {
- text: 'MongoDB',
- link: '/api/databases/mongodb'
- },
- {
- text: 'SQL',
- link: '/api/databases/knex'
- },
- {
- text: 'Memory',
- link: '/api/databases/memory'
- }
- ]
- }
- ],
- '/help': [
- {
- text: 'Help',
- items: [
- {
- text: 'Getting Help',
- link: '/help/'
- },
- {
- text: 'FAQ',
- link: '/help/faq'
- }
- ]
- }
- ],
- '/cookbook': [
- {
- text: 'General',
- items: [
- {
- text: 'Scaling',
- link: '/cookbook/general/scaling'
- }
- ]
- },
- {
- text: 'Authentication',
- items: [
- {
- text: 'Anonymous',
- link: '/cookbook/authentication/anonymous'
- },
- {
- text: 'API Key',
- link: '/cookbook/authentication/apiKey'
- },
- {
- text: 'Auth0',
- link: '/cookbook/authentication/auth0'
- },
- {
- text: 'Facebook',
- link: '/cookbook/authentication/facebook'
- },
- {
- text: 'Google',
- link: '/cookbook/authentication/google'
- },
- {
- text: 'Firebase',
- link: '/cookbook/authentication/firebase'
- },
- {
- text: 'Discord',
- link: '/cookbook/authentication/_discord'
- },
- {
- text: 'Stateless JWT',
- link: '/cookbook/authentication/stateless'
- },
- {
- text: 'Revoking JWTs',
- link: '/cookbook/authentication/revoke-jwt'
- }
- ]
- },
- {
- text: 'Express',
- items: [
- {
- text: 'File Uploads',
- link: '/cookbook/express/file-uploading'
- },
- {
- text: 'View Engine SSR',
- link: '/cookbook/express/view-engine'
- }
- ]
- },
- {
- text: 'Deployment',
- items: [
- {
- text: 'Dockerize a Feathers App',
- link: '/cookbook/deploy/docker'
- }
- ]
- }
- ],
- '/comparison': comparisonSidebar,
- '/feathers-vs-firebase': comparisonSidebar,
- '/feathers-vs-meteor': comparisonSidebar,
- '/feathers-vs-sails': comparisonSidebar,
- '/feathers-vs-loopback': comparisonSidebar
-}
diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts
deleted file mode 100644
index ec5bdc69a5..0000000000
--- a/docs/.vitepress/config.ts
+++ /dev/null
@@ -1,95 +0,0 @@
-import { defineConfig } from 'vitepress'
-import { discord, font, github, ogImage, ogUrl, twitter, feathersDescription, feathersName } from './meta'
-import sidebar from './config.sidebar'
-import nav from './config.nav'
-
-// For sitemap/search
-import { createWriteStream } from 'node:fs'
-import { SitemapStream } from 'sitemap'
-import { resolve } from 'node:path'
-const links: any[] = []
-
-export default defineConfig({
- lang: 'en-US',
- title: feathersName,
- description: feathersDescription,
- head: [
- ['meta', { name: 'theme-color', content: '#ffffff' }],
- ['link', { rel: 'icon', href: '/logo.svg', type: 'image/svg+xml' }],
- ['link', { rel: 'alternate icon', href: '/favicon.ico', type: 'image/png', sizes: '16x16' }],
- [
- 'meta',
- {
- name: 'author',
- content: `daffl, marshallswain, and FeathersJS contributors`
- }
- ],
- [
- 'meta',
- {
- name: 'keywords',
- content:
- 'feathersjs, feathers, react, vue, preact, svelte, solid, typescript, esm, node, deno, cloudflare, workers'
- }
- ],
- ['meta', { property: 'og:title', content: feathersName }],
- ['meta', { property: 'og:description', content: feathersDescription }],
- ['meta', { property: 'og:url', content: ogUrl }],
- ['meta', { property: 'og:image', content: ogImage }],
- ['meta', { name: 'twitter:title', content: feathersName }],
- ['meta', { name: 'twitter:description', content: feathersDescription }],
- ['meta', { name: 'twitter:image', content: ogImage }],
- ['meta', { name: 'twitter:card', content: 'summary_large_image' }],
- ['link', { href: font, rel: 'stylesheet' }],
- ['link', { rel: 'mask-icon', href: '/logo.svg', color: '#ffffff' }],
- ['link', { rel: 'apple-touch-icon', href: '/apple-touch-icon.png', sizes: '180x180' }]
- ],
- lastUpdated: true,
- markdown: {
- theme: {
- light: 'vitesse-light',
- dark: 'vitesse-dark'
- }
- },
- themeConfig: {
- logo: '/logo.svg',
-
- editLink: {
- pattern: 'https://github.com/feathersjs/feathers/edit/dove/docs/:path',
- text: 'Suggest changes to this page'
- },
-
- socialLinks: [
- { icon: 'discord', link: discord },
- { icon: 'github', link: github }
- ],
-
- footer: {
- message: 'Released under the MIT License.',
- copyright: `Copyright © 2012-${new Date().getFullYear()} FeathersJS contributors`
- },
-
- nav,
- sidebar
- },
- // for sitemap/search
- transformHtml: (_: any, id: any, { pageData }: any) => {
- if (!/[\\/]404\.html$/.test(id))
- links.push({
- // you might need to change this if not using clean urls mode
- url: pageData.relativePath.replace(/((^|\/)index)?\.md$/, '$2'),
- lastmod: pageData.lastUpdated
- })
- },
- // for sitemap/search
- buildEnd: async ({ outDir }) => {
- const sitemap = new SitemapStream({
- hostname: 'https://dove.feathersjs.com/'
- })
- const writeStream = createWriteStream(resolve(outDir, 'sitemap.xml'))
- sitemap.pipe(writeStream)
- links.forEach((link) => sitemap.write(link))
- sitemap.end()
- await new Promise((r) => writeStream.on('finish', r))
- }
-})
diff --git a/docs/.vitepress/meta.ts b/docs/.vitepress/meta.ts
deleted file mode 100644
index 297b490a51..0000000000
--- a/docs/.vitepress/meta.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-// noinspection ES6PreferShortImport: IntelliJ IDE hint to avoid warning to use `~/contributors`, will fail on build if changed
-
-/* Texts */
-export const feathersName = 'feathers'
-export const feathersShortName = 'feathers'
-export const feathersDescription = 'The API & Real-time Application Framework'
-
-/* CDN fonts and styles */
-export const googleapis = 'https://fonts.googleapis.com'
-export const gstatic = 'https://fonts.gstatic.com'
-export const font = `${googleapis}/css2?family=Readex+Pro:wght@200;400;600&display=swap`
-
-/* vitepress head */
-export const ogUrl = 'https://feathersjs.com/'
-export const ogImage = `${ogUrl}og.png`
-
-/* GitHub and social links */
-export const github = 'https://github.com/feathersjs/feathers'
-export const releases = 'https://github.com/feathersjs/feathers/releases'
-export const contributing = 'https://github.com/feathersjs/feathers/blob/master/.github/contributing.md'
-export const discord = 'https://discord.gg/qa8kez8QBx'
-export const twitter = null;
-
-/* Avatar/Image/Sponsors servers */
-export const preconnectLinks = [googleapis, gstatic]
-export const preconnectHomeLinks = [googleapis, gstatic]
-
-/* PWA runtime caching urlPattern regular expressions */
-export const pwaFontsRegex = new RegExp(`^${googleapis}/.*`, 'i')
-export const pwaFontStylesRegex = new RegExp(`^${gstatic}/.*`, 'i')
diff --git a/docs/.vitepress/scripts/assets.ts b/docs/.vitepress/scripts/assets.ts
deleted file mode 100644
index 2daca50f7d..0000000000
--- a/docs/.vitepress/scripts/assets.ts
+++ /dev/null
@@ -1,93 +0,0 @@
-import { promises as fs } from 'fs'
-import fg from 'fast-glob'
-import { font, preconnectHomeLinks, preconnectLinks } from '../meta'
-
-const preconnect = `
- ${preconnectLinks.map(l => ` `).join('\n')}
- ${preconnectLinks.map(l => ` `).join('\n')}
-`
-
-const preconnectHome = `
- ${preconnectHomeLinks.map(l => ` `).join('\n')}
- ${preconnectHomeLinks.map(l => ` `).join('\n')}
-`
-
-export const optimizePages = async (pwa: boolean) => {
- const names = await fg('./.vitepress/dist/**/*.html', { onlyFiles: true })
-
- await Promise.all(names.map(async (i) => {
- let html = await fs.readFile(i, 'utf-8')
-
- let prefetchImg = '\n\t '
-
- let usePreconnect = preconnect
-
- if (i.endsWith('/dist/index.html')) {
- usePreconnect = preconnectHome
- prefetchImg = `
-${prefetchImg}
-\t
-\t
-`
- }
-
- // we need the font on development, so the font entry is added in vitepress head
- html = html.replace(` `, '')
-
- html = html.replace(
- / /g,
- `
- ${usePreconnect}
-
-
-
-
-
- `).trim()
-
- if (pwa) {
- html = html.replace(
- '',
- `
-\t ${prefetchImg}
-\t \n`,
- )
- }
- else {
- html = html.replace(
- '',
- `
-${prefetchImg}
-`,
- )
- }
-
- // TODO: dark/light theme, don't remove yet
- // html = html.replace(
- // '',
- // '\t \n',
- // )
-
- html = html.replace(
- /aria-hidden="true"/gi,
- 'tabindex="-1" aria-hidden="true"',
- ).replace(
- / replaced with h2 with the same size */
-.home-content h2 {
- margin-top: 2rem;
- font-size: 1.35rem;
- border-bottom: none;
- margin-bottom: 0;
-}
-
-img.resizable-img {
- width: unset;
- height: unset;
-}
-
-body[data-language='js'] pre.language-selectable[data-language='ts'] {
- display: none;
-}
-
-body[data-language='ts'] pre.language-selectable[data-language='js'] {
- display: none;
-}
diff --git a/docs/.vitepress/style/vars.postcss b/docs/.vitepress/style/vars.postcss
deleted file mode 100644
index b908a45e1f..0000000000
--- a/docs/.vitepress/style/vars.postcss
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * Colors
- * -------------------------------------------------------------------------- */
-
-:root {
- --primary: #ed8a80; /* congo pink */
- --primary-content: #3C3C3B; /* charcoal */
- --neutral: #27464F; /* midnight green */
- --neutral-content: #EDEDED; /* cloud */
- --secondary: #EDEDED; /* charcoal */
- --secondary-content: #3C3C3B; /* cloud */
- --accent: #3C3C3B; /* charcoal */
- --accent-content: #EDEDED; /* cloud */
- --btn-focus-scale: 1.05;
-
- --vp-c-accent: rgb(218, 180, 11);
- --vp-c-brand: var(--primary);
- --vp-c-brand-light: #FFA69D;
- --vp-c-brand-lighter: #FA978D;
- --vp-c-brand-dark: #e47f75;
- --vp-c-brand-darker: #db6d62;
- --vp-code-block-bg: rgba(125,125,125,0.04);
- --vp-c-green-light: rgb(18, 181, 157);
- --vp-custom-block-tip-border: rgba(18, 181, 157, 0.5);
- --vp-custom-block-tip-bg: rgba(18, 181, 157, 0.1);
- --vp-code-line-highlight-color: rgba(18, 181, 157, 0.2);
- /* --vp-code-line-highlight-color: #eea74b22; */
- /* --vp-code-line-highlight-color: #db6d6232; */
- /* --vp-code-line-highlight-color: #db6d6232; */
- /* --vp-code-line-highlight-color: rgba(0, 0, 0, 0.1); */
-}
-
-.dark {
- --vp-code-block-bg: rgba(0,0,0,0.2);
- --vp-code-line-highlight-color: rgba(18, 181, 157, 0.15);
-}
-
-/**
- * Component: Button
- * -------------------------------------------------------------------------- */
-
-:root {
- --vp-button-brand-border: var(--vp-c-brand-light);
- --vp-button-brand-text: var(--vp-c-text-dark-1);
- --vp-button-brand-bg: var(--vp-c-brand);
- --vp-button-brand-hover-border: var(--vp-c-brand-light);
- --vp-button-brand-hover-text: var(--vp-c-text-dark-1);
- --vp-button-brand-hover-bg: var(--vp-c-brand-light);
- --vp-button-brand-active-border: var(--vp-c-brand-light);
- --vp-button-brand-active-text: var(--vp-c-text-dark-1);
- --vp-button-brand-active-bg: var(--vp-button-brand-bg);
-}
-
-/**
- * Component: Home
- * -------------------------------------------------------------------------- */
-
- :root {
- --vp-home-hero-name-color: transparent;
- --vp-home-hero-name-background: -webkit-linear-gradient(
- 120deg,
- #f850ce 30%,
- #c10893
- );
- --vp-home-hero-image-background-image: linear-gradient(
- -45deg,
- #ffffff8f 30%,
- #ff85f75e
- );
- --vp-home-hero-image-filter: blur(30px);
-}
-
-@media (min-width: 640px) {
- :root {
- --vp-home-hero-image-filter: blur(56px);
- }
-}
-
-@media (min-width: 960px) {
- :root {
- --vp-home-hero-image-filter: blur(72px);
- }
-}
-
-
-/**
- * Component: Algolia
- * -------------------------------------------------------------------------- */
-
-.DocSearch {
- --docsearch-primary-color: var(--vp-c-brand) !important;
-}
diff --git a/docs/.vitepress/theme/FeathersLayout.vue b/docs/.vitepress/theme/FeathersLayout.vue
deleted file mode 100644
index 3b1ac2b8e6..0000000000
--- a/docs/.vitepress/theme/FeathersLayout.vue
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts
deleted file mode 100644
index c6eff0da6c..0000000000
--- a/docs/.vitepress/theme/index.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-import googleAnalytics from 'vitepress-plugin-google-analytics'
-import 'element-plus/theme-chalk/dark/css-vars.css'
-
-import '../vite-env.d'
-import Theme from 'vitepress/theme'
-import { inBrowser } from 'vitepress'
-import '../style/main.postcss'
-import '../style/vars.postcss'
-import 'uno.css'
-import FeathersLayout from './FeathersLayout.vue'
-import Tab from '../components/Tab.vue'
-import Tabs from '../components/Tabs.vue'
-import Select from '../components/Select.vue'
-import Badges from '../components/Badges.vue'
-import Logo from '../components/Logo.vue'
-import BlockQuote from '../components/BlockQuote.vue'
-import LanguageBlock from '../components/LanguageBlock.vue'
-import DatabaseBlock from '../components/DatabaseBlock.vue'
-
-import '../style/element-plus.scss'
-// import 'element-plus/dist/index.css'
-
-if (inBrowser) import('./pwa')
-
-export default {
- ...Theme,
- Layout: FeathersLayout,
- enhanceApp({ app }) {
- googleAnalytics({
- id: 'G-XQ8CKCD9L6'
- }),
- // Globally register components so they don't have to be imported in the template.
- app.component('Tabs', Tabs)
- app.component('Tab', Tab)
- app.component('Select', Select)
- app.component('Badges', Badges)
- app.component('Logo', Logo)
- app.component('BlockQuote', BlockQuote)
- app.component('LanguageBlock', LanguageBlock)
- app.component('DatabaseBlock', DatabaseBlock)
- }
-}
diff --git a/docs/.vitepress/theme/pwa.ts b/docs/.vitepress/theme/pwa.ts
deleted file mode 100644
index 01b098a7ec..0000000000
--- a/docs/.vitepress/theme/pwa.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { registerSW } from 'virtual:pwa-register'
-
-registerSW({ immediate: true })
diff --git a/docs/.vitepress/theme/store.ts b/docs/.vitepress/theme/store.ts
deleted file mode 100644
index 61321c52d8..0000000000
--- a/docs/.vitepress/theme/store.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { createGlobalState, useStorage } from '@vueuse/core'
-
-export const useGlobalLanguage = createGlobalState(() => useStorage('global-language', 'ts'))
-export const useGlobalDb = createGlobalState(() => useStorage('global-db', 'sql'))
diff --git a/docs/.vitepress/vite-env.d.ts b/docs/.vitepress/vite-env.d.ts
deleted file mode 100644
index 323c78a6cd..0000000000
--- a/docs/.vitepress/vite-env.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-///
-
-declare module '*.vue' {
- import type { DefineComponent } from 'vue'
- const component: DefineComponent<{}, {}, any>
- export default component
-}
diff --git a/docs/api/authentication/client.md b/docs/api/authentication/client.md
deleted file mode 100644
index 46ffd3c69d..0000000000
--- a/docs/api/authentication/client.md
+++ /dev/null
@@ -1,214 +0,0 @@
----
-outline: deep
----
-
-# Authentication Client
-
-
-
-[](https://www.npmjs.com/package/@feathersjs/authentication-client)
-[](https://github.com/feathersjs/feathers/blob/dove/packages/authentication-client/CHANGELOG.md)
-
-
-
-```
-npm install @feathersjs/authentication-client --save
-```
-
-The `@feathersjs/authentication-client` module allows you to easily authenticate a Feathers client against a Feathers server. It is not required, but makes it easier to implement authentication in your client by automatically storing and sending the access token and handling re-authenticating when a websocket disconnects.
-
-## Usage
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import socketio from '@feathersjs/socketio-client'
-import io from 'socket.io-client'
-import authentication from '@feathersjs/authentication-client'
-
-const socket = io('http://api.feathersjs.com')
-const app = feathers()
-
-// Setup the transport (Rest, Socket, etc.) here
-app.configure(socketio(socket))
-
-// Available options are listed in the "Options" section
-app.configure(authentication())
-```
-
-## Options
-
-The following options are available for `app.configure(authentication(options))`:
-
-- `storage` (default: `localStorage` if available, `MemoryStorage` otherwise) - The storage to store the access token. For React Native use `import { AsyncStorage } from 'react-native'`
-- `path` (default: '/authentication') - The path of the authentication service
-- `locationKey` (default: `'access_token'`) - The name of the window hash parameter to parse for an access token from the `window.location`. Usually used by the OAuth flow.
-- `locationErrorKey` (default: `'error') - The name of the window hash parameter to parse for authentication errors. Usually used by the OAuth flow.
-- `jwtStrategy` (default: `'jwt'`) - The access token authentication strategy
-- `storageKey` (default: `'feathers-jwt'`) - Key for storing the token in `storage`
-- `header` (default: `'Authorization'`) - Name of the accessToken header
-- `scheme` (default: `'Bearer'`) - The HTTP header scheme
-- Authentication (default: `AuthenticationClient`) - Allows to provide a [customized authentication client class](#customization)
-
-
-
-Verifying or parsing the token on the client usually isn't necessary since the server does that on JWT authentication and returns with the token information but it can still be done manually with the [jwt-decode](https://www.npmjs.com/package/jwt-decode) package.
-
-
-
-## app.reAuthenticate([force])
-
-`app.reAuthenticate() -> Promise` will try to authenticate using the access token from the storage or the window location (e.g. after a successful [OAuth](./oauth.md) login). This is normally called to either show your application (when successful) or showing a login page or redirecting to the appropriate OAuth link.
-
-```js
-try {
- await app.reAuthenticate()
- showDashboard()
-} catch (error) {
- showLoginPage()
-}
-```
-
-
-
-`app.reAuthenticate()` has to be called when you want to use the token from storage. **There is no need to call it more than once**, so you’d typically only do it once when the application initializes. When successful, all subsequent requests will send their authentication information automatically.
-
-
-
-In some rare cases, for example making sure the user object returned by `app.get('authentication')` is up-to-date after it was changed on the server, you may force reauthentication via `app.reAuthenticate(true)`.
-
-## app.authenticate(data)
-
-`app.authenticate(data) -> Promise` will try to authenticate with a Feathers server by passing a `strategy` and other properties as credentials.
-
-```ts
-try {
- // Authenticate with the local email/password strategy
- await app.authenticate({
- strategy: 'local',
- email: 'my@email.com',
- password: 'my-password'
- })
- // Show e.g. logged in dashboard page
-} catch (error: any) {
- // Show login page (potentially with `e.message`)
- console.error('Authentication error', e)
-}
-```
-
-- `data {Object}` - of the format `{strategy [, ...otherProps]}`
- - `strategy {String}` - the name of the strategy to be used to authenticate. Required.
- - `...otherProps {Properties} ` vary depending on the chosen strategy. Above is an example of using the `local` strategy.
-
-## app.logout()
-
-Removes the access token from storage on the client. It also calls the `remove` method of the [authentication service](./service.md).
-
-## app.get('authentication')
-
-`app.get('authentication') -> Promise` is a Promise that resolves with the current authentication information. For most strategies this is the best place to **get the currently authenticated user**:
-
-```js
-// Returns the authenticated user
-const { user } = await app.get('authentication')
-// Gets the authenticated accessToken (JWT)
-const { accessToken } = await app.get('authentication')
-```
-
-## app.authentication
-
-Returns the instance of the [AuthenticationClient](#authenticationclient).
-
-## AuthenticationClient
-
-### service
-
-`app.authentication.service` returns an instance of the authentication client service, normally `app.service('authentication')`.
-
-### storage
-
-`app.authentication.storage` returns the storage instance (e.g. window.LocalStorage, React Native AsyncStorage or an in-memory store).
-
-### handleSocket(socket)
-
-`app.authentication.handleSocket(socket) -> void` makes sure that a websocket real-time connection is always re-authenticated before making any other request.
-
-### getFromLocation(location)
-
-`app.authentication.getFromLocation(location) -> Promise` tries to retrieve an access token from `window.location`. This usually means the `access_token` in the hash set by the [OAuth authentication strategy](./oauth.md).
-
-### setAccessToken(token)
-
-`app.authentication.setAccessToken(token) -> Promise` sets the access token in the storage (normally `feathers-jwt` in `window.localStorage`).
-
-### getAccessToken()
-
-`app.authentication.getAccessToken() -> Promise` returns the access token from `storage`. If not found it will try to get the access token via [getFromLocation()]() or return `null` if neither was successful.
-
-### removeAccessToken()
-
-`app.authentication.removeAccessToken() -> Promise` removes the access token from the storage.
-
-### reset()
-
-`app.authentication.reset()` resets the authentication state without explicitly logging out. Should not be called directly.
-
-### handleError()
-
-`app.authentication.handleError(error, type: 'authenticate'|'logout') -> Promise` handles any error happening in the `authenticate` or `logout` method. By default it removes the access token if the error is a `NotAuthenticate` error. Otherwise it does nothing.
-
-### reAuthenticate(force, strategy?)
-
-`app.authentication.reAuthenticate(force = false, strategy) -> Promise` will re-authenticate with the current access token from [app.authentication.getAccessToken()](). If `force` is set to `true` it will always re-authenticate, with the default `false` only when not already authenticated.
-
-`strategy` is an optional parameter which defaults to the configured `jwtStrategy`.
-
-### authenticate()
-
-The internal method called when using [app.authenticate()](#app-authenticate-data).
-
-### logout()
-
-The internal method called when using [app.logout()](#app-logout).
-
-## Customization
-
-The [AuthenticationClient]() can be extended to provide custom functionality and then passed during initialization:
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import socketio from '@feathersjs/socketio-client'
-import io from 'socket.io-client'
-import authentication, { AuthenticationClient } from '@feathersjs/authentication-client'
-
-const socket = io('http://api.feathersjs.com')
-const app = feathers()
-
-class MyAuthenticationClient extends AuthenticationClient {
- getFromLocation(location) {
- // Do custom location things here
- return super.getFromLocation(location)
- }
-}
-
-// Setup the transport (Rest, Socket, etc.) here
-app.configure(socketio(socket))
-
-// Pass the custom authentication client class as the `Authentication` option
-app.configure(
- authentication({
- Authentication: MyAuthenticationClient
- })
-)
-```
-
-## Hooks
-
-The following hooks are added to the client side application automatically (when calling `app.configure(authentication())`).
-
-### authentication
-
-Hook that ensures for every request that authentication is completed and successful. It also makes the authentication information available in the client side `params` (e.g. `params.user`).
-
-### populateHeader
-
-Adds the appropriate `Authorization` header for any REST request.
diff --git a/docs/api/authentication/hook.md b/docs/api/authentication/hook.md
deleted file mode 100644
index 4c75e1ec79..0000000000
--- a/docs/api/authentication/hook.md
+++ /dev/null
@@ -1,63 +0,0 @@
----
-outline: deep
----
-
-# Authenticate Hook
-
-The `authenticate` hook will use `params.authentication` of the service method call and run [authenticationService.authenticate()](./service.md#authenticate-data-params-strategies).
-
-The hook will
-
-- Throw an error if the strategy fails
-- Throw an error if no authentication information is set and it is an external call (`params.provider` is set) or do nothing if it is an internal call (`params.provider` is `undefined`)
-- If successful, merge `params` with the return value of the authentication strategy
-
-For example, a successful [JWT strategy](./jwt.md) authentication will set:
-
-```js
-params.authentication.payload // The decoded payload
-params.authentication.strategy === 'jwt' // The strategy name
-params.user // or params[entity] if entity is not `null`
-```
-
-In the following hooks and for the service method call. It can be used as a `before` or `around` [hook](../hooks.md).
-
-## authenticate(...strategies)
-
-Check `params.authentication` against a list of authentication strategy names.
-
-```ts
-import { authenticate } from '@feathersjs/authentication'
-
-// Authenticate with `jwt` and `api-key` strategy
-// using app.service('authentication') as the authentication service
-app.service('messages').hooks({
- around: {
- all: [authenticate('jwt', 'api-key')]
- }
-})
-```
-
-## authenticate(options)
-
-Check `params.authentication` against a list of strategies and specific authentication service. Available `options` are:
-
-- `service` - The path to the authentication service
-- `strategies` - A list of strategy names
-
-```js
-import { authenticate } from '@feathersjs/authentication'
-
-// Authenticate with `jwt` and `api-key` strategy
-// using app.service('v1/authentication') as the authentication service
-app.service('messages').hooks({
- before: {
- all: [
- authenticate({
- service: 'v1/authentication',
- strategies: ['jwt', 'api-key']
- })
- ]
- }
-})
-```
diff --git a/docs/api/authentication/index.md b/docs/api/authentication/index.md
deleted file mode 100644
index ed354470fe..0000000000
--- a/docs/api/authentication/index.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-outline: deep
----
-
-# Authentication Overview
-
-The `@feathersjs/authentication` plugins provide a collection of tools for username/password, JWT and OAuth (GitHub, Facebook etc.) authentication as well as custom authentication mechanisms.
-
-It consists of the following core modules:
-
-- `@feathersjs/authentication` which includes
- - The [AuthenticationService](./service.md) that allows to register [authentication strategies](./strategy.md) and create and manage access tokens
- - The [JWTStrategy](./jwt.md) to use JWTs to make authenticated requests
- - The [authenticate hook](./hook.md) to limit service calls to an authentication strategy.
-- [Local authentication](./local.md) for local username/password authentication
-- [OAuth authentication](./oauth.md) for Google, GitHub, Facebook etc. authentication
-- [The authentication client](./client.md) to use Feathers authentication on the client.
-
-
-
-`@feathersjs/authentication` is an abstraction for different authentication mechanisms. It does not handle things like user verification or password reset functionality etc. This can be implemented manually, with the help of libraries like [feathers-authentication-management](https://github.com/feathers-plus/feathers-authentication-management) or a platform like [Auth0](https://auth0.com/).
-
-
diff --git a/docs/api/authentication/jwt.md b/docs/api/authentication/jwt.md
deleted file mode 100644
index 88d562bbb8..0000000000
--- a/docs/api/authentication/jwt.md
+++ /dev/null
@@ -1,157 +0,0 @@
----
-outline: deep
----
-
-# JWT Authentication
-
-
-
-[](https://www.npmjs.com/package/@feathersjs/authentication)
-[](https://github.com/feathersjs/feathers/blob/dove/packages/authentication/CHANGELOG.md)
-
-
-
-```
-npm install @feathersjs/authentication --save
-```
-
-The `JWTStrategy` is an [authentication strategy](./strategy.md) included in `@feathersjs/authentication` for authenticating [JSON web tokens (JWT)](https://jwt.io/):
-
-```json
-{
- "strategy": "jwt",
- "accessToken": ""
-}
-```
-
-## Usage
-
-```ts
-import { AuthenticationService, JWTStrategy } from '@feathersjs/authentication'
-import type { Application } from './declarations'
-
-declare module './declarations' {
- interface ServiceTypes {
- authentication: AuthenticationService
- }
-}
-
-export const authentication = (app: Application) => {
- const authentication = new AuthenticationService(app)
-
- authentication.register('jwt', new JWTStrategy())
-
- app.use('authentication', authentication)
-}
-```
-
-## Options
-
-Options are set in the [authentication configuration](./service.md#configuration) under the strategy name. Available options are:
-
-- `header` (default: `'Authorization'`): The HTTP header containing the JWT
-- `schemes` (default: `[ 'Bearer', 'JWT' ]`): An array of schemes to support
-
-The default settings support passing the JWT through the following HTTP headers:
-
-```
-Authorization:
-Authorization: Bearer
-Authorization: JWT
-```
-
-Options are usually set under the registered name via [Feathers configuration](../configuration.md) in `config/default.json` or `config/.json`:
-
-```json
-{
- "authentication": {
- "jwt": {
- "header": "X-Auth"
- }
- }
-}
-```
-
-
-
-Since the default options are what most clients expect for JWT authentication they usually don't need to be customized.
-
-
-
-To change the settings for generating and validating a JWT see the [authentication service configuration](./service.md#configuration)
-
-## JwtStrategy
-
-### getEntity(id, params)
-
-`jwtStrategy.getEntity(id, params)` returns the entity instance for `id`, usually `entityService.get(id, params)`. It will _not_ be called if `entity` in the [authentication configuration](./service.md#configuration) is set to `null`.
-
-### authenticate(data, params)
-
-`jwtStrategy.authenticate(data, params)` will try to verify `data.accessToken` by calling the strategies [authenticationService.verifyAccessToken](./service.md).
-
-Returns a promise that resolves with the following format:
-
-```js
-{
- [entity],
- accessToken,
- authentication: {
- strategy: 'jwt',
- payload
- }
-}
-```
-
-
-
-Since the JWT strategy returns an `accessToken` property (the same as the token sent to this strategy), that access token will also be returned by [authenticationService.create](./service.md#create-data-params) instead of creating a new one.
-
-
-
-### getEntityQuery(params)
-
-Returns the `query` to use when calling `entityService.get` (default: `{}`).
-
-### parse(req, res)
-
-Parse the HTTP request headers for JWT authentication information. By default in the `Authorization` header. Returns a promise that resolves with either `null` or data in the form of:
-
-```js
-{
- strategy: '',
- accessToken: ''
-}
-```
-
-## Customization
-
-```ts
-import { AuthenticationService, JWTStrategy } from '@feathersjs/authentication'
-import { LocalStrategy } from '@feathersjs/authentication-local'
-import type { Application } from './declarations'
-
-declare module './declarations' {
- interface ServiceTypes {
- authentication: AuthenticationService
- }
-}
-
-class MyJwtStrategy extends JWTStrategy {
- // Only allow authenticating activated users
- async getEntityQuery(params: Params) {
- return {
- active: true
- }
- }
-}
-
-export default (app: Application) => {
- const authentication = new AuthenticationService(app)
-
- authentication.register('jwt', new MyJwtStrategy())
-
- // ...
- app.use('authentication', authentication)
-}
-```
diff --git a/docs/api/authentication/local.md b/docs/api/authentication/local.md
deleted file mode 100644
index a5c521428f..0000000000
--- a/docs/api/authentication/local.md
+++ /dev/null
@@ -1,180 +0,0 @@
----
-outline: deep
----
-
-# Local Authentication
-
-
-
-[](https://www.npmjs.com/package/@feathersjs/authentication-local)
-[](https://github.com/feathersjs/feathers/blob/dove/packages/authentication-local/CHANGELOG.md)
-
-
-
-```
-npm install @feathersjs/authentication-local --save
-```
-
-`@feathersjs/authentication-local` provides a `LocalStrategy` for authenticating with a username/email and password combination, e.g.
-
-```json
-{
- "strategy": "local",
- "email": "hello@feathersjs.com",
- "password": "supersecret"
-}
-```
-
-## Usage
-
-```ts
-import { AuthenticationService } from '@feathersjs/authentication'
-import { LocalStrategy } from '@feathersjs/authentication-local'
-import type { Application } from './declarations'
-
-declare module './declarations' {
- interface ServiceTypes {
- authentication: AuthenticationService
- }
-}
-
-export const authentication = (app: Application) => {
- const authentication = new AuthenticationService(app)
-
- authentication.register('local', new LocalStrategy())
-
- app.use('authentication', authentication)
-}
-```
-
-## Options
-
-Options are set in the [authentication configuration](./service.md#configuration) under the strategy name. Available options are:
-
-- `usernameField`: Name of the username field (e.g. `'email'`), may be a nested property (e.g. `'auth.email'`)
-- `passwordField`: Name of the password field (e.g. `'password'`), may be a nested property (e.g. `'auth.password'`)
-- `hashSize` (default: `10`): The BCrypt salt length
-- `errorMessage` (default: `'Invalid login'`): The error message to return on errors
-- `entityUsernameField` (default: `usernameField`): Name of the username field on the entity if authentication request data and entity field names are different
-- `entityPasswordField` (default: `passwordField`): Name of the password field on the entity if authentication request data and entity field names are different
-
-Options are usually set under the registered name via [Feathers configuration](../configuration.md) in `config/default.json` or `config/.json`:
-
-```json
-{
- "authentication": {
- "local": {
- "usernameField": "email",
- "passwordField": "password"
- }
- }
-}
-```
-
-## LocalStrategy
-
-
-
-The methods described in this section are intended for [customization](#customization) purposes and internal calls. They usually do not need to be called directly.
-
-
-
-### getEntityQuery(query, params)
-
-`localStrategy.getEntityQuery(query, params) -> Promise` returns the query for finding the entity. `query` includes the `usernameField` or `entityUsernameField` as `{ [field]: username }` and by default returns a promise that resolves with `{ $limit: 1 }` combined with `query`.
-
-### findEntity(username, params)
-
-`localStrategy.findEntity(username, params) -> Promise` return the entity for a given username and service call parameters. It will use the query returned by `getEntityQuery` and call `.find` on the entity (usually `/users`) service. It will return a promise that resolves with the first result of the `.find` call or throw an error if nothing was found.
-
-### getEntity(entity, params)
-
-`localStrategy.getEntity(authResult, params) -> Promise` returns the external representation for `entity` that will be sent back to the client.
-
-### hashPassword(password)
-
-`localStrategy.hashPassword(password) -> Promise` creates a safe one-way hash of the given plain `password` string. By default [bCryptJS](https://www.npmjs.com/package/bcryptjs) is used.
-
-### comparePassword(entity, password)
-
-`localStrategy.comparePassword(entity, password) -> Promise` compares a plain text `password` with the hashed password of the `entity` returned by `findEntity`. Returns the `entity` or throws an error if the passwords don't match.
-
-### authenticate(authentication, params)
-
-`localStrategy.authenticate(authentication, params)` is the main endpoint implemented by any [authentication strategy](./strategy.md). It is usually called for authentication requests for this strategy by the [AuthenticationService](./service.md).
-
-## Customization
-
-The `LocalStrategy` can be customized like any ES6 class and then registered on the [AuthenticationService](./service.md):
-
-```ts
-import type { Application, Params, Query } from '@feathersjs/feathers'
-import { AuthenticationService, JWTStrategy } from '@feathersjs/authentication'
-import { LocalStrategy } from '@feathersjs/authentication-local'
-
-class MyLocalStrategy extends LocalStrategy {
- async getEntityQuery(query: Query, params: Params) {
- // Query for use but only include `active` users
- return {
- ...query,
- active: true,
- $limit: 1
- }
- }
-}
-
-export default (app: Application) => {
- const authService = new AuthenticationService(app)
-
- authService.register('local', new MyLocalStrategy())
-
- // ...
- app.use('/authentication', authService)
-}
-```
-
-## Helpers
-
-### Protecting fields
-
-As of Feathers v5, external [resolvers](../schema/resolvers.md) using the `schemaHooks.resolveExternal` hook are the preferred method to hide or change fields for external requests. The following will always hide the user password for external responses and events:
-
-```ts
-import { resolve, schemaHooks } from '@feathersjs/schema'
-
-export const userExternalResolver = resolve({
- properties: {
- // The password should never be visible externally
- password: async () => undefined
- }
-})
-
-app.service('users').hooks({
- after: {
- all: [schemaHooks.resolveExternal(userExternalResolver)]
- }
-})
-```
-
-### passwordHash
-
-The `passwordHash` utility provides a [property resolver function](../schema/resolvers.md#property-resolvers) that uses a local strategy to securely [hash the password](#hashpassword-password) before storing it in the database. The following options are available:
-
-- `strategy` - The name of the local strategy (usually `'local'`)
-- `service` - The path of the authentication service (will use `app.get('defaultAuthentication')` by default)
-
-```ts
-export const userDataResolver = resolve({
- properties: {
- password: passwordHash({ strategy: 'local' })
- }
-})
-```
-
-### hashPassword(field)
-
-The `hashPassword` hook is provided for Feathers v4 backwards compatibility but **has been deprecated** in favour of the [passwordHash resolver](#passwordhash).
-
-### protect(...fields)
-
-The `protect` hook is provided for Feathers v4 backwards compatibility but **has been deprecated** in favour of [external data resolvers](../schema/resolvers.md).
diff --git a/docs/api/authentication/oauth.md b/docs/api/authentication/oauth.md
deleted file mode 100644
index 202287203c..0000000000
--- a/docs/api/authentication/oauth.md
+++ /dev/null
@@ -1,326 +0,0 @@
----
-outline: deep
----
-
-# OAuth
-
-
-
-[](https://www.npmjs.com/package/@feathersjs/authentication-oauth)
-[](https://github.com/feathersjs/feathers/blob/dove/packages/authentication-oauth/CHANGELOG.md)
-
-
-
-```
-npm install @feathersjs/authentication-oauth --save
-```
-
-`@feathersjs/authentication-oauth` allows to authenticate with over 180 OAuth providers (Google, Facebook, GitHub etc.) using [grant](https://github.com/simov/grant), an OAuth middleware module for NodeJS.
-
-## Usage
-
-The following section covers oAuth authentication strategy [setup](#setup) and a more detailed description of the possible oAuth [flows](#flow) and [oAuth URLs](#oauth-urls).
-
-### Setup
-
-The following is a standard oAuth setup. The `OAuthStrategy` often needs to be [customized](#customization) to include additional fields (like the avatar, email address or username) from the oAuth provider.
-
-```ts
-import { AuthenticationService, JWTStrategy } from '@feathersjs/authentication'
-import { LocalStrategy } from '@feathersjs/authentication-local'
-import { OAuthStrategy, oauth } from '@feathersjs/authentication-oauth'
-import type { Application } from './declarations'
-
-declare module './declarations' {
- interface ServiceTypes {
- authentication: AuthenticationService
- }
-}
-
-export const authentication = (app: Application) => {
- const authentication = new AuthenticationService(app)
-
- authentication.register('jwt', new JWTStrategy())
- authentication.register('github', new OAuthStrategy())
- authentication.register('google', new OAuthStrategy())
-
- app.use('authentication', authentication)
- app.configure(oauth({}))
-}
-```
-
-The following settings for `app.configure(oauth())` are available:
-
-- `linkStrategy` (default: `'jwt'`) - The name of the stratagy to use for [account linking](#account-linking)
-- `authService` (default: `app.get('defaultAuthentication')`) - The path of the authentication service to use
-- `expressSession` - An Express middleware for handling sessions. By default will use an HTTP cookie that is only available for the oAuth flow. **This normally does not need to be changed.**
-- `koaSession` - A Koa middleware for handling sessions. By default will use an HTTP cookie that is only available for the oAuth flow. **This normally does not need to be changed.**
-
-### Providers
-
-For specific OAuth provider setup see the following [cookbook](../../cookbook/) guides:
-
-- [Auth0](../../cookbook/authentication/auth0.md)
-- [Facebook](../../cookbook/authentication/facebook.md)
-- [Google](../../cookbook/authentication/google.md)
-
-### Flow
-
-There are two ways to initiate OAuth authentication:
-
-1. Through the browser (most common)
-
- - User clicks on link to OAuth URL (`oauth/`)
- - Gets redirected to provider and authorizes the application
- - Callback to the [OauthStrategy](#oauthstrategy) which
- - Gets the users profile
- - Finds or creates the user (entity) for that profile
- - The [AuthenticationService](./service.md) creates an access token for that entity
- - Redirects back to the origin URL including the generated access token
- - The frontend (e.g. the Feathers [authentication client](./client.md)) uses the returned access token to authenticate
-
-2. With an existing access token, e.g. obtained through the Facebook mobile SDK
- - Authenticate normally through the [authentication service](./service.md) with `{ strategy: '', accessToken: 'oauth access token' }`.
- - Calls the [OauthStrategy](#oauthstrategy) which
- - Gets the users profile
- - Finds or creates the entity for that profile
- - Returns the authentication result
-
-
-
-If you are attempting to authenticate using an existing oAuth access token, ensure that you have added the strategy (e.g. 'facebook') to the allowed [authStrategies](./service.md#configuration) configuration.
-
-
-
-### OAuth URLs
-
-There are two URLs and redirects that are important for OAuth authentication:
-
-- `http(s):///oauth/`: The main URL to initiate the OAuth flow. **Link to this from the browser.**
-- `http(s):///oauth//callback`: The callback path that should be **set in the OAuth provider application settings.**
-
-In the browser any OAuth flow can be initiated with a link like this:
-
-```html
-Login with GitHub
-```
-
-### Account linking
-
-To **link an existing user** the current access token can be added to the OAuth flow query using the `feathers_token` query parameter:
-
-```html
- Login with GitHub
-```
-
-This will use the user (entity) of that access token to link the OAuth account to. Using the [authentication client](./client.md) you can get the current access token via `app.get('authentication')`:
-
-```ts
-const { accessToken } = await app.get('authentication')
-```
-
-### Redirects
-
-The recommended way to enable redirects is to set a list of allowed `origins` in your [application configuration](../configuration.md) (e.g. `config/default.json`). This will ensure cross origin restrictions across your application and allow oAuth authentication from different frontend applications.
-
-```js
-{
- "origins": [
- // Allow redirect to a local development frontend
- // (e.g. a create-react-app server) and our production URL
- "http://localhost:500", "https://myapp.feathersjs.com"
- ]
-}
-```
-
-**Alternatively**, the `redirect` configuration can be used to redirect back to the frontend application after OAuth authentication was successful and an access token for the user has been created by the [authentication service](./service.md) or if authentication failed. It works cross domain and by default includes the access token or error message in the window location hash. The following configuration
-
-```js
-{
- "authentication": {
- "oauth": {
- "redirect": "https://app.mydomain.com/"
- }
- }
-}
-```
-
-A successful oAuth flow will redirect to the origin or redirect URL in the form of `https://app.mydomain.com/#access_token=` or `https://app.mydomain.com/#error=`. Redirects can be customized with the [getRedirect()](#getredirect-data) method of the OAuth strategy. The [authentication client](./client.md) handles the default redirects automatically already.
-
-
-
-The redirect is using a hash instead of a query string by default because it is not logged server side and can be easily read on the client. You can force query based redirect by adding a `?` to the end of the `redirect` option.
-
-
-
-If the `redirect` option is not set and no origin is available the authentication result data will be sent as JSON instead.
-
-Dynamic redirects to the same URL are possible by setting the `redirect` query parameter in the OAuth flow. For example, the following OAuth link:
-
-```html
- Login with GitHub
-```
-
-With the above configuration will redirect to `https://app.mydomain.com/dashboard` after the OAuth flow.
-
-## Options
-
-Options are usually set under the registered name via [Feathers configuration](../configuration.md) in `config/default.json` or `config/.json` under the `authentication.oauth` section. Available options are:
-
-- `origins` (default: `app.get('origins')`): A list of URLs from which oAuth authentication should be allowed. For example setting this option to`[ "https://feathersjs.com", "https://feathers.cloud" ]` would allow requests from those domains and redirect back to where the request came from. This can be used **instead of** the `redirect` option for a more consisten cross origin configuration via the `app.get('origins')` configuration value and to allow oAuth logins from multiple domains.
-- `redirect`: The URL of the frontend to redirect to with the access token (or error message). The [authentication client](./client.md) handles those redirects automatically. If not set, the authentication result will be sent as JSON instead.
-- `defaults`: Default [Grant configuration](https://github.com/simov/grant#configuration) used for all strategies. The following default options are set automatically:
- - `prefix` (default: `'/oauth'`) - The OAuth base path
- - `origin` (default: `http(s)://host[:port]`) - The server path for the oAuth flow to redirect back to. Set this if you are e.g. running your local server on HTTPS
-- `` (e.g. `twitter`): The [Grant configuration](https://github.com/simov/grant#configuration) used for a specific strategy.
-
-
-
-Removing the `redirect` option allows to troubleshoot troubleshoot OAuth authentication errors as a JSON response by opening the oAuth URL directly in the browser.
-
-
-
-```json
-{
- "authentication": {
- "origins": ["localhost:3030"],
- "oauth": {
- "redirect": "/frontend",
- "google": {
- "key": "...",
- "secret": "...",
- "custom_params": { "access_type": "offline" }
- },
- "twitter": {
- "key": "...",
- "secret": "..."
- }
- }
- }
-}
-```
-
-
-
-All OAuth strategies will by default always look for configuration under `authentication.oauth.`. If `authentication.oauth` is not set in the configuration, OAuth authentication will be disabled.
-
-
-
-Here is a [list of all Grant configuration options](https://github.com/simov/grant#all-available-options) that are available:
-
-| Key | Location | Description |
-| :------------------------- | :------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------- |
-| request_url | [oauth.json](https://github.com/simov/grant/blob/master/config/oauth.json) | OAuth1/step1 |
-| authorize_url | [oauth.json](https://github.com/simov/grant/blob/master/config/oauth.json) | OAuth1/step2 or OAuth2/step1 |
-| access_url | [oauth.json](https://github.com/simov/grant/blob/master/config/oauth.json) | OAuth1/step3 or OAuth2/step2 |
-| oauth | [oauth.json](https://github.com/simov/grant/blob/master/config/oauth.json) | OAuth version number |
-| scope_delimiter | [oauth.json](https://github.com/simov/grant/blob/master/config/oauth.json) | string delimiter used for concatenating multiple scopes |
-| protocol, host, path | `defaults` | used to generate `redirect_uri` |
-| transport | `defaults` | [transport](#response-data-transport) to use to deliver the response data in your final `callback` route |
-| state | `defaults` | toggle random `state` string generation for OAuth2 |
-| key | `[provider]` | OAuth app key, reserved aliases: `consumer_key` and `client_id` |
-| secret | `[provider]` | OAuth app secret, reserved aliases: `consumer_secret` and `client_secret` |
-| scope | `[provider]` | list of scopes to request |
-| custom_params | `[provider]` | custom authorization [parameters](#custom-parameters) and their values |
-| subdomain | `[provider]` | string to be [embedded](#subdomain-urls) in `request_url`, `authorize_url` and `access_url` |
-| nonce | `[provider]` | toggle random `nonce` string generation for [OpenID Connect](#openid-connect) providers |
-| callback | `[provider]` | final callback route on your server to receive the [response data](#response-data) |
-| dynamic | `[provider]` | allow [dynamic override](#dynamic-override) of configuration |
-| overrides | `[provider]` | [static overrides](#static-overrides) for a provider |
-| response | `[provider]` | [limit](#limit-response-data) the response data |
-| token_endpoint_auth_method | `[provider]` | authentication method for the [token endpoint](#token-endpoint-auth-method) |
-| name | generated | provider's [name](#grant), used to generate `redirect_uri` |
-| profile_url | [grant-profile](https://github.com/simov/grant-profile) | The URL to retrieve the user profile from |
-| [provider] | generated | provider's [name](#grant) as key |
-| redirect_uri | generated | OAuth app [redirect URI](#redirect-uri), generated using `protocol`, `host`, `path` and `name` |
-
-## OAuthStrategy
-
-### entityId
-
-`oauthStrategy.entityId -> string` returns the name of the id property of the entity.
-
-### getEntityQuery(profile, params)
-
-`oauthStrategy.getEntityQuery(profile, params) -> Promise` returns the entity lookup query to find the entity for a profile. By default returns
-
-```js
-{
- [`${this.name}Id`]: profile.sub || profile.id
-}
-```
-
-### getEntityData(profile, entity, params)
-
-`oauthStrategy.getEntityData(profile, existing, params) -> Promise` returns the data to either create a new or update an existing entity. `entity` is either the existing entity or `null` when creating a new entity.
-
-### getProfile(data, params)
-
-`oauthStrategy.getProfile(data, params) -> Promise` returns the user profile information from the OAuth provider that was used for the login. `data` is the OAuth callback information which normally contains e.g. the OAuth access token.
-
-### getRedirect (data)
-
-`oauthStrategy.getRedirect(data) -> Promise` returns the URL to redirect to after a successful OAuth login and entity lookup or creation. By default it redirects to `authentication.oauth.redirect` from the configuration with `#access_token=` added to the end of the URL. The `access_token` hash is e.g. used by the [authentication client](./client.md) to log the user in after a successful OAuth login. The default redirects do work cross domain.
-
-### getAllowedOrigin (params)
-
-`oauthStrategy.getAllowedOrigin(params) -> Promise` returns the redirect base URL or throws an error if it is not allowed.
-
-### getCurrentEntity(params)
-
-`oauthStrategy.getCurrentEntity(params) -> Promise` returns the currently linked entity for the given `params`. It will either use the entity authenticated by `params.authentication` or return `null`.
-
-### findEntity(profile, params)
-
-`oauthStrategy.findEntity(profile, params) -> Promise` finds an entity for a given OAuth profile. Uses `{ [${this.name}Id]: profile.id }` by default.
-
-### createEntity(profile, params)
-
-`oauthStrategy.createEntity(profile, params) -> Promise` creates a new entity for the given OAuth profile. Uses `{ [${this.name}Id]: profile.id }` by default.
-
-### updateEntity(entity, profile, params)
-
-`oauthStrategy.updateEntity(entity, profile, params) -> Promise` updates an existing entity with the given profile. Uses `{ [${this.name}Id]: profile.id }` by default.
-
-### authenticate(authentication, params)
-
-`oauthStrategy.authenticate(authentication, params)` is the main endpoint implemented by any [authentication strategy](./strategy.md). It is usually called for authentication requests for this strategy by the [AuthenticationService](./service.md).
-
-## Customization
-
-Normally, any OAuth provider set up in the [configuration](#configuration) will be initialized with the default [OAuthStrategy](#oauthstrategy). The flow for a specific provider can be customized by extending `OAuthStrategy` class and registering it under that name on the [AuthenticationService](./service.md):
-
-```ts
-import { Application } from '@feathersjs/feathers'
-import { AuthenticationService, JWTStrategy } from '@feathersjs/authentication'
-import type { OAuthProfile } from '@feathersjs/authentication'
-import { OAuthStrategy } from '@feathersjs/authentication-oauth'
-
-declare module './declarations' {
- interface ServiceTypes {
- authentication: AuthenticationService
- }
-}
-
-class MyGithubStrategy extends OAuthStrategy {
- async getEntityData(profile: OAuthProfile) {
- // Include the `email` from the GitHub profile when creating
- // or updating a user that logged in with GitHub
- const baseData = await super.getEntityData(profile)
-
- return {
- ...baseData,
- email: profile.email
- }
- }
-}
-
-export default (app: Application) => {
- const authentication = new AuthenticationService(app)
-
- authentication.register('github', new MyGithubStrategy())
-
- // ...
- app.use('authentication', authentication)
-}
-```
diff --git a/docs/api/authentication/service.md b/docs/api/authentication/service.md
deleted file mode 100644
index 0dff03e98b..0000000000
--- a/docs/api/authentication/service.md
+++ /dev/null
@@ -1,283 +0,0 @@
----
-outline: deep
----
-
-# Authentication Service
-
-
-
-[](https://www.npmjs.com/package/@feathersjs/authentication)
-[](https://github.com/feathersjs/feathers/blob/dove/packages/authentication/CHANGELOG.md)
-
-
-
-```
-npm install @feathersjs/authentication --save
-```
-
-The `AuthenticationService` is a [Feathers service](../services.md) that allows to register different [authentication strategies](./strategy.md) and manage access tokens (using [JSON web tokens (JWT)](https://jwt.io/) by default). This section describes
-
-- The [standard setup](#setup) used by the generator
-- How to [configure](#configuration) authentication and where the configuration should go
-- The different [authentication flows](#authentication-flows)
-- The methods available on the authentication service
-- How to [customize](#customization) the authentication service
-- The [Events](#events) sent by the authentication service
-
-## Setup
-
-The standard setup initializes an [AuthenticationService](#authenticationservice) at the `/authentication` path with a [JWT strategy](./jwt.md), [Local strategy](./local.md) and [OAuth authentication](./oauth.md) (if selected).
-
-```ts
-import { AuthenticationService, JWTStrategy } from '@feathersjs/authentication'
-import { LocalStrategy } from '@feathersjs/authentication-local'
-import type { Application } from './declarations'
-
-declare module './declarations' {
- interface ServiceTypes {
- authentication: AuthenticationService
- }
-}
-
-export const authentication = (app: Application) => {
- const authentication = new AuthenticationService(app)
-
- authentication.register('jwt', new JWTStrategy())
- authentication.register('local', new LocalStrategy())
-
- app.use('authentication', authentication)
-}
-```
-
-## Configuration
-
-The standard authentication service configuration is normally located in the `authentication` section of a [configuration file](../configuration.md) (default: `config/default.json`).
-
-
-
-The authentication service can also be configured dynamically or without Feathers configuration by using [app.set](../application.md#set-name-value), e.g. `app.set('authentication', config)`.
-
-
-
-The following options are available:
-
-- `secret`: The JWT signing secret.
-- `service`: The path of the entity service
-- `authStrategies`: A list of authentication strategy names to allow on this authentication service to create access tokens.
-- `parseStrategies`: A list of authentication strategies that should be used to parse HTTP requests. Defaults to the same as `authStrategies`.
-- `entity`: The name of the field that will contain the entity after successful authentication. Will also be used to set `params[entity]` (usually `params.user`) when using the [authenticate hook](./hook). Can be `null` if no entity is used (see [stateless tokens](../../cookbook/authentication/stateless.md)).
-- `entityId`: The id property of an entity object. Only necessary if the entity service does not have an `id` property (e.g. when using a custom entity service).
-- `jwtOptions`: All options available for the [node-jsonwebtoken package](https://github.com/auth0/node-jsonwebtoken).
-
-An authentication service configuration in `config/default.json` can look like this:
-
-```json
-{
- "authentication": {
- "secret": "CHANGE_ME",
- "entity": "user",
- "service": "users",
- "authStrategies": ["jwt", "local"],
- "jwtOptions": {
- "header": { "typ": "access" },
- "audience": "https://yourdomain.com",
- "issuer": "feathers",
- "algorithm": "HS256",
- "expiresIn": "1d"
- }
- }
-}
-```
-
-
-
-`typ` in the `header` options is not a typo, it is part of the [JWT JOSE header specification](https://tools.ietf.org/html/rfc7519#section-5).
-
-
-
-Additionally to the above configuration, most [strategies](./strategy.md) will look for their own configuration under the name it was registered. An example can be found in the [local strategy configuration](./local.md#configuration).
-
-## Authentication flows
-
-Below are the flows how the authentication service can be used.
-
-### To _create a new JWT_
-
-For any strategy allowed in `authStrategies`, a user can call `app.service('/authentication').create(data)` or `POST /authentication` with `data` as `{ strategy: name, ...loginData }`. Internally authentication will then
-
-- Call the strategy `.authenticate` method with `data`
-- Create a JWT for the entity returned by the strategy
-- Return the JWT (`accessToken`) and the additional information from the strategy
-
-For `local` strategy, the user has to be created before doing auth, otherwise, a 401 `NotAuthenticated` error will be sent.
-
-### To _authenticate an external request_
-
-For any HTTP request and strategy allowed in `parseStrategies` or - if not set - `authStrategies` authentication will:
-
-- Call [strategy.parse](./strategy.md#parse-req-res) and set the return value of the first strategy that does not return `null` as `params.authentication`
-- Verify `params.authentication` using the [authenticate hook](./hook.md) which calls the strategy `.authenticate` method with `params.authentication` as the data
-- Merge the return value of the strategy with `params` (e.g. setting `params.user`)
-
-### To authenticate _your own service request_
-
-For any service that uses the [authenticate hook](./hook.md) called internally you can set `params.authentication` in the service call which will then:
-
-- Verify `params.authentication` using the [authenticate hook](./hook.md) which calls the strategy `.authenticate` method with `params.authentication` as the data
-- Merge the return value of the strategy with `params` (e.g. setting `params.user`)
-
-
-
-You can set `params.authentication` for internal requests on the server but usually setting the entity (`params.user` in most cases) if you already have it available should be preferred. This will avoid the overhead of running authentication again if it has already been done.
-
-
-
-## AuthenticationService
-
-### constructor(app [, configKey])
-
-`const authService = new AuthenticationService(app, configKey = 'authentication')` initializes a new authentication service with the [Feathers application](../application.md) instance and a `configKey` which is the name of the configuration property to use via [app.get()](../application.md#get-name) (default: `app.get('authentication')`). Upon initialization it will also update the configuration with the [default settings](#configuration).
-
-### authenticate(data, params, ...strategies)
-
-`authService.authenticate(data, params, ...strategies) -> Promise` is the main authentication method and authenticates `data` and `params` against a list of strategies in `strategies`.
-
-`data` _must_ always contain a `strategy` property indicating the name of the strategy. If `data.strategy` is not available or not allowed (included in the `strategies` list) a `NotAuthenticated` error will be thrown. Otherwise the result of [strategy.authenticate()](./strategy.md#authenticate-authentication-params) will be returned.
-
-### create(data, params)
-
-`authService.create(data, params) -> Promise` runs `authService.authenticate` with `data`, `params` and the list of `strategies` from `authStrategies` in the [configuration](#configuration). As with any other [Feathers service](../services.md), this method will be available to clients, e.g. running a `POST /authentication`.
-
-If successful it will create a JWT with the payload taken from [authService.getPayload](#getpayload-authresult-params) and the options from [authService.getTokenOptions](#gettokenoptions-authresult-params). `data` _must_ always contain a valid and allowed `strategy` name. Will emit the [`login` event](#app-on-login).
-
-### remove(id, params)
-
-`authService.remove(id, params) -> Promise` should be called with `id` set to `null` or to the authenticated access token. Will verify `params.authentication` and emit the [`logout` event](#app-on-logout) if successful.
-
-### configuration
-
-`authService.configuration` returns a copy of current value of `app.get(configKey)` (default: `app.get('authentication')`). This is a deep copy of the configuration and is not intended to be modified. In order to change the configuration, [app.set(configKey)](../application.md#set-name-value) should be used:
-
-```ts
-const config = app.get('authentication')
-
-// Update configuration with a new entity
-app.set('authentication', {
- ...config,
- entity: 'some other entity name'
-})
-```
-
-### register(name, strategy)
-
-`authService.register(name, strategy)` registers an [authentication strategy](./strategy.md) under `name` and calls the strategy methods `setName`, `setApplication`, `setAuthentication` and `verifyConfiguration` if they are implemented.
-
-### getStrategy(name)
-
-`service.getStrategy(name)` returns the authentication strategy registered under `name`. Usually authentication strategies do not need to be used directly.
-
-### getStrategies(...names)
-
-`service.getStrategies(...names) -> AuthenticationStrategy[]` returns the [authentication strategies](./strategy.md) that exist for a list of names. The returned array may include `undefined` values if the strategy does not exist. Usually authentication strategies do not need to be used directly.
-
-```js
-const [localStrategy] = authService.getStrategies('local')
-```
-
-### createAccessToken(payload)
-
-`authService.createAccessToken(payload, [options, secret]) -> Promise` creates a new access token. By default it is a [JWT](https://jwt.io/) with `payload`, using [configuration.jwtOptions](#configuration) merged with `options` (optional). It will either use `authService.configuration.secret` or the optional `secret` to sign the JWT. Throws an error if the access token can not be created.
-
-```ts
-const token = await app.service('authentication').createAccessToken({
- permission: 'admin'
-})
-```
-
-
-
-Normally, it is not necessary to call this method directly. Calling [authService.create(data, params)](#create-data-params) using an authentication strategy will take care of creating the correct access token.
-
-
-
-### verifyAccessToken(accessToken)
-
-`authService.verifyAccessToken(accessToken, [options, secret]) -> Promise` verifies the access token. By default it will try to verify a JWT using `configuration.jwtOptions` merged with `options` (optional). Will either use `configuration.secret` or the optional `secret` to verify the JWT. Returns the encoded payload or throws an error.
-
-### getTokenOptions(authResult, params)
-
-`authService.getTokenOptions(authResult, params) -> Promise` returns the options for creating a new access token based on the return value from calling [authService.authenticate()](#authenticate-data-params-strategies). Called internally on [authService.create()](#create-data-params). It will try to set the JWT `subject` to the entity (user) id if it is available which will then be used by the [JWT strategy](./jwt.md) to populate `params[entity]` (usually `params.user`).
-
-### getPayload(authResult, params)
-
-`authService.getPayload(authResult, params) -> Promise` returns the access token payload for an authentication result (the return value of [authService.create()](#create-data-params)) and [service call parameters](../services.md#params). Called internally on [.create](#create-data-params). Returns either `params.payload` or an empty object (`{}`).
-
-### parse(req, res, ...strategies)
-
-`authService.parse(req, res, ...strategies) -> Promise` parses a [NodeJS HTTP request](https://nodejs.org/api/http.html#http_class_http_incomingmessage) and [HTTP response](https://nodejs.org/api/http.html#http_class_http_serverresponse) for authentication information using `strategies` calling [each strategies `.parse()` method](./strategy.md#parse-req-res) if it is implemented. Will return the value of the first strategy that didn't return `null`. This does _not_ authenticate the request, it will only return authentication information that can be used by `authService.authenticate` or `authService.create`.
-
-### setup(path, app)
-
-`authService.setup(path, app)` verifies the [configuration](#configuration) and makes sure that
-
-- A `secret` has been set
-- If `entity` is not `null`, check if the entity service is available and make sure that either the `entityId` configuration or the `entityService.id` property is set.
-- Register internal hooks to send events and keep real-time connections up to date. All custom hooks should be registered at this time.
-
-## app.get('defaultAuthentication')
-
-After registering an authentication service, it will set the `defaultAuthentication` property on the application to its configuration name (`configKey` set in the constructor) if it does not exist. `app.get('defaultAuthentication')` will be used by other parts of Feathers authentication to access the authentication service if it is not otherwise specified. Usually this will be `'authentication'`.
-
-## Customization
-
-The `AuthenticationService` can be customized like any other class:
-
-```ts
-import type { Params } from '@feathersjs/feathers'
-import type { AuthenticationResult } from '@feathersjs/authentication'
-import { AuthenticationService } from '@feathersjs/authentication'
-
-class MyAuthService extends AuthenticationService {
- async getPayload(authResult: AuthenticationResult, params: Params) {
- // Call original `getPayload` first
- const payload = await super.getPayload(authResult, params)
- const { user } = authResult
-
- if (user && user.permissions) {
- payload.permissions = user.permissions
- }
-
- return payload
- }
-}
-
-app.use('/authentication', new MyAuthService(app))
-```
-
-Things to be aware of when extending the authentication service:
-
-- When implementing your own `constructor`, always call `super(app, configKey)`
-- When overriding a method, calling `super.method` and working with its return value is recommended unless you are certain your custom method behaves exactly the same way, otherwise things may no longer work as expected.
-- When extending `setup`, `super.setup(path, app)` should always be called, otherwise events and real-time connection authentication will no longer work.
-
-## Events
-
-For both, `login` and `logout` the event data is `(authenticationResult, params, context) => {}` as follows:
-
-- `authResult` is the return value of the `authService.create` or `authService.remove` call. It usually contains the user and access token.
-- `params` is the service call parameters
-- `context` is the service methods [hook context](../hooks.md#hook-context)
-
-### app.on('login')
-
-`app.on('login', (authenticationResult, params, context) => {})` will be sent after a user logs in. This means, after any successful external call to [authService.create](#create-data-params).
-
-
-
-The `login` event is also sent for e.g. reconnections of websockets and may not always have a corresponding `logout` event. Use the [`disconnect` event](../channels.md#app-on-disconnect) for handling disconnection.
-
-
-
-### app.on('logout')
-
-`app.on('logout', (authenticationResult, params, context) => {})` will be sent after a user explicitly logs out. This means after any successful external call to [authService.remove](#remove-id-params).
diff --git a/docs/api/authentication/strategy.md b/docs/api/authentication/strategy.md
deleted file mode 100644
index d001de5404..0000000000
--- a/docs/api/authentication/strategy.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-outline: deep
----
-
-# Authentication Strategies
-
-An authentication strategy is any object or class that implements at least an [authenticate(data, params)]() method. They can be registered with the AuthenticationService to authenticate service calls and other requests. The following strategies already come with Feathers:
-
-- [JWTStrategy](./jwt.md) in `@feathersjs/authentication`
-- [LocalStrategy](./local.md) in `@feathersjs/authentication-local`
-- [OAuthStrategy](./oauth.md) in `@feathersjs/authentication-oauth`
-
-More details on how to customize existing strategies can be found in their API documentation. This section describes the common methods for all authentication strategies and how a custom authentication strategy can be implemented.
-
-## setName(name)
-
-Will be called with the `name` under which the strategy has been [registered on the authentication service](./service.md#register-name-strategy). Does not have to be implemented.
-
-## setApplication(app)
-
-Will be called with the [Feathers application](../application.md) instance. Does not have to be implemented.
-
-## setAuthentication(service)
-
-Will be called with the [Authentication service](./service.md) this strategy has been registered on. Does not have to be implemented.
-
-## verifyConfiguration()
-
-Synchronously verify the configuration for this strategy and throw an error if e.g. required fields are not set. Does not have to be implemented.
-
-## authenticate(authentication, params)
-
-Authenticate `authentication` data with additional `params`. `authenticate` should throw a `NotAuthenticated` if it failed or return an authentication result object.
-
-## parse(req, res)
-
-Parse a given plain Node HTTP request and response and return `null` or the authentication information it provides. Does not have to be implemented.
-
-This is called by the authentication service. See [AuthService.parse](https://dove.feathersjs.com/api/authentication/service.html#parse-req-res-strategies)
-
-## AuthenticationBaseStrategy
-
-The `AuthenticationBaseStrategy` class provides a base class that already implements some of the strategy methods below with some common functionality:
-
-- [setName](#setname-name) sets `this.name`
-- [setApplication](#setapplication-app) sets `this.app`
-- [setAuthentication](#setauthentication-service) sets `this.authentication`
-- `configuration` getter returns `this.authentication.configuration[this.name]`
-- `entityService` getter returns the entity (usually `/users`) service from `this.app`
-
-## Examples
-
-Examples for authentication strategies can be found in the [Cookbook](../../cookbook/):
-
-- [Anonymous strategy](../../cookbook/authentication/anonymous.md)
diff --git a/docs/api/client/socketio.md b/docs/api/client/socketio.md
deleted file mode 100644
index e4cc511a36..0000000000
--- a/docs/api/client/socketio.md
+++ /dev/null
@@ -1,490 +0,0 @@
----
-outline: deep
----
-
-# Socket.io Client
-
-## socketio-client
-
-
-
-[](https://www.npmjs.com/package/@feathersjs/socketio-client)
-[](https://github.com/feathersjs/feathers/blob/dove/packages/socketio-client/CHANGELOG.md)
-
-
-
-```
-npm install @feathersjs/socketio-client socket.io-client --save
-```
-
-The `@feathersjs/socketio-client` module allows to connect to services exposed through the [Socket.io transport](../socketio.md) via a Socket.io socket. We recommend using Feathers and the `@feathersjs/socketio-client` module on the client if possible since it can also handle reconnection and reauthentication. If however, you want to use a direct Socket.io connection without using Feathers on the client, see the [Direct connection](#direct-connection) section.
-
-
-
-Socket.io is also used to _call_ service methods. Using sockets for both calling methods and receiving real-time events is generally faster than using [REST](./rest.md). There is therefore no need to use both REST and Socket.io in the same client application.
-
-
-
-### socketio(socket)
-
-Initialize the Socket.io client using a given socket and the default options.
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import socketio from '@feathersjs/socketio-client'
-import io from 'socket.io-client'
-
-const socket = io('http://api.feathersjs.com')
-const app = feathers()
-
-// Set up Socket.io client with the socket
-app.configure(socketio(socket))
-
-// Receive real-time events through Socket.io
-app.service('messages').on('created', (message) => console.log('New message created', message))
-
-// Call the `messages` service
-app.service('messages').create({
- text: 'A message from a REST client'
-})
-```
-
-### `app.io`
-
-`app.io` contains a reference to the `socket` object passed to `socketio(socket [, options])`
-
-```ts
-app.io.on('disconnect', (reason: any) => {
- // Show offline message
-})
-```
-
-### Custom Methods
-
-On the client, [custom service methods](../services.md#custom-methods) are also registered using the `methods` option when registering the service via `socketClient.service()`:
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import type { Params } from '@feathersjs/feathers'
-import socketio from '@feathersjs/socketio-client'
-import type { SocketService } from '@feathersjs/socketio-client'
-import io from 'socket.io-client'
-
-// `data` and return type of custom method
-type CustomMethodData = { name: string }
-type CustomMethodResponse = { acknowledged: boolean }
-
-type ServiceTypes = {
- // The type is a Socket service extended with custom methods
- myservice: SocketService & {
- myCustomMethod(data: CustomMethodData, params: Params): Promise
- }
-}
-
-const socket = io('http://api.feathersjs.com')
-const client = feathers()
-const socketClient = socketio(socket)
-
-// Set up Socket.io client with the socket
-client.configure(socketClient)
-
-// Register a socket client service with all methods listed
-client.use('myservice', socketClient.service('myservice'), {
- methods: ['find', 'get', 'create', 'update', 'patch', 'remove', 'myCustomMethod']
-})
-
-// Then it can be used like other service methods
-client.service('myservice').myCustomMethod(data, params)
-```
-
-
-
-Just like on the server _all_ methods you want to use have to be listed in the `methods` option.
-
-
-
-### Route placeholders
-
-Service URLs can have placeholders, e.g. `users/:userId/messages`. (see in [express](../express.md#params.route) or [koa](../koa.md#params.route))
-
-You can call the client with route placeholders in the `params.route` property:
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import socketio from '@feathersjs/socketio-client'
-import io from 'socket.io-client'
-
-const socket = io('http://api.feathersjs.com')
-const app = feathers()
-
-// Set up Socket.io client with the socket
-app.configure(socketio(socket))
-
-// Call `users/2/messages`
-app.service('users/:userId/messages').find({
- route: {
- userId: 2
- }
-})
-```
-
-This can also be achieved by using the client bundled,
-sharing several `servicePath` variable exported in the [service shared file](../../guides/cli/service.shared.md#Variables) file.
-
-```ts
-import rest from '@feathersjs/rest-client'
-
-const connection = rest('https://myapp.com').fetch(window.fetch.bind(window))
-
-const client = createClient(connection)
-
-// Call the `https://myapp.com/users/2/messages` URL
-client.service(usersMyMessagesPath).find({
- route: {
- userId: 2
- }
-})
-
-import io from 'socket.io-client'
-import socketio from '@feathersjs/socketio-client'
-import { createClient, usersMessagesPath } from 'my-app'
-
-const socket = io('http://api.my-feathers-server.com')
-const connection = socketio(socket)
-
-const client = createClient(connection)
-
-const messageService = client.service('users/:userId/messages')
-
-// Call `users/2/messages`
-app.service('users/:userId/messages').find({
- route: {
- userId: 2
- }
-})
-```
-
-## Direct connection
-
-Feathers sets up a normal Socket.io server that you can connect to with any Socket.io compatible client, usually the [Socket.io client](http://socket.io/docs/client-api/) either by loading the `socket.io-client` module or `/socket.io/socket.io.js` from the server. Query parameter types do not have to be converted from strings as they do for REST requests.
-
-
-
-The socket connection URL has to point to the server root which is where Feathers will set up Socket.io.
-
-
-
-```html
-
-
-
-
-
-
-
-```
-
-Service methods can be called by emitting a `` event followed by the service path and method parameters. The service path is the name the service has been registered with (in `app.use`), without leading or trailing slashes. An optional callback following the `function(error, data)` Node convention will be called with the result of the method call or any errors that might have occurred.
-
-`params` will be set as `params.query` in the service method call. Other service parameters can be set through a [Socket.io middleware](../socketio.md).
-
-If the service path or method does not exist, an appropriate Feathers error will be returned.
-
-### Authentication
-
-There are two ways to establish an authenticated Socket.io connection. Either by calling the authentication service or by sending authentication headers.
-
-#### Via authentication service
-
-Sockets will be authenticated automatically by calling [.create](#create) on the [authentication service](../authentication/service.md):
-
-```ts
-import io from 'socket.io-client'
-
-const socket = io('http://localhost:3030')
-
-socket.emit(
- 'create',
- 'authentication',
- {
- strategy: 'local',
- email: 'hello@feathersjs.com',
- password: 'supersecret'
- },
- function (error, authResult) {
- console.log(authResult)
- // authResult will be {"accessToken": "your token", "user": user }
- // You can now send authenticated messages to the server
- }
-)
-```
-
-
-
-When a socket disconnects and then reconnects, it has to be authenticated again before making any other request that requires authentication. This is usually done with the [jwt strategy](../authentication/jwt.md) using the `accessToken` from the `authResult`. The [authentication client](../authentication/client.md) handles this already automatically.
-
-
-
-```js
-socket.on('connect', () => {
- socket.emit(
- 'create',
- 'authentication',
- {
- strategy: 'jwt',
- accessToken: authResult.accessToken
- },
- function (error, newAuthResult) {
- console.log(newAuthResult)
- }
- )
-})
-```
-
-#### Via handshake headers
-
-If the authentication strategy (e.g. JWT or API key) supports parsing headers, an authenticated websocket connection can be established by adding the information in the [extraHeaders option](https://socket.io/docs/client-api/#With-extraHeaders):
-
-```ts
-import io from 'socket.io-client'
-
-const socket = io('http://localhost:3030', {
- extraHeaders: {
- Authorization: `Bearer `
- }
-})
-```
-
-
-
-The authentication strategy needs to be included in the [`authStrategies` configuration](../authentication/service.md#configuration).
-
-
-
-### find
-
-Retrieves a list of all matching resources from the service
-
-```js
-socket.emit('find', 'messages', { status: 'read', user: 10 }, (error, data) => {
- console.log('Found all messages', data)
-})
-```
-
-Will call `app.service('messages').find({ query: { status: 'read', user: 10 } })` on the server.
-
-### get
-
-Retrieve a single resource from the service.
-
-```js
-socket.emit('get', 'messages', 1, (error, message) => {
- console.log('Found message', message)
-})
-```
-
-Will call `app.service('messages').get(1, {})` on the server.
-
-```js
-socket.emit('get', 'messages', 1, { status: 'read' }, (error, message) => {
- console.log('Found message', message)
-})
-```
-
-Will call `app.service('messages').get(1, { query: { status: 'read' } })` on the server.
-
-### create
-
-Create a new resource with `data` which may also be an array.
-
-```js
-socket.emit(
- 'create',
- 'messages',
- {
- text: 'I really have to iron'
- },
- (error, message) => {
- console.log('Todo created', message)
- }
-)
-```
-
-Will call `app.service('messages').create({ text: 'I really have to iron' }, {})` on the server.
-
-```js
-socket.emit('create', 'messages', [{ text: 'I really have to iron' }, { text: 'Do laundry' }])
-```
-
-Will call `app.service('messages').create` with the array.
-
-### update
-
-Completely replace a single or multiple resources.
-
-```js
-socket.emit(
- 'update',
- 'messages',
- 2,
- {
- text: 'I really have to do laundry'
- },
- (error, message) => {
- console.log('Todo updated', message)
- }
-)
-```
-
-Will call `app.service('messages').update(2, { text: 'I really have to do laundry' }, {})` on the server. The `id` can also be `null` to update multiple resources:
-
-```js
-socket.emit(
- 'update',
- 'messages',
- null,
- {
- status: 'unread'
- },
- { status: 'read' }
-)
-```
-
-Will call `app.service('messages').update(null, { status: 'read' }, { query: { satus: 'unread' } })` on the server.
-
-### patch
-
-Merge the existing data of a single or multiple resources with the new `data`.
-
-```js
-socket.emit(
- 'patch',
- 'messages',
- 2,
- {
- read: true
- },
- (error, message) => {
- console.log('Patched message', message)
- }
-)
-```
-
-Will call `app.service('messages').patch(2, { read: true }, {})` on the server. The `id` can also be `null` to update multiple resources:
-
-```js
-socket.emit(
- 'patch',
- 'messages',
- null,
- {
- status: 'read'
- },
- {
- status: 'unread'
- },
- (error, message) => {
- console.log('Patched message', message)
- }
-)
-```
-
-Will call `app.service('messages').patch(null, { status: 'read' }, { query: { status: 'unread' } })` on the server, to change the status for all read app.service('messages').
-
-### remove
-
-Remove a single or multiple resources:
-
-```js
-socket.emit('remove', 'messages', 2, {}, (error, message) => {
- console.log('Removed a message', message)
-})
-```
-
-Will call `app.service('messages').remove(2, {})` on the server. The `id` can also be `null` to remove multiple resources:
-
-```js
-socket.emit('remove', 'messages', null, { status: 'archived' })
-```
-
-Will call `app.service('messages').remove(null, { query: { status: 'archived' } })` on the server to delete all messages with status `archived`.
-
-### Custom methods
-
-[Custom service methods](../services.md#custom-methods) can be called directly via Socket.io by sending a `socket.emit(methodName, serviceName, data, query)` message:
-
-```js
-socket.emit('myCustomMethod', 'myservice', { message: 'Hello world' }, {}, (error, data) => {
- console.log('Called myCustomMethod', data)
-})
-```
-
-### Listening to events
-
-Listening to service events allows real-time behaviour in an application. [Service events](../events.md) are sent to the socket in the form of `servicepath eventname`.
-
-#### created
-
-The `created` event will be published with the callback data, when a service `create` returns successfully.
-
-```ts
-const socket = io('http://localhost:3030/')
-
-socket.on('messages created', (message: Message) => {
- console.log('Got a new Todo!', message)
-})
-```
-
-#### updated, patched
-
-The `updated` and `patched` events will be published with the callback data, when a service `update` or `patch` method calls back successfully.
-
-```ts
-const socket = io('http://localhost:3030/')
-
-socket.on('my/messages updated', (message: Message) => {
- console.log('Got an updated Todo!', message)
-})
-
-socket.emit(
- 'update',
- 'my/messages',
- 1,
- {
- text: 'Updated text'
- },
- {},
- (error, callback) => {
- // Do something here
- }
-)
-```
-
-#### removed
-
-The `removed` event will be published with the callback data, when a service `remove` calls back successfully.
-
-```js
-const socket = io('http://localhost:3030/')
-
-socket.on('messages removed', (message: Message) => {
- // Remove element showing the Todo from the page
- $('#message-' + message.id).remove()
-})
-```
-
-#### Custom events
-
-[Custom events](../events.md#custom-events) can be listened to accordingly:
-
-```ts
-const socket = io('http://localhost:3030/')
-
-socket.on('messages myevent', function (data: any) {
- console.log('Got myevent event', data)
-})
-```
diff --git a/docs/api/configuration.md b/docs/api/configuration.md
deleted file mode 100644
index c4e2890d5a..0000000000
--- a/docs/api/configuration.md
+++ /dev/null
@@ -1,114 +0,0 @@
----
-outline: deep
----
-
-# Configuration
-
-
-
-[](https://www.npmjs.com/package/@feathersjs/configuration)
-[](https://github.com/feathersjs/feathers/blob/dove/packages/configuration/CHANGELOG.md)
-
-
-
-```
-npm install @feathersjs/configuration --save
-```
-
-`@feathersjs/configuration` is a wrapper for [node-config](https://github.com/lorenwest/node-config) to make configuration values available via [app.get](./application.md#get-name) which can then be used to configure an application.
-
-By default it will look in `config/*` for `default.json`. It will be merged with other configuration files in the `config/` folder using the `NODE_ENV` environment variable. So setting `NODE_ENV=production` will merge `config/default.json` with `config/production.json`.
-
-For more information also see the [node-config docs](https://github.com/lorenwest/node-config/wiki/Configuration-Files).
-
-## Usage
-
-`app.configure(configuration())` loads the configuration from `node-config` and makes it available via `app.get()`.
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import configuration from '@feathersjs/configuration'
-
-// Use the application root and `config/` as the configuration folder
-const app = feathers().configure(configuration())
-
-// Will return 3030 with `{ "port": 3030 }` in config/default.json
-app.get('port')
-```
-
-
-
-Direct access to nested config properties is not supported via `app.get()`. To access a nested config property (e.g. `Customer.dbConfig.host`, use `app.get('Customer').dbConfig.host`.
-
-
-
-## Configuration validation
-
-`app.configure(configuration(validator))` loads the configuration from `node-config`, makes it available via `app.get()` and validates the original configuration against a [Feathers schema](./schema/) validator when [app.setup](./application.md#setup-server) (or [app.listen](./application.md#listen-port)) is called.
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import { Ajv } from '@feathersjs/schema'
-import { Type, getValidator } from '@feathersjs/typebox'
-import type { Static } from '@feathersjs/typebox'
-import configuration from '@feathersjs/configuration'
-
-const configurationSchema = Type.Object(
- {
- port: Type.Number(),
- host: Type.String()
- },
- { $id: 'Configuration', additionalProperties: false }
-)
-
-const configurationValidator = getValidator(configurationSchema, new Ajv())
-
-type ServiceTypes = {}
-// Use the schema type for typed `app.get` and `app.set` calls
-type Configuration = Static
-
-// Use the application root and `config/` as the configuration folder
-const app = feathers().configure(configuration(configurationValidator))
-
-// Configuration will only be validated now
-app
- .listen()
- .then(() => console.log('Server started'))
- .catch((error) => {
- // Configuration validation errors will show up here
- console.log(error.data)
- })
-```
-
-## Environment variables
-
-As recommended by node-config, it is possible to override the configuration with custom variables by passing a JSON object in the [`NODE_CONFIG` environment variable](https://github.com/lorenwest/node-config/wiki/Environment-Variables#node_config):
-
-```
-$ export NODE_CONFIG='{ "port": 8080, "host": "production.app" }'
-$ node myapp.js
-```
-
-Individual environment variables can be used through [Custom Environment Variables](https://github.com/lorenwest/node-config/wiki/Environment-Variables#custom-environment-variables) by creating a `config/custom-environment-variables.json` like this:
-
-```js
-{
- "port": "PORT",
- "mongodb": "MONGOHQ_URL"
-}
-```
-
-## Configuration directory
-
-By default, Feathers will use the `config/` directory in the root of your project’s source directory. To change this, e.g., if you have Feathers installed under the `server/` directory and you want your configuration at `server/config/`, you have to set the `NODE_CONFIG_DIR` environment variable in `app.js` _before_ importing `@feathersjs/configuration`:
-
-```
-$ export NODE_CONFIG_DIR=server/config
-$ node myapp.js
-```
-
-
-
-The NODE_CONFIG_DIR environment variable isn’t used directly by @feathersjs/configuration but by the [node-config](https://github.com/lorenwest/node-config) module that it uses. For more information on configuring node-config settings, see the [Configuration Files Wiki page](https://github.com/lorenwest/node-config/wiki/Configuration-Files).
-
-
diff --git a/docs/api/databases/adapters.md b/docs/api/databases/adapters.md
deleted file mode 100644
index e92781e4d7..0000000000
--- a/docs/api/databases/adapters.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-outline: deep
----
-
-# Overview
-
-Feathers database adapters are modules that provide [services](../services.md) that implement standard [CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) functionality for a specific database. They use a [common API](./common.md) for initialization and settings, and they provide a [common query syntax](./querying.md).
-
-
-
-[Services](../services.md) allow to implement access to _any_ database or API. The database adapters listed here are just convenience wrappers with a common API. See the community adapters section for support for other datastores.
-
-
-
-## Core Adapters
-
-The following data storage adapters are available in Feathers core
-
-| Core Package | Supported Data Stores |
-| -------------------- | -------------------------------------------------------------------------------------------------------------- |
-| [Memory](./memory) | Memory |
-| [MongoDB](./mongodb) | MongoDB |
-| [SQL (Knex)](./knex) | MySQL MariaDB PostgreSQL CockroachDB SQLite Amazon Redshift OracleDB MSSQL |
-
-## Community Adapters
-
-There are also many community maintained adapters for other databases and ORMs which can be found on the [Ecosystem page](/ecosystem/?cat=Database&sort=lastPublish).
diff --git a/docs/api/databases/common.md b/docs/api/databases/common.md
deleted file mode 100644
index 42376e9933..0000000000
--- a/docs/api/databases/common.md
+++ /dev/null
@@ -1,329 +0,0 @@
----
-outline: deep
----
-
-# Common API
-
-The Feathers database adapters implement a common interface for initialization, pagination, extending and querying. This chapter describes the common adapter initialization and options, how to enable and use pagination, the details on how specific service methods behave and how to extend an adapter with custom functionality.
-
-
-
-Every database adapter is an implementation of the [Feathers service interface](../services.md). If there is no adapter available for your database of choice, you can still use it directly in a [custom service](../services.md). We recommend being familiar with Feathers services, service events and hooks and the database before using a database adapter.
-
-
-
-## Initialization
-
-### `new Service(options)`
-
-Each adapter exports a `Service` class that can be exported and extended.
-
-```ts
-import { NameService } from 'feathers-'
-
-app.use('/messages', new NameService())
-app.use('/messages', new NameService({ id, events, paginate }))
-```
-
-### Options
-
-The following options are available for all database adapters:
-
-- `id {string}` (_optional_) - The name of the id field property (usually set by default to `id` or `_id`).
-- `paginate {Object}` (_optional_) - A [pagination object](#pagination) containing a `default` and `max` page size
-- `multi {string[]|boolean}` (_optional_, default: `false`) - Allow `create` with arrays and `patch` and `remove` with id `null` to change multiple items. Can be `true` for all methods or an array of allowed methods (e.g. `[ 'remove', 'create' ]`)
-
-The following legacy options are still available but should be avoided:
-
-- `events {string[]}` (_optional_, **deprecated**) - A list of [custom service events](../events.md#custom-events) sent by this service. Use the `events` option when [registering the service with app.use](../application.md#usepath-service--options) instead.
-- `operators {string[]}` (_optional_, **deprecated**) - A list of additional non-standard query parameters to allow (e.g `[ '$regex' ]`). Not necessary when using a [query schema](../schema/validators.md#validatequery)
-- `filters {Object}` (_optional_, **deprecated**) - An object of additional top level query filters, e.g. `{ $populate: true }`. Can also be a converter function like `{ $ignoreCase: (value) => value === 'true' ? true : false }`. Not necessary when using a [query schema](../schema/validators.md#validatequery)
-
-For database specific options see the adapter documentation.
-
-## Pagination
-
-When initializing an adapter you can set the following pagination options in the `paginate` object:
-
-- `default` - Sets the default number of items when `$limit` is not set
-- `max` - Sets the maximum allowed number of items per page (even if the `$limit` query parameter is set higher)
-
-When `paginate.default` is set, `find` will return a _page object_ (instead of the normal array) in the following form:
-
-```
-{
- "total": "",
- "limit": "",
- "skip": "",
- "data": [/* data */]
-}
-```
-
-The pagination options can be set as follows:
-
-```js
-const service = require('feathers-')
-
-// Set the `paginate` option during initialization
-app.use(
- '/todos',
- service({
- paginate: {
- default: 5,
- max: 25
- }
- })
-)
-
-// override pagination in `params.paginate` for this call
-app.service('todos').find({
- paginate: {
- default: 100,
- max: 200
- }
-})
-
-// disable pagination for this call
-app.service('todos').find({
- paginate: false
-})
-```
-
-
-
-Disabling or changing the default pagination is not available in the client. Only `params.query` is passed to the server (also see a [workaround here](https://github.com/feathersjs/feathers/issues/382#issuecomment-288125825))
-
-
-
-## params.adapter
-
-Setting the `adapter` in the [service method `params`](../services.md#params) allows do dynamically modify the database adapter options based on the request. This e.g. allows to temporarily allow multiple entry creation/changes or the pagination settings.
-
-```ts
-const messages = [
- {
- text: 'message 1'
- },
- {
- text: 'message 2'
- }
-]
-
-// Enable multiple entry insertion for this request
-app.service('messages').create(messages, {
- adapter: {
- multi: true
- }
-})
-```
-
-
-
-If the adapter has a `Model` option, `params.adapter.Model` can be used to point to different databases based on the request to e.g. allow multi-tenant systems. This is usually done by setting `context.params.adapter` in a [hook](../hooks.md).
-
-
-
-## params.paginate
-
-Setting `paginate` in the [service method `params`](../services.md#params) allows to change or disable the default pagination for a single request:
-
-```ts
-// Get all messages as an array
-const allMessages = await app.service('messages').find({
- paginate: false
-})
-```
-
-## Extending Adapters
-
-There are two ways to extend existing database adapters. Either by extending the base class or by adding functionality through hooks.
-
-### Classes
-
-All modules also export an [ES6 class](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes) as `Service` that can be directly extended. See the [Service CLI guide](../../guides/cli/service.class.md) on how to override existing and implement new methods.
-
-## Service methods
-
-This section describes specifics on how the [service methods](../services.md) are implemented for all adapters.
-
-### constructor(options)
-
-Initializes a new service. Should call `super(options)` when overwritten.
-
-### Methods without hooks
-
-The database adapters support calling their service methods without any hooks by adding a `_` in front of the method name as `_find`, `_get`, `_create`, `_patch`, `_update` and `_remove`. This can be useful if you need the raw data from the service and don't want to trigger any of its hooks.
-
-```js
-// Call `get` without running any hooks
-const message = await app.service('/messages')._get('')
-```
-
-
-
-These methods are only available internally on the server, not on the client side and only for the Feathers database adapters. They do _not_ send any events.
-
-
-
-### adapter.find(params)
-
-`adapter.find(params) -> Promise` returns a list of all records matching the query in `params.query` using the [common querying mechanism](./querying.md). Will either return an array with the results or a page object if [pagination is enabled](#pagination).
-
-```ts
-// Find all messages for user with id 1
-const messages = await app.service('messages').find({
- query: {
- userId: 1
- }
-})
-
-console.log(messages)
-
-// Find all messages belonging to room 1 or 3
-const roomMessages = await app.service('messages').find({
- query: {
- roomId: {
- $in: [1, 3]
- }
- }
-})
-
-console.log(roomMessages)
-```
-
-Find all messages for user with id 1
-
-```
-GET /messages?userId=1
-```
-
-Find all messages belonging to room 1 or 3
-
-```
-GET /messages?roomId[$in]=1&roomId[$in]=3
-```
-
-### adapter.get(id, params)
-
-`adapter.get(id, params) -> Promise` retrieves a single record by its unique identifier (the field set in the `id` option during initialization).
-
-```ts
-const message = await app.service('messages').get(1)
-
-console.log(message)
-```
-
-```
-GET /messages/1
-```
-
-### adapter.create(data, params)
-
-`adapter.create(data, params) -> Promise` creates a new record with `data`. `data` can also be an array to create multiple records.
-
-```ts
-const message = await app.service('messages').create({
- text: 'A test message'
-})
-
-console.log(message)
-
-const messages = await app.service('messages').create([
- {
- text: 'Hi'
- },
- {
- text: 'How are you'
- }
-])
-
-console.log(messages)
-```
-
-```
-POST /messages
-{
- "text": "A test message"
-}
-```
-
-### adapter.update(id, data, params)
-
-`adapter.update(id, data, params) -> Promise` completely replaces a single record identified by `id` with `data`. Does not allow replacing multiple records (`id` can't be `null`). `id` can not be changed.
-
-```ts
-const updatedMessage = await app.service('messages').update(1, {
- text: 'Updates message'
-})
-
-console.log(updatedMessage)
-```
-
-```
-PUT /messages/1
-{ "text": "Updated message" }
-```
-
-### adapter.patch(id, data, params)
-
-`adapter.patch(id, data, params) -> Promise` merges a record identified by `id` with `data`. `id` can be `null` to allow replacing multiple records (all records that match `params.query` the same as in `.find`). `id` can not be changed.
-
-```ts
-const patchedMessage = await app.service('messages').patch(1, {
- text: 'A patched message'
-})
-
-console.log(patchedMessage)
-
-const params = {
- query: { read: false }
-}
-
-// Mark all unread messages as read
-const multiPatchedMessages = await app.service('messages').patch(
- null,
- {
- read: true
- },
- params
-)
-```
-
-```
-PATCH /messages/1
-{ "text": "A patched message" }
-```
-
-Mark all unread messages as read
-
-```
-PATCH /messages?read=false
-{ "read": true }
-```
-
-### adapter.remove(id, params)
-
-`adapter.remove(id, params) -> Promise` removes a record identified by `id`. `id` can be `null` to allow removing multiple records (all records that match `params.query` the same as in `.find`).
-
-```ts
-const removedMessage = await app.service('messages').remove(1)
-
-console.log(removedMessage)
-
-const params = {
- query: { read: true }
-}
-
-// Remove all read messages
-const removedMessages = await app.service('messages').remove(null, params)
-```
-
-```
-DELETE /messages/1
-```
-
-Remove all read messages
-
-```
-DELETE /messages?read=true
-```
diff --git a/docs/api/databases/knex.md b/docs/api/databases/knex.md
deleted file mode 100644
index fc57770c75..0000000000
--- a/docs/api/databases/knex.md
+++ /dev/null
@@ -1,565 +0,0 @@
----
-outline: deep
----
-
-# SQL Databases
-
-
-
-[](https://www.npmjs.com/package/@feathersjs/knex)
-[](https://github.com/feathersjs/feathers/blob/dove/packages/knex/CHANGELOG.md)
-
-
-
-Support for SQL databases like PostgreSQL, MySQL, MariaDB, SQLite or MSSQL is provided in Feathers via the `@feathersjs/knex` database adapter which uses [KnexJS](https://knexjs.org/). Knex is a fast and flexible query builder for SQL and supports many databases without the overhead of a full blown ORM like Sequelize. It still provides an intuitive syntax and more advanced tooling like migration support.
-
-```bash
-$ npm install --save @feathersjs/knex
-```
-
-
-
-The Knex adapter implements the [common database adapter API](./common) and [querying syntax](./querying).
-
-
-
-## API
-
-### KnexService(options)
-
-`new KnexService(options)` returns a new service instance initialized with the given options. The following example extends the `KnexService` and then uses the `sqliteClient` (or relevant client for your SQL database type) from the app configuration and provides it to the `Model` option, which is passed to the new `MessagesService`.
-
-```ts
-import type { Params } from '@feathersjs/feathers'
-import { KnexService } from '@feathersjs/knex'
-import type { KnexAdapterParams, KnexAdapterOptions } from '@feathersjs/knex'
-
-import type { Application } from '../../declarations'
-import type { Messages, MessagesData, MessagesQuery } from './messages.schema'
-
-export interface MessagesParams extends KnexAdapterParams {}
-
-export class MessagesService extends KnexService<
- Messages,
- MessagesData,
- ServiceParams
-> {}
-
-export const messages = (app: Application) => {
- const options: KnexAdapterOptions = {
- paginate: app.get('paginate'),
- Model: app.get('sqliteClient'),
- name: 'messages'
- }
- app.use('messages', new MessagesService(options))
-}
-```
-
-### Options
-
-The Knex specific adapter options are:
-
-- `Model {Knex}` (**required**) - The KnexJS database instance
-- `name {string}` (**required**) - The name of the table
-- `schema {string}` (_optional_) - The name of the schema table prefix (example: `schema.table`)
-- `tableOptions {only: boolean` (_optional_) - For PostgreSQL only. Argument for passing options to knex db builder. ONLY keyword is used before the tableName to discard inheriting tables' data. (https://knexjs.org/guide/query-builder.html#common)
-- `extendedOperators {[string]: string}` (_optional_) - A map defining additional operators for the query builder. Example: `{ $fulltext: '@@' }` for PostgreSQL full text search. See [Knex source](https://github.com/knex/knex/blob/master/lib/formatter/wrappingFormatter.js#L10) for operators supported by Knex.
-
-The [common API options](./common.md#options) are:
-
-- `id {string}` (_optional_, default: `'id'`) - The name of the id field property. By design, Knex will always add an `id` property.
-- `paginate {Object}` (_optional_) - A [pagination object](#pagination) containing a `default` and `max` page size
-- `multi {string[]|boolean}` (_optional_, default: `false`) - Allow `create` with arrays and `patch` and `remove` with id `null` to change multiple items. Can be `true` for all methods or an array of allowed methods (e.g. `[ 'remove', 'create' ]`)
-
-There are additionally several legacy options in the [common API options](./common.md#options)
-
-### getModel([params])
-
-`service.getModel([params])` returns the [Knex](https://knexjs.org/guide/query-builder.html) client for this table.
-
-### db(params)
-
-`service.db([params])` returns the Knex database instance for a request. This will include the `schema` table prefix and use a transaction if passed in `params`.
-
-### createQuery(params)
-
-`service.createQuery(params)` returns a query builder for a service request, including all conditions matching the query syntax. This method can be overriden to e.g. [include associations](#associations) or used in a hook customize the query and then passing it to the service call as [params.knex](#paramsknex).
-
-```ts
-app.service('messages').hooks({
- before: {
- find: [
- async (context: HookContext) => {
- const query = context.service.createQuery(context.params)
-
- // do something with query here
- query.orderBy('name', 'desc')
-
- context.params.knex = query
- }
- ]
- }
-})
-```
-
-### params.knex
-
-When making a [service method](https://docs.feathersjs.com/api/services.html) call, `params` can contain an `knex` property which allows to modify the options used to run the KnexJS query. See [createQuery](#createqueryparams) for an example.
-
-## Querying
-
-In addition to the [common querying mechanism](./querying.md), this adapter also supports the following operators. Note that these operators need to be added for each query-able property to the [TypeBox query schema](../schema/typebox.md#query-schemas) or [JSON query schema](../schema/schema.md#querysyntax) like this:
-
-```ts
-const messageQuerySchema = Type.Intersect(
- [
- // This will additionally allow querying for `{ name: { $ilike: 'Dav%' } }`
- querySyntax(messageQueryProperties, {
- name: {
- $ilike: Type.String()
- }
- }),
- // Add additional query properties here
- Type.Object({})
- ],
- { additionalProperties: false }
-)
-```
-
-### $like
-
-Find all records where the value matches the given string pattern. The following query retrieves all messages that start with `Hello`:
-
-```ts
-app.service('messages').find({
- query: {
- text: {
- $like: 'Hello%'
- }
- }
-})
-```
-
-Through the REST API:
-
-```
-/messages?text[$like]=Hello%
-```
-
-### $notlike
-
-The opposite of `$like`; resulting in an SQL condition similar to this: `WHERE some_field NOT LIKE 'X'`
-
-```ts
-app.service('messages').find({
- query: {
- text: {
- $notlike: '%bar'
- }
- }
-})
-```
-
-Through the REST API:
-
-```
-/messages?text[$notlike]=%bar
-```
-
-### $ilike
-
-For PostgreSQL only, the keywork $ilike can be used instead of $like to make the match case insensitive. The following query retrieves all messages that start with `hello` (case insensitive):
-
-```ts
-app.service('messages').find({
- query: {
- text: {
- $ilike: 'hello%'
- }
- }
-})
-```
-
-Through the REST API:
-
-```
-/messages?text[$ilike]=hello%
-```
-
-## Search
-
-Basic search can be implemented with the [query operators](#querying).
-
-## Associations
-
-While [resolvers](../schema/resolvers.md) offer a reasonably performant way to fetch associated entities, it is also possible to join tables to populate and query related data. This can be done by overriding the [createQuery](#createqueryparams) method and using the [Knex join methods](https://knexjs.org/guide/query-builder.html#join) to join the tables of related services.
-
-### Querying
-
-Considering a table like this:
-
-```ts
-await db.schema.createTable('todos', (table) => {
- table.increments('id')
- table.string('text')
- table.bigInteger('personId').references('id').inTable('people').notNullable()
- return table
-})
-```
-
-To query based on properties from the `people` table, join the tables you need in `createQuery` like this:
-
-```ts
-class TodoService> extends KnexService {
- createQuery(params: KnexAdapterParams) {
- const query = super.createQuery(params)
-
- query.join('people as person', 'todos.personId', 'person.id')
-
- return query
- }
-}
-```
-
-This will alias the table name from `people` to `person` (since our Todo only has a single person) and then allow to query all related properties as dot separated properties like `person.name`, including the [Feathers query syntax](./querying.md):
-
-```ts
-// Find the Todos for all Daves older than 100
-app.service('todos').find({
- query: {
- 'person.name': 'Dave',
- 'person.age': { $gt: 100 }
- }
-})
-```
-
-Note that in most applications, the query-able properties have to explicitly be added to the [TypeBox query schema](../schema/typebox.md#query-schemas) or [JSON query schema](../schema/schema.md#querysyntax). Support for the query syntax for a single property can be added with the `queryProperty` helper:
-
-```ts
-import { queryProperty } from '@feathersjs/typebox'
-
-export const todoQueryProperties = Type.Pick(userSchema, ['text'])
-export const todoQuerySchema = Type.Intersect(
- [
- querySyntax(userQueryProperties),
- // Add additional query properties here
- Type.Object(
- {
- // Only query the name for strings
- 'person.name': Type.String(),
- // Support the query syntax for the age
- 'person.age': queryProperty(Type.Number())
- },
- { additionalProperties: false }
- )
- ],
- { additionalProperties: false }
-)
-```
-
-### Populating
-
-Related properties from the joined table can be added as aliased properties with [query.select](https://knexjs.org/guide/query-builder.html#select):
-
-```ts
-class TodoService> extends KnexService {
- createQuery(params: KnexAdapterParams) {
- const query = super.createQuery(params)
-
- query
- .join('people as person', 'todos.personId', 'person.id')
- // This will add a `personName` property
- .select('person.name as personName')
- // This will add a `person.age' property
- .select('person.age')
-
- return query
- }
-}
-```
-
-
-
-Since SQL does not have a concept of nested objects, joined properties will be dot separated strings, **not nested objects**. Conversion can be done by e.g. using Lodash `_.set` in a [resolver converter](../schema/resolvers.md#options).
-
-
-
-This works well for individual properties, however if you require the complete (and safe) representation of the entire related data, use a [resolver](../schema/resolvers.md) instead.
-
-## Transactions
-
-The Knex adapter comes with three hooks that allows to run service method calls in a transaction. They can be used as application wide hooks or per service.
-
-To use the transactions feature, you must ensure that the three hooks (start, end and rollback) are being used.
-
-At the start of any request, a new transaction will be started. All the changes made during the request to the services that are using knex will use the transaction. At the end of the request, if successful, the changes will be commited. If an error occurs, the changes will be forfeit, all the `creates`, `patches`, `updates` and `deletes` are not going to be commited.
-
-The object that contains `transaction` is stored in the `params.transaction` of each request.
-
-
-
-If you call another Knex service within a hook and want to share the transaction you will have to pass `context.params.transaction` in the parameters of the service call.
-
-
-
-Sometimes it can be important to know when the transaction has been completed (committed or rolled back). For example, we might want to wait for transaction to complete before we send out any realtime events. This can be done by awaiting on the `transaction.committed` promise which will always resolve to either `true` in case the transaction has been committed, or `false` in case the transaction has been rejected.
-
-```ts
-app.service('messages').publish(async (data, context) => {
- const { transaction } = context.params
-
- if (transaction) {
- const success = await transaction.committed
-
- if (!success) {
- return []
- }
- }
-
- return app.channel(`rooms/${data.roomId}`)
-})
-```
-
-This also works with nested service calls and nested transactions. For example, if a service calls `transaction.start()` and passes the transaction param to a nested service call, which also calls `transaction.start()` in it's own hooks, they will share the top most `committed` promise that will resolve once all of the transactions have successfully committed.
-
-
-### Example Transaction Setup
-
-We will be using TypeBox schemas throughout, but that is not a requirement.
-
-We will have two services `Order` and `ShippingOrder`
-
-When we create an `Order` we want to automatically create a `ShippingOrder`, but if `Order` or `ShippingOrder` fail to be created we want to roll everything back and not save either.
-
-#### Order Schema
-
-```ts
-export const orderSchema = Type.Object(
- {
- id: Type.String({ format: 'uuid' }),
- item: Type.String(),
- address: Type.String(),
- quantity: Type.Number()
- },
- { $id: 'Order', additionalProperties: false }
-)
-```
-
-#### Shipping Order Schema
-
-```ts
-export const shippingOrderSchema = Type.Object(
- {
- id: Type.String({ format: 'uuid' }),
- order_id: Type.String({ format: 'uuid', $schema: 'Order' }),
- expedited: Type.Boolean(),
- shipped: Type.Boolean()
- },
- { $id: 'ShippingOrder', additionalProperties: false }
-)
-```
-
-#### After hook
-
-Let's start by adding our logic to automatically create our `ShippingOrder`.
-
-In our `order.ts` file we can add this hook
-
-```ts
-after: {
- create: [
- async (context: HookContext) => {
- const ourOrder = context.result as Order //Let's not deal with arrays or pagination for now
-
- await context.app
- .service(shippingOrderPath)
- .create({ expedited: true, shipped: false, order_id: ourOrder.id })
- }
- ]
-}
-```
-
-#### The problem
-
-Now that we have our logic in, `Order` will automatically create `ShippingOrder`. But what if something goes wrong and the `Order` is created but `ShippingOrder` isn't. This could cause an order to never be shipped.
-
-We can solve this problem in two ways outlined below.
-
-
-
-You can emulate an error by throwing an error in the before create hook of your `shipping-order.ts` file
-
-```ts
-create: [
- async () => {
- throw new Error('Fail')
- },
- schemaHooks.validateData(shippingOrderDataValidator),
- schemaHooks.resolveData(shippingOrderDataResolver)
-]
-```
-
-
-
-#### Application wide wrapping transaction
-
-Using the global hooks in `src/app.ts` we are able to wrap all of our `create`, `update`, and `patch` hooks.
-
-```ts
-import { transaction } from '@feathersjs/knex'
-
-const transactionHandler = async (context: HookContext, next: NextFunction) => {
- try {
- console.log('Start our work')
- await transaction.start()(context)
- await next()
- await transaction.end()(context)
- console.log('Work done')
- } catch (err) {
- console.log('Rollback')
- await transaction.rollback()(context)
- throw err
- }
-}
-
-// Register hooks that run on all service methods
-app.hooks({
- around: {
- create: [transactionHandler],
- patch: [transactionHandler],
- update: [transactionHandler],
- delete: [transactionHandler]
- }
-})
-```
-
-What this does is for any `create`/`update`/`patch`/`delete` request, we are starting a transaction that will be available in `context.params.transaction`.
-
-Note this does not mean we are done, when a `create` request is made to `Order`, it will have `context.params.transaction` available to it but we have to pass that along to `ShippingOrder` create request.
-
-Let's revisit our hook that automatically creates `ShippingOrder` and modify it to pass our transaction with the request.
-
-```ts
-after: {
- create: [
- async (context: HookContext) => {
- const ourOrder = context.result as Order
-
- await context.app.service(shippingOrderPath).create(
- { expedited: true, shipped: false, order_id: ourOrder.id },
- { transaction: context.params.transaction } // <--
- )
- }
- ]
-}
-```
-
-
-We have to use await here otherwise the transaction will close before the creation is finished. For something like sending an email, you can opt to not await.
-
-```ts
-context.params.transaction?.committed.then((success: any) => {
- if (!success) return
- //Send Email
-})
-```
-
-
-
-### Service wide wrapping transaction
-
-The simplest way of doing this is
-
-- Add `transaction.start()` in the before create hook.
-- Add `transaction.end()` in the after create hook.
-- Add `transaction.rollback()` in the error all hook.
-
-```ts
-app.service(orderPath).hooks({
- around: {
- // ...
- },
- before: {
- // ...
- create: [
- schemaHooks.validateData(orderDataValidator),
- schemaHooks.resolveData(orderDataResolver),
- transaction.start()
- ]
- },
- after: {
- create: [
- async (context: HookContext) => {
- const ourOrder = context.result as Order //Let's not deal with arrays or pagination for now
-
- await context.app
- .service(shippingOrderPath)
- .create(
- { expedited: true, shipped: false, order_id: ourOrder.id },
- { transaction: context.params.transaction }
- )
- },
- transaction.end()
- ]
- },
- error: {
- all: [transaction.rollback()]
- }
-})
-```
-
-#### Example with around hook
-
-When utilizing the around hook, you must pass the context manually. Remember to handle your errors as well, since `around` hooks will not throw into the `error` hook
-
-```ts
-{
- around: {
- create: [
- async (context: HookContext, next: NextFunction) => {
- console.log('Start Work')
- await transaction.start()(context)
- try {
- //We can do any work here, similar to a before hook
- await next()
- const ourOrder = context.result as Order
-
- await context.app
- .service(shippingOrderPath)
- .create(
- { expedited: true, shipped: false, order_id: ourOrder.id },
- { transaction: context.params.transaction }
- )
- console.log('End Work')
- transaction.end()(context)
- } catch (err) {
- console.log('Rollback')
- transaction.rollback()(context)
- throw err
- }
- }
- ]
- }
-}
-```
-
-
-## Error handling
-
-The adapter only throws [Feathers Errors](https://docs.feathersjs.com/api/errors.html) with the message to not leak sensitive information to a client. On the server, the original error can be retrieved through a secure symbol via `import { ERROR } from '@feathersjs/knex'`
-
-```ts
-import { ERROR } from 'feathers-knex'
-
-try {
- await knexService.doSomething()
-} catch (error: any) {
- // error is a FeathersError with just the message
- // Safely retrieve the Knex error
- const knexError = error[ERROR]
-}
-```
-
-## Migrations
-
-In a generated application, migrations are already set up. See the [CLI guide](../../guides/cli/knexfile.md) and the [KnexJS migrations documentation](https://knexjs.org/guide/migrations.html) for more information.
diff --git a/docs/api/databases/memory.md b/docs/api/databases/memory.md
deleted file mode 100644
index cb97840cb7..0000000000
--- a/docs/api/databases/memory.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-outline: deep
----
-
-# Memory Adapter
-
-
-
-[](https://www.npmjs.com/package/@feathersjs/memory)
-[](https://github.com/feathersjs/feathers/blob/dove/packages/memory/CHANGELOG.md)
-
-
-
-`@feathersjs/memory` is a service adatper for in-memory data storage that works on all platforms. It is normally not used to store data on a production server but can be useful for data that isn't persistent and to e.g. cache data in browser or React Native applications.
-
-```bash
-$ npm install --save @feathersjs/memory
-```
-
-
-
-The memory adapter implements the [common database adapter API](./common) and [querying syntax](./querying).
-
-
-
-## API
-
-### Usage
-
-```ts
-import { MemoryService } from '@feathersjs/memory'
-
-type Message = {
- id: number
- text: string
-}
-
-type MessageData = Pick
-
-class MyMessageService extends MemoryService {}
-
-app.use('messages', new MyMessageService({}))
-```
-
-### Options
-
-The following options are available:
-
-- `id` (_optional_, default: `'id'`) - The name of the id field property.
-- `startId` (_optional_, default: `0`) - An id number to start with that will be incremented for every new record (unless it is already set).
-- `store` (_optional_) - An object with id to item assignments to pre-initialize the data store
-- `events` (_optional_) - A list of [custom service events](https://docs.feathersjs.com/api/events.html#custom-events) sent by this service
-- `paginate` (_optional_) - A [pagination object](https://docs.feathersjs.com/api/databases/common.html#pagination) containing a `default` and `max` page size
-- `allow` (_optional_) - A list of additional query parameters to allow
-- `multi` (_optional_) - Allow `create` with arrays and `update` and `remove` with `id` `null` to change multiple items. Can be `true` for all methods or an array of allowed methods (e.g. `[ 'remove', 'create' ]`)
diff --git a/docs/api/databases/mongodb.md b/docs/api/databases/mongodb.md
deleted file mode 100644
index 335a0bd045..0000000000
--- a/docs/api/databases/mongodb.md
+++ /dev/null
@@ -1,492 +0,0 @@
----
-outline: deep
----
-
-# MongoDB
-
-
-
-[](https://www.npmjs.com/package/@feathersjs/mongodb)
-[](https://github.com/feathersjs/feathers/blob/dove/packages/mongodb/CHANGELOG.md)
-
-
-
-Support for MongoDB is provided in Feathers via the `@feathersjs/mongodb` database adapter which uses the [MongoDB Client for Node.js](https://www.npmjs.com/package/mongodb). The adapter uses the [MongoDB Aggregation Framework](https://www.mongodb.com/docs/manual/aggregation/), internally, and enables using Feathers' friendly syntax with the full power of [aggregation operators](https://www.mongodb.com/docs/manual/meta/aggregation-quick-reference/). The adapter automatically uses the [MongoDB Query API](https://www.mongodb.com/docs/drivers/node/current/quick-reference/) when you need features like [Collation](https://www.mongodb.com/docs/drivers/node/current/fundamentals/collations/).
-
-```bash
-$ npm install --save @feathersjs/mongodb
-```
-
-
-
-The MongoDB adapter implements the [common database adapter API](./common) and [querying syntax](./querying).
-
-
-
-## API
-
-### `MongoDBService(options)`
-
-`new MongoDBService(options)` returns a new service instance initialized with the given options. The following example extends the `MongoDBService` and then uses the `mongodbClient` from the app configuration and provides it to the `Model` option, which is passed to the new `MessagesService`.
-
-```ts
-import type { Params } from '@feathersjs/feathers'
-import { MongoDBService } from '@feathersjs/mongodb'
-import type { MongoDBAdapterParams, MongoDBAdapterOptions } from '@feathersjs/mongodb'
-
-import type { Application } from '../../declarations'
-import type { Messages, MessagesData, MessagesQuery } from './messages.schema'
-
-export interface MessagesParams extends MongoDBAdapterParams {}
-
-export class MessagesService extends MongoDBService<
- Messages,
- MessagesData,
- ServiceParams
-> {}
-
-export const messages = (app: Application) => {
- const options: MongoDBAdapterOptions = {
- paginate: app.get('paginate'),
- Model: app.get('mongodbClient').then((db) => db.collection('messages'))
- }
- app.use('messages', new MessagesService(options))
-}
-```
-
-Here's an overview of the `options` object:
-
-### Options
-
-MongoDB adapter specific options are:
-
-- `Model {Promise}` (**required**) - A Promise that resolves with the MongoDB collection instance. This can also be the return value of an `async` function without `await`
-- `disableObjectify {boolean}` (_optional_, default `false`) - This will disable conversion of the id field to a MongoDB ObjectID if you want to e.g. use normal strings
-- `useEstimatedDocumentCount {boolean}` (_optional_, default `false`) - If `true` document counting will rely on `estimatedDocumentCount` instead of `countDocuments`
-
-The [common API options](./common.md#options) are:
-
-- `id {string}` (_optional_, default: `'_id'`) - The name of the id field property. By design, MongoDB will always add an `_id` property. But you can choose to use a different property as your primary key.
-- `paginate {Object}` (_optional_) - A [pagination object](#pagination) containing a `default` and `max` page size
-- `multi {string[]|boolean}` (_optional_, default: `false`) - Allow `create` with arrays and `patch` and `remove` with id `null` to change multiple items. Can be `true` for all methods or an array of allowed methods (e.g. `[ 'remove', 'create' ]`)
-
-There are additionally several legacy options in the [common API options](./common.md#options)
-
-### getModel()
-
-`getModel([params])` returns a Promise that resolves with the MongoDB collection object. The optional `params` is the service parameters which may allow to override the collection via [params.adapter](./common.md#paramsadapter).
-
-### aggregateRaw(params)
-
-The `find` method has been split into separate utilities for converting params into different types of MongoDB requests. When using `params.pipeline`, the `aggregateRaw` method is used to convert the Feathers params into a MongoDB aggregation pipeline with the `model.aggregate` method. This method returns a raw MongoDB Cursor object, which can be used to perform custom pagination or in custom server scripts, if desired.
-
-### findRaw(params)
-
-`findRaw(params)` This method is used when there is no `params.pipeline` and uses the common `model.find` method. It returns a raw MongoDB Cursor object, which can be used to perform custom pagination or in custom server scripts, if desired.
-
-### makeFeathersPipeline(params)
-
-`makeFeathersPipeline(params)` takes a set of Feathers params and converts them to a pipeline array, ready to pass to `model.aggregate`. This utility comprises the bulk of the `aggregateRaw` functionality, but does not use `params.pipeline`.
-
-### Custom Params
-
-The `@feathersjs/mongodb` adapter utilizes three custom params which control adapter-specific features: `params.pipeline`, `params.mongodb`, and `params.adapter`. As mentioned [here](/api/services#params), these custom params are not intended to be used directly from the client. Directly exposing `params.pipeline` or `params.mongodb` to the client directly would expose the entire database to the client through powerful pipeline queries.
-
-#### params.adapter
-
-Allows to dynamically set the [adapter options](#options) (like the `Model` collection) for a service method call.
-
-#### params.pipeline
-
-Used for [aggregation pipelines](#aggregation-pipeline). Whenever this property is set, the adapter will use the `model.aggregate` method instead of the `model.find` method. The `pipeline` property should be an array of [aggregation stages](https://www.mongodb.com/docs/manual/reference/operator/aggregation-pipeline/).
-
-#### params.mongodb
-
-When making a [service method](/api/services.md) call, `params` can contain an`mongodb` property (for example, `{ upsert: true }`) which allows modifying the options used to run the MongoDB query. This param can be used for both find and aggregation queries.
-
-## Transactions
-
-[MongoDB Transactions](https://docs.mongodb.com/manual/core/transactions/) can be used by passing a `session` in [params.mongodb](#paramsmongodb). For example in a [hook](../hooks.md):
-
-```ts
-import { ObjectId } from 'mongodb'
-import { HookContext } from '../declarations'
-
-export const myHook = async (context: HookContext) => {
- const { app } = context
- const session = app.get('mongoClient').startSession()
-
- try {
- await session.withTransaction(async () => {
- const fooData = { message: 'Data for foo' }
- const barData = { text: 'Data for bar' }
-
- await app.service('fooService').create(fooData, {
- mongodb: { session }
- })
- await app.service('barService').create(barData, {
- mongodb: { session }
- })
- })
- } finally {
- await session.endSession()
- }
-}
-```
-
-## Indexes
-
-Indexes and unique constraints can be added to the `Model` Promise, usually in the `getOptions` in `.class`:
-
-```ts
-export const getOptions = (app: Application): MongoDBAdapterOptions => {
- return {
- paginate: app.get('paginate'),
- Model: app
- .get('mongodbClient')
- .then((db) => db.collection('myservice'))
- .then((collection) => {
- collection.createIndex({ email: 1 }, { unique: true })
-
- return collection
- })
- }
-}
-```
-
-
-
-Note that creating indexes for an existing collection with many entries should be done as a separate operation instead. See the [MongoDB createIndex documentation](https://www.mongodb.com/docs/manual/reference/method/db.collection.createIndex/) for more information.
-
-
-
-## Querying
-
-Additionally to the [common querying mechanism](./querying.md) this adapter also supports [MongoDB's query syntax](https://www.mongodb.com/docs/manual/tutorial/query-documents/) and the `update` method also supports MongoDB [update operators](https://www.mongodb.com/docs/manual/reference/operator/update/).
-
-## Search
-
-
-
-Note that in a normal application all MongoDB specific operators have to explicitly be added to the [TypeBox query schema](../schema/typebox.md#query-schemas) or [JSON query schema](../schema/schema.md#querysyntax).
-
-
-
-There are two ways to perform search queries with MongoDB:
-
-- Perform basic Regular Expression matches using the `$regex` filter.
-- Perform full-text search using the `$search` filter.
-
-### Basic Regex Search
-
-You can perform basic search using regular expressions with the `$regex` operator. Here's an example query.
-
-```js
-{
- text: { $regex: 'feathersjs', $options: 'igm' },
-}
-```
-
-### Full-Text Search
-
-See the MongoDB documentation for instructions on performing full-text search using the `$search` operator:
-
-- Perform [full-text queries on self-hosted MongoDB](https://www.mongodb.com/docs/manual/core/link-text-indexes/).
-- Perform [full-text queries on MongoDB Atlas](https://www.mongodb.com/docs/atlas/atlas-search/) (MongoDB's first-party hosted database).
-- Perform [full-text queries with the MongoDB Pipeline](https://www.mongodb.com/docs/manual/tutorial/text-search-in-aggregation/)
-
-## Aggregation Pipeline
-
-In Feathers v5 Dove, we added support for the full power of MongoDB's Aggregation Framework and blends it seamlessly with the familiar Feathers Query syntax. The `find` method automatically uses the aggregation pipeline when `params.pipeline` is set.
-
-The Aggregation Framework is accessed through the mongoClient's `model.aggregate` method, which accepts an array of "stages". Each stage contains an operator which describes an operation to apply to the previous step's data. Each stage applies the operation to the results of the previous step. It’s now possible to perform any of the [Aggregation Stages](https://www.mongodb.com/docs/upcoming/reference/operator/aggregation-pipeline/) like `$lookup` and `$unwind`, integration with the normal Feathers queries.
-
-Here's how it works with the operators that match the Feathers Query syntax. Let's convert the following Feathers query:
-
-```ts
-const query = {
- text: { $regex: 'feathersjs', $options: 'igm' },
- $sort: { createdAt: -1 },
- $skip: 20,
- $limit: 10
-}
-```
-
-The above query looks like this when converted to aggregation pipeline stages:
-
-```ts
-;[
- // returns the set of records containing the word "feathersjs"
- { $match: { text: { $regex: 'feathersjs', $options: 'igm' } } },
- // Sorts the results of the previous step by newest messages, first.
- { $sort: { createdAt: -1 } },
- // Skips the first 20 records of the previous step
- { $skip: 20 },
- // returns the next 10 records
- { $limit: 10 }
-]
-```
-
-### Pipeline Queries
-
-You can use the `params.pipeline` array to append additional stages to the query. This next example uses the `$lookup` operator together with the `$unwind` operator to populate a `user` attribute onto each message based on the message's `userId` property.
-
-```ts
-const result = await app.service('messages').find({
- query: { $sort: { name: 1 } },
- pipeline: [
- {
- $lookup: {
- from: 'users',
- localField: 'userId',
- foreignField: '_id',
- as: 'user'
- }
- },
- { $unwind: { path: '$user' } }
- ],
- paginate: false
-})
-```
-
-### Aggregation Stages
-
-In the example, above, the `query` is added to the pipeline, first. Then additional stages are added in the `pipeline` option:
-
-- The `$lookup` stage creates an array called `user` which contains any matches in `message.userId`, so if `userId` were an array of ids, any matches would be in the `users` array. However, in this example, the `userId` is a single id, so...
-- The `$unwind` stage turns the array into a single `user` object.
-
-The above is like doing a join, but without the data transforming overhead like you'd get with an SQL JOIN. If you have properly applied index to your MongoDB collections, the operation will typically execute extremely fast for a reasonable amount of data.
-
-A couple of other notable query stages:
-
-- `$graphLookup` lets you recursively pull in a tree of data from a single collection.
-- `$search` lets you do full-text search on fields
-
-All stages of the pipeline happen directly on the MongoDB server.
-
-Read through the full list of supported stages [in the MongoDB documentation](https://www.mongodb.com/docs/upcoming/reference/operator/aggregation-pipeline/).
-
-### The `$feathers` Stage
-
-The previous section showed how to append stages to a query using `params.pipeline`. Well, `params.pipeline` also supports a custom `$feathers` operator/stage which allows you to specify exactly where in the pipeline the Feathers Query gets injected.
-
-### Example: Proxy Permissions
-
-Imagine a scenario where you want to query the `pages` a user can edit by referencing a `permissions` collection to find out which pages the user can actually edit. Each record in the `permissions` record has a `userId` and a `pageId`. So we need to find and return only the pages to which the user has access by calling `GET /pages` from the client.
-
-We could put the following query in a hook to pull the correct `pages` from the database in a single query THROUGH the permissions collection. Remember, the request is coming in on the `pages` service, but we're going to query for pages `through` the permissions collection. Assume we've already authenticated the user, so the user will be found at `context.params.user`.
-
-```ts
-// Assume this query on the client
-const pages = await app.service('pages').find({ query: {} })
-
-// And put this query in a hook to populate pages "through" the permissions collection
-const result = await app.service('permissions').find({
- query: {},
- pipeline: [
- // query all permissions records which apply to the current user
- {
- $match: { userId: context.params.user._id }
- },
- // populate the pageId onto each `permission` record, as an array containing one page
- {
- $lookup: {
- from: 'pages',
- localField: 'pageId',
- foreignField: '_id',
- as: 'page'
- }
- },
- // convert the `page` array into an object, so now we have an array of permissions with permission.page on each.
- {
- $unwind: { path: '$page' }
- },
- // Add a permissionId to each page
- {
- $addFields: {
- 'page.permissionId': '$_id'
- }
- },
- // discard the permission and only keep the populated `page`, and bring it top level in the array
- {
- $replaceRoot: { newRoot: '$page' }
- },
- // apply the feathers query stages to the aggregation pipeline.
- // now the query will apply to the pages, since we made the pages top level in the previous step.
- {
- $feathers: {}
- }
- ],
- paginate: false
-})
-```
-
-Notice the `$feathers` stage in the above example. It will apply the query to that stage in the pipeline, which allows the query to apply to pages even though we had to make the query through the `permissions` service.
-
-If we were to express the above query with JavaScript, the final result would the same as with the following example:
-
-```ts
-// perform a db query to get the permissions
-const permissions = await context.app.service('permissions').find({
- query: {
- userId: context.params.user._id
- },
- paginate: false
-})
-// make a list of pageIds
-const pageIds = permissions.map((permission) => permission.pageId)
-// perform a db query to get the pages with matching `_id`
-const pages = await context.app.service('pages').find({
- query: {
- _id: {
- $in: pageIds
- }
- },
- paginate: false
-})
-// key the permissions by pageId for easy lookup
-const permissionsByPageId = permissions.reduce((byId, current) => {
- byId[current.pageId] = current
- return byId
-}, {})
-// Add the permissionId to each `page` record.
-const pagesWithPermissionId = pages.map((page) => {
- page.permissionId = permissionByPageId[page._id]._id
- return page
-})
-// And now apply the original query, whatever the client may have sent, to the pages.
-// It might require another database query
-```
-
-Both examples look a bit complex, but te one using aggregation stages will be much quicker because all stages run in the database server. It will also be quicker because it all happens in a single database query!
-
-One more obstacle for using JavaScript this way is that if the user's query changed (from the front end), we would likely be required to edit multiple different parts of the JS logic in order to correctly display results. With the pipeline example, above, the query is very cleanly applied.
-
-## Collation
-
-This adapter includes support for [collation and case insensitive indexes available in MongoDB v3.4](https://docs.mongodb.com/manual/release-notes/3.4/#collation-and-case-insensitive-indexes). Collation parameters may be passed using the special `collation` parameter to the `find()`, `remove()` and `patch()` methods.
-
-**Example: Patch records with case-insensitive alphabetical ordering**
-
-The example below would patch all student records with grades of `'c'` or `'C'` and above (a natural language ordering). Without collations this would not be as simple, since the comparison `{ $gt: 'c' }` would not include uppercase grades of `'C'` because the code point of `'C'` is less than that of `'c'`.
-
-```ts
-const patch = { shouldStudyMore: true }
-const query = { grade: { $gte: 'c' } }
-const collation = { locale: 'en', strength: 1 }
-const patchedStudent = await students.patch(null, patch, { query, collation })
-```
-
-**Example: Find records with a case-insensitive search**
-
-Similar to the above example, this would find students with a grade of `'c'` or greater, in a case-insensitive manner.
-
-```ts
-const query = { grade: { $gte: 'c' } }
-const collation = { locale: 'en', strength: 1 }
-
-const collatedStudents = await students.find({ query, collation })
-```
-
-For more information on MongoDB's collation feature, visit the [collation reference page](https://docs.mongodb.com/manual/reference/collation/).
-
-## ObjectIds
-
-MongoDB uses [ObjectId](https://www.mongodb.com/docs/manual/reference/method/ObjectId/) object as primary keys. To store them in the right format they have to be converted from and to strings.
-
-### AJV keyword
-
-To validate and convert strings to an object id using AJV, the `keywordObjectId` [AJV keyword](https://ajv.js.org/api.html#ajv-addkeyword-definition-string-object-ajv) helper can be used. It is set up automatically in a generated application using MongoDB.
-
-```ts
-import { keywordObjectId } from '@feathersjs/mongodb'
-
-const validator = new Ajv()
-
-validator.addKeyword(keywordObjectId)
-```
-
-### ObjectIdSchema
-
-Both, `@feathersjs/typebox` and `@feathersjs/schema` export an `ObjectIdSchema` helper that creates a schema which can be both, a MongoDB ObjectId or a string that will be converted with the `objectid` keyword:
-
-```ts
-import { ObjectIdSchema } from '@feathersjs/typebox' // or '@feathersjs/schema'
-
-const typeboxSchema = Type.Object({
- userId: ObjectIdSchema()
-})
-
-const jsonSchema = {
- type: 'object',
- properties: {
- userId: ObjectIdSchema()
- }
-}
-```
-
-
-
-The `ObjectIdSchema` helper will only work when the [`objectid` AJV keyword](#ajv-keyword) is registered.
-
-
-
-### ObjectId resolvers
-
-While the AJV format checks if an object id is valid, it still needs to be converted to the right type. An alternative the the [AJV converter](#ajv-converter) is to use [Feathers resolvers](../schema/resolvers.md). The following [property resolver](../schema/resolvers.md) helpers can be used.
-
-
-
-ObjectId resolvers do not need to be used when using the [AJV keyword](#ajv-keyword). They are useful however when using another JSON schema validation library.
-
-
-
-#### resolveObjectId
-
-`resolveObjectId` resolves a property as an object id. It can be used as a direct property resolver or called with the original value.
-
-```ts
-import { resolveObjectId } from '@feathersjs/mongodb'
-
-export const messageDataResolver = resolve({
- properties: {
- userId: resolveObjectId
- }
-})
-
-export const messageDataResolver = resolve({
- properties: {
- userId: async (value, _message, context) => {
- // If the user is an admin, allow them to create messages for other users
- if (context.params.user.isAdmin && value !== undefined) {
- return resolveObjectId(value)
- }
- // Otherwise associate the record with the id of the authenticated user
- return context.params.user._id
- }
- }
-})
-```
-
-#### resolveQueryObjectId
-
-`resolveQueryObjectId` allows to query for object ids. It supports conversion from a string to an object id as well as conversion for values from the [$in, $nin and $ne query syntax](./querying.md).
-
-```ts
-import { resolveQueryObjectId } from '@feathersjs/mongodb'
-
-export const messageQueryResolver = resolve({
- properties: {
- userId: resolveQueryObjectId
- }
-})
-```
-
-## Dates
-
-While MongoDB has a native `Date` type, the most reliable way to deal with dates is to send and store them as UTC millisecond timestamps e.g. returned by [Date.now()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now) or [new Date().getTime()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime) which is also used in the [Feathers getting started guide](../../guides/basics/generator.md). This has a few advantages:
-
-- No conversion between different string types
-- No timezone and winter/summer time issues
-- Easier calculations and query-ability
diff --git a/docs/api/databases/querying.md b/docs/api/databases/querying.md
deleted file mode 100644
index c5579d3cf6..0000000000
--- a/docs/api/databases/querying.md
+++ /dev/null
@@ -1,245 +0,0 @@
----
-outline: deep
----
-
-# Querying
-
-All official database adapters support a common way for querying, sorting, limiting and selecting `find` and `get` method calls as part of `params.query`. Querying also applies `update`, `patch` and `remove` method calls.
-
-
-
-When used via REST URLs all query values are strings and may need to be converted to the correct type. In a v5 application this is done automatically using [schemas](../schema/index.md).
-
-
-
-## Filters
-
-Filters are special properties (starting with a `$`) added at the top level of a query. They can determine page settings, the properties to select and more.
-
-### $limit
-
-`$limit` will return only the number of results you specify:
-
-```js
-// Retrieves the first two unread messages
-app.service('messages').find({
- query: {
- $limit: 2,
- read: false
- }
-})
-```
-
-```
-GET /messages?$limit=2&read=false
-```
-
-
-
-With [pagination enabled](common.md#pagination), to just get the number of available records set `$limit` to `0`. This will only run a (fast) counting query against the database and return a page object with the `total` and an empty `data` array.
-
-
-
-### $skip
-
-`$skip` will skip the specified number of results:
-
-```js
-// Retrieves the next two unread messages
-app.service('messages').find({
- query: {
- $limit: 2,
- $skip: 2,
- read: false
- }
-})
-```
-
-```
-GET /messages?$limit=2&$skip=2&read=false
-```
-
-### $sort
-
-`$sort` will sort based on the object you provide. It can contain a list of properties by which to sort mapped to the order (`1` ascending, `-1` descending).
-
-```js
-// Find the 10 newest messages
-app.service('messages').find({
- query: {
- $limit: 10,
- $sort: {
- createdAt: -1
- }
- }
-})
-```
-
-```
-/messages?$limit=10&$sort[createdAt]=-1
-```
-
-### $select
-
-`$select` allows to pick which fields to include in the result. This will work for any service method.
-
-```js
-// Only return the `text` and `userId` field in a message
-app.service('messages').find({
- query: {
- $select: ['text', 'userId']
- }
-})
-
-app.service('messages').get(1, {
- query: {
- $select: ['text']
- }
-})
-```
-
-```
-GET /messages?$select[]=text&$select[]=userId
-GET /messages/1?$select[]=text
-```
-
-### $or
-
-Find all records that match any of the given criteria.
-
-```js
-// Find all messages that are not marked as archived
-// or any message from room 2
-app.service('messages').find({
- query: {
- $or: [{ archived: { $ne: true } }, { roomId: 2 }]
- }
-})
-```
-
-```
-GET /messages?$or[0][archived][$ne]=true&$or[1][roomId]=2
-```
-
-### $and
-
-Find all records that match all of the given criteria.
-
-```js
-// Find all messages that are not marked as archived and in room 2
-app.service('messages').find({
- query: {
- $and: [{ archived: { $ne: true } }, { roomId: 2 }]
- }
-})
-```
-
-```
-GET /messages?$and[0][archived][$ne]=true&$and[1][roomId]=2
-```
-
-## Operators
-
-Operators either query a property for a specific value or determine nested special properties (starting with a `$`) that allow querying the property for certain conditions. When multiple operators are set, all conditions have to apply for a property to match.
-
-### Equality
-
-All fields that do not contain special query parameters are compared directly for equality.
-
-```js
-// Find all unread messages in room #2
-app.service('messages').find({
- query: {
- read: false,
- roomId: 2
- }
-})
-```
-
-```
-GET /messages?read=false&roomId=2
-```
-
-### $in, $nin
-
-Find all records where the property does (`$in`) or does not (`$nin`) match any of the given values.
-
-```js
-// Find all messages in room 2 or 5
-app.service('messages').find({
- query: {
- roomId: {
- $in: [2, 5]
- }
- }
-})
-```
-
-```
-GET /messages?roomId[$in][]=2&roomId[$in][]=5
-```
-
-### $lt, $lte
-
-Find all records where the value is less (`$lt`) or less and equal (`$lte`) to a given value.
-
-```js
-// Find all messages older than a day
-const DAY_MS = 24 * 60 * 60 * 1000
-
-app.service('messages').find({
- query: {
- createdAt: {
- $lt: new Date().getTime() - DAY_MS
- }
- }
-})
-```
-
-```
-GET /messages?createdAt[$lt]=1479664146607
-```
-
-### $gt, $gte
-
-Find all records where the value is more (`$gt`) or more and equal (`$gte`) to a given value.
-
-```js
-// Find all messages within the last day
-const DAY_MS = 24 * 60 * 60 * 1000
-
-app.service('messages').find({
- query: {
- createdAt: {
- $gt: new Date().getTime() - DAY_MS
- }
- }
-})
-```
-
-```
-GET /messages?createdAt[$gt]=1479664146607
-```
-
-### $ne
-
-Find all records that do not equal the given property value.
-
-```js
-// Find all messages that are not marked as archived
-app.service('messages').find({
- query: {
- archived: {
- $ne: true
- }
- }
-})
-```
-
-```
-GET /messages?archived[$ne]=true
-```
-
-## Search
-
-Searching is not part of the common querying syntax since it is very specific to the database you are using. For built in databases, see the [SQL search](./knex.md#search) and [MongoDb search](./mongodb.md#search) documentation. If you are using [a community supported adapter](/ecosystem/?cat=Database&sort=lastPublish) their documentation may contain additional information on how to implement search functionality.
diff --git a/docs/api/express.md b/docs/api/express.md
deleted file mode 100644
index b5a59a1521..0000000000
--- a/docs/api/express.md
+++ /dev/null
@@ -1,617 +0,0 @@
----
-outline: deep
----
-
-# Express
-
-
-
-[](https://www.npmjs.com/package/@feathersjs/express)
-[](https://github.com/feathersjs/feathers/blob/dove/packages/express/CHANGELOG.md)
-
-
-
-```
-npm install @feathersjs/express --save
-```
-
-The `@feathersjs/express` module contains [Express](http://expressjs.com/) framework integrations for Feathers:
-
-- The [Express framework bindings](#expressapp) to make a Feathers application Express compatible
-- An Express based transport to expose services through a [REST API](#expressrest)
-- An [Express error handler](#expresserrorhandler) for [Feathers errors](./errors.md)
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import express from '@feathersjs/express'
-
-const app = express(feathers())
-```
-
-
-
-As of Feathers v5, [Koa](./koa.md) is the recommended framework integration since it is more modern, faster and easier to use. When chosen explicitly, you should already be familiar with [Express](http://expressjs.com/en/guide/routing.html).
-
-
-
-## express(app)
-
-`express(app) -> app` is a function that turns a [Feathers application](./application.md) into a fully Express (4+) compatible application that additionally to Feathers functionality also lets you use the [Express API](http://expressjs.com/en/4x/api.html).
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import express from '@feathersjs/express'
-
-const app = express(feathers())
-```
-
-Note that `@feathersjs/express` also exposes the Express [built-in middleware](#built-ins)
-
-## express(app, expressApp)
-
-`express(app, expressApp) -> app` allows to extend an existing Express application with the Feathers application `app`.
-
-## express()
-
-If no Feathers application is passed, `express() -> app` returns a plain Express application just like a normal call to Express would.
-
-## app.use(path, service|mw|\[mw\])
-
-`app.use(path, service|mw|[mw]) -> app` registers either a [service object](./services.md), an [Express middleware](http://expressjs.com/en/guide/writing-middleware.html) or an array of [Express middleware](http://expressjs.com/en/guide/writing-middleware.html) on the given path. If [a service object](./services.md) is passed it will use Feathers registration mechanism, for a middleware function Express.
-
-```ts
-// Register a service
-app.use('todos', {
- async get(id) {
- return { id }
- }
-})
-
-// Register an Express middleware
-app.use('/test', (req, res) => {
- res.json({
- message: 'Hello world from Express middleware'
- })
-})
-
-// Register multiple Express middleware functions
-app.use(
- '/test',
- (req, res, next) => {
- res.data = 'Step 1 worked'
- next()
- },
- (req, res) => {
- res.json({
- message: `Hello world from Express middleware ${res.data}`
- })
- }
-)
-```
-
-## app.listen(port)
-
-`app.listen(port) -> Promise` will first call Express [app.listen](http://expressjs.com/en/4x/api.html#app.listen) and then internally also call the [app.setup(server)](./application.md#setup-server).
-
-```ts
-// Listen on port 3030
-const server = await app.listen(3030)
-```
-
-## app.setup(server)
-
-`app.setup(server) -> app` is usually called internally by `app.listen` but in the cases described below needs to be called explicitly.
-
-### Sub-Apps
-
-When registering an application as a sub-app, `app.setup(server)` has to be called to initialize the sub-apps services.
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import express from '@feathersjs/express'
-
-const api = feathers()
-
-api.use('service', myService)
-
-const mainApp = express(feathers()).use('/api/v1', api)
-
-const server = await mainApp.listen(3030)
-
-// Now call setup on the Feathers app with the server
-await api.setup(server)
-```
-
-### HTTPS
-
-HTTPS requires creating a separate server in which case `app.setup(server)` also has to be called explicitly. In a generated application `src/index.js` should look like this:
-
-```ts
-import https from 'https'
-import { app } from './app'
-
-const port = app.get('port')
-const server = https
- .createServer(
- {
- key: fs.readFileSync('privatekey.pem'),
- cert: fs.readFileSync('certificate.pem')
- },
- app
- )
- .listen(443)
-
-// Call app.setup to initialize all services and SocketIO
-app.setup(server)
-
-server.on('listening', () => logger.info('Feathers application started'))
-```
-
-### Virtual Hosts
-
-The [vhost](https://github.com/expressjs/vhost) Express middleware can be used to run a Feathers application on a virtual host but again requires `app.setup(server)` to be called explicitly.
-
-```ts
-import vhost from 'vhost'
-import { feathers } from '@feathersjs/feathers'
-import express from '@feathersjs/express'
-
-const app = express(feathers())
-
-app.use('/todos', todoService)
-
-const host = express().use(vhost('foo.com', app))
-const server = await host.listen(8080)
-
-// Here we need to call app.setup because .listen on our virtual hosted
-// app is never called
-app.setup(server)
-```
-
-## rest()
-
-Registers a Feathers transport mechanism that allows you to expose and consume [services](./services.md) through a [RESTful API](https://en.wikipedia.org/wiki/Representational_state_transfer). This means that you can call a service method through the `GET`, `POST`, `PUT`, `PATCH` and `DELETE` [HTTP methods](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol):
-
-| Service method | HTTP method | Path |
-| -------------- | ----------- | ----------- |
-| .find() | GET | /messages |
-| .get() | GET | /messages/1 |
-| .create() | POST | /messages |
-| .update() | PUT | /messages/1 |
-| .patch() | PATCH | /messages/1 |
-| .remove() | DELETE | /messages/1 |
-
-### app.configure(rest())
-
-Configures the transport provider with a standard formatter sending JSON response via [res.json](http://expressjs.com/en/4x/api.html#res.json).
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import express, { json, urlencoded, rest } from '@feathersjs/express'
-
-// Create an Express compatible Feathers application
-const app = express(feathers())
-
-// Turn on JSON parser for REST services
-app.use(json())
-// Turn on URL-encoded parser for REST services
-app.use(urlencoded({ extended: true }))
-// Set up REST transport
-app.configure(rest())
-```
-
-
-
-The `json` and `urlencoded` body parser and [params middleware](#params) has to be registered **before** any service.
-
-
-
-### app.configure(rest(formatter))
-
-The default REST response formatter is a middleware that formats the data retrieved by the service as JSON. If you would like to configure your own `formatter` middleware pass a `formatter(req, res)` function. This middleware will have access to `res.data` which is the data returned by the service. [res.format](http://expressjs.com/en/4x/api.html#res.format) can be used for content negotiation.
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import express, { json, urlencoded, rest } from '@feathersjs/express'
-
-const app = express(feathers())
-
-// Turn on JSON parser for REST services
-app.use(json())
-// Turn on URL-encoded parser for REST services
-app.use(urlencoded({ extended: true }))
-// Set up REST transport
-app.configure(
- rest(function (req, res) {
- // Format the message as text/plain
- res.format({
- 'text/plain': function () {
- res.end(`The Message is: "${res.data.text}"`)
- }
- })
- })
-)
-```
-
-## Custom service middleware
-
-Custom Express middleware that only should run before or after a specific service can be passed to `app.use` in the order it should run:
-
-```ts
-const todoService = {
- async get(id: Id) {
- return {
- id,
- description: `You have to do ${id}!`
- }
- }
-}
-
-app.use('todos', logRequest, todoService, updateData)
-```
-
-
-
-Custom middleware will only run for REST requests and not when used with other transports (like Socket.io). If possible try to avoid custom middleware and use [hooks](hooks.md) or customized services instead which will work for all transports.
-
-
-
-Middleware that runs after the service has the service call information available as
-
-- `res.data` - The data that will be sent
-- `res.hook` - The [hook](./hooks.md) context of the service method call
-
-For example `updateData` could look like this:
-
-```js
-function updateData(req, res, next) {
- res.data.updateData = true
- next()
-}
-```
-
-If you run `res.send` in a custom middleware after the service and don't call `next`, other middleware (like the REST formatter) will be skipped. This can be used to e.g. render different views for certain service method calls, for example to export a file as CSV:
-
-```ts
-import json2csv from 'json2csv'
-
-const fields = ['done', 'description']
-
-app.use('todos', todoService, function (req, res) {
- const result = res.data
- const data = result.data // will be either `result` as an array or `data` if it is paginated
- const csv = json2csv({ data, fields })
-
- res.type('csv')
- res.end(csv)
-})
-```
-
-## params
-
-All Express middleware will have access to the `req.feathers` object to set properties on the service method `params`:
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import type { Id, Params } from '@feathersjs/feathers'
-import express, { json, urlencoded, rest } from '@feathersjs/express'
-
-const app = express(feathers())
-
-app.use(json())
-app.use(urlencoded({ extended: true }))
-app.use(function (req, res, next) {
- req.feathers.fromMiddleware = 'Hello world'
- next()
-})
-app.configure(rest())
-
-app.use('todos', {
- async get(id: Id, params: Params) {
- console.log(params.provider) // -> 'rest'
- console.log(params.fromMiddleware) // -> 'Hello world'
-
- return {
- id,
- params,
- description: `You have to do ${id}!`
- }
- }
-})
-
-app.listen(3030)
-```
-
-Avoid setting `req.feathers = something` directly since it may already contain information that other Feathers plugins rely on. Adding individual properties or using `{ ...req.feathers, something }` is the more reliable option.
-
-
-
-Since the order of Express middleware matters, any middleware that sets service parameters has to be registered **before** `app.configure(rest())` or as a [custom service middleware](#custom-service-middleware)
-
-
-
-
-
-Although it may be convenient to set `req.feathers.req = req` to have access to the request object in the service, we recommend keeping your services as provider independent as possible. There usually is a way to pre-process your data in a middleware so that the service does not need to know about the HTTP request or response.
-
-
-
-### params.query
-
-`params.query` will contain the URL query parameters sent from the client. For the REST transport the query string is parsed using the [qs](https://github.com/ljharb/qs) module. For some query string examples see the [database querying](./databases/querying.md) chapter.
-
-
-
-Only `params.query` is passed between the server and the client, other parts of `params` are not. This is for security reasons so that a client can't set things like `params.user` or the database options. You can always map from `params.query` to other `params` properties in a [hook](./hooks.md).
-
-
-
-For example:
-
-```
-GET /messages?read=true&$sort[createdAt]=-1
-```
-
-Will set `params.query` to
-
-```json
-{
- "read": "true",
- "$sort": { "createdAt": "-1" }
-}
-```
-
-
-
-Note that the URL is a string so type conversion may be necessary. This is usually done with [query schemas and resolvers](./schema/index.md).
-
-
-
-
-
-If an array in your request consists of more than 20 items, the [qs](https://www.npmjs.com/package/qs) parser implicitly [converts](https://github.com/ljharb/qs#parsing-arrays) it to an object with indices as keys. To extend this limit, you can set a custom query parser: `app.set('query parser', str => qs.parse(str, {arrayLimit: 1000}))`
-
-
-
-### params.provider
-
-For any [service method call](./services.md) made through REST `params.provider` will be set to `rest`. In a [hook](./hooks.md) this can for example be used to prevent external users from making a service method call:
-
-```ts
-import { HookContext } from 'declarations'
-
-app.service('users').hooks({
- before: {
- remove: [
- async (context: HookContext) => {
- // check for if(context.params.provider) to prevent any external call
- if (context.params.provider === 'rest') {
- throw new Error('You can not delete a user via REST')
- }
- }
- ]
- }
-})
-```
-
-### params.headers
-
-`params.headers` will contain the original service request headers.
-
-### params.route
-
-Express route placeholders in a service URL will be added to the services `params.route`. See the [FAQ entry on nested routes](../help/faq.md#how-do-i-do-nested-or-custom-routes) for more details on when and when not to use nested routes.
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import express, { rest } from '@feathersjs/express'
-
-const app = express(feathers())
-
-app.configure(rest())
-app.use(function (req, res, next) {
- req.feathers.fromMiddleware = 'Hello world'
- next()
-})
-
-app.use('users/:userId/messages', {
- async get(id, params) {
- console.log(params.query) // -> ?query
- console.log(params.provider) // -> 'rest'
- console.log(params.fromMiddleware) // -> 'Hello world'
- console.log(params.route.userId) // will be `1` for GET /users/1/messages
-
- return {
- id,
- params,
- read: false,
- text: `Feathers is great!`,
- createdAt: new Date().getTime()
- }
- }
-})
-
-app.listen(3030)
-```
-
-## Middleware
-
-`@feathersjs/express` comes with the following middleware
-
-### notFound(options)
-
-`notFound()` returns middleware that returns a `NotFound` (404) [Feathers error](./errors.md). It should be used as the last middleware **before** the error handler. The following options are available:
-
-- `verbose`: Set to `true` if the URL should be included in the error message (default: `false`)
-
-```ts
-import { notFound, errorHandler } from '@feathersjs/express'
-
-// Return errors that include the URL
-app.use(notFound({ verbose: true }))
-app.use(errorHandler())
-```
-
-### errorHandler()
-
-`errorHandler` is an [Express error handler](https://expressjs.com/en/guide/error-handling.html) middleware that formats any error response to a REST call as JSON (or HTML if e.g. someone hits our API directly in the browser) and sets the appropriate error code.
-
-
-
-You can still use any other Express compatible [error middleware](http://expressjs.com/en/guide/error-handling.html) with Feathers.
-
-
-
-
-
-Just like in Express, the error handler has to be registered _after_ all middleware and services.
-
-
-
-#### app.use(errorHandler())
-
-Set up the error handler with the default configuration.
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import express from '@feathersjs/express'
-
-const app = express(feathers())
-
-// before starting the app
-app.use(express.errorHandler())
-```
-
-#### app.use(errorHandler(options))
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import express from '@feathersjs/express'
-
-const app = express(feathers())
-
-// Just like Express your error middleware needs to be
-// set up last in your middleware chain.
-app.use(
- express.errorHandler({
- html: function (error, req, res, next) {
- // render your error view with the error object
- res.render('error', error)
- }
- })
-)
-
-app.use(
- errorHandler({
- html: {
- 404: 'path/to/notFound.html',
- 500: 'there/will/be/robots.html'
- }
- })
-)
-```
-
-
-
-If you want to have the response in json format be sure to set the `Accept` header in your request to `application/json` otherwise the default error handler will return HTML.
-
-
-
-The following options can be passed when creating a new error handler:
-
-- `html` (Function|Object) [optional] - A custom formatter function or an object that contains the path to your custom html error pages. Can also be set to `false` to disable html error pages altogether so that only JSON is returned.
-- `logger` (Function|false) (default: `console`) - Set a logger object to log the error (it will be logger with `logger.error(error)`
-
-### authenticate()
-
-`express.authenticate(...strategies)` allows to protect an Express middleware with an [authentication service](./authentication/service.md) that has [strategies](./authentication/strategy.md) registered that can parse HTTP headers. It will set the authentication information on the `req.feathers` object (e.g. `req.feathers.user`). The following example protects the `/hello` endpoint with the JWT strategy (so the `Authorization: Bearer ` header needs to be set) and uses the user email to render the message:
-
-```ts
-import { authenticate } from '@feathersjs/express'
-
-app.use('/hello', authenticate('jwt'), (req, res) => {
- const { user } = req.feathers
-
- res.render(`Hello ${user.email}`)
-})
-
-// When using with the non-default authentication service
-app.use(
- '/hello',
- authenticate({
- service: 'v2/auth',
- strategies: ['jwt', 'api-key']
- }),
- (req, res) => {
- const { user } = req.feathers
-
- res.render(`Hello ${user.email}`)
- }
-)
-```
-
-When clicking a normal link, web browsers do _not_ send the appropriate header. In order to initate an authenticated request to a middleware from a browser link, there are two options. One is using a session which is described in the [Server Side rendering guide](../cookbook/express/view-engine.md), another is to add the JWT access token to the query string and mapping it to an authentication request:
-
-```ts
-import { authenticate } from '@feathersjs/express'
-
-const setQueryAuthentication = (req, res, next) => {
- const { access_token } = req.query
-
- if (access_token) {
- req.authentication = {
- strategy: 'jwt',
- accessToken: access_token
- }
- }
-
- next()
-}
-
-// Request this with `hello?access_token=`
-app.use('/hello', setQueryAuthentication, authenticate('jwt'), (req, res) => {
- const { user } = req.feathers
-
- res.render(`Hello ${user.email}`)
-})
-```
-
-How to get the access token from the authentication client is described in the [authentication client documentation](../api/authentication/client.md#app-get-authentication).
-
-
-
-When using HTTPS URLs are safely encrypted but when using this method you have to make sure that access tokens are not logged through any of your logging mechanisms.
-
-
-
-### parseAuthentication
-
-The `parseAuthentication` middleware is registered automatically and will use the strategies of the default [authentication service](./authentication/service.md) to parse headers for authentication information. If you want to additionally parse authentication with a different authentication service this middleware can be registered again with that service configured.
-
-```ts
-import { parseAuthentication } from '@feathersjs/express'
-
-app.use(
- parseAuthentication({
- service: 'api/v1/authentication',
- strategies: ['jwt', 'local']
- })
-)
-```
-
-### cors
-
-A reference to the [cors](https://github.com/expressjs/cors) module.
-
-### compression
-
-A reference to the [compression](https://github.com/expressjs/compression) module.
-
-### Built ins
-
-Note that `@feathersjs/express` also exposes the standard [Express middleware](http://expressjs.com/en/4x/api.html#express):
-
-- `json` - A JSON body parser
-- `urlencoded` - A URL encoded form body parser
-- `serveStatic` - To statically host files in a folder
-- `Router` - Creates an Express router object
diff --git a/docs/api/index.md b/docs/api/index.md
deleted file mode 100644
index 71a56bae7c..0000000000
--- a/docs/api/index.md
+++ /dev/null
@@ -1,67 +0,0 @@
----
-outline: deep
----
-
-# API
-
-This section describes all the individual modules and APIs of Feathers.
-
-## Core
-
-Feathers core functionality that works on the client and the server
-
-- [Application](./application.md) - The main Feathers application API
-- [Services](./services.md) - Service objects and their methods and Feathers specific functionality
-- [Hooks](./hooks.md) - Pluggable middleware for service methods
-- [Events](./events.md) - Events sent by Feathers service methods
-- [Errors](./errors.md) - A collection of error classes used throughout Feathers
-
-## Transports
-
-Expose a Feathers application as an API server
-
-- [Configuration](./configuration.md) - A node-config wrapper to initialize configuration of a server side application.
-- [Koa](./koa.md) - Feathers KoaJS framework bindings, REST API provider and error middleware.
-- [Express](./express.md) - Feathers Express framework bindings, REST API provider and error middleware.
-- [Socket.io](./socketio.md) - The Socket.io real-time transport provider
-- [Channels](./channels.md) - Channels are used to send real-time events to clients
-
-## Authentication
-
-Feathers authentication mechanism
-
-- [Service](./authentication/service.md) - The main authentication service configuration
-- [Hook](./authentication/hook.md) - The hook used to authenticate service method calls
-- [Strategies](./authentication/strategy.md) - More about authentication strategies
-- [Local](./authentication/local.md) - Local email/password authentication
-- [JWT](./authentication/jwt.md) - JWT authentication
-- [OAuth](./authentication/oauth.md) - Using OAuth logins (Facebook, Twitter etc.)
-
-## Client
-
-More details on how to use Feathers on the client
-
-- [Usage](./client.md) - Feathers client usage in Node, React Native and the browser (also with Webpack and Browserify)
-- [REST](./client/rest.md) - Feathers client and direct REST API server usage
-- [Socket.io](./client/socketio.md) - Feathers client and direct Socket.io API server usage
-- [Authentication](authentication/client) - A client for Feathers authentication
-
-## Schema
-
-Model definitions for validating and resolving data.
-
-- [TypeBox](./schema/typebox.md) - Integration for TypeBox, a JSON schema type builder
-- [JSON schema](./schema/schema.md) - JSON schema integration
-- [Validators](./schema/validators.md) - Schema validators and validation hooks
-- [Resolvers](./schema/resolvers.md) - Dynamic data resolvers
-
-## Databases
-
-Feathers common database adapter API and querying mechanism
-
-- [Adapters](./databases/adapters.md) - A list of supported database adapters
-- [Common API](./databases/common.md) - Database adapter common initialization and configuration API
-- [Querying](./databases/querying.md) - The common querying mechanism
-- [MongoDB](./databases/querying.md) - The adapter for MongoDB databases
-- [SQL](./databases/knex.md) - The adapter for SQL databases using KnexJS
-- [Memory](./databases/memory.md) - The adapter for in-memory data storage
diff --git a/docs/api/koa.md b/docs/api/koa.md
deleted file mode 100644
index e1ca7772b8..0000000000
--- a/docs/api/koa.md
+++ /dev/null
@@ -1,276 +0,0 @@
----
-outline: deep
----
-
-# Koa
-
-
-
-[](https://www.npmjs.com/package/@feathersjs/koa)
-[](https://github.com/feathersjs/feathers/blob/dove/packages/koa/CHANGELOG.md)
-
-
-
-```
-npm install @feathersjs/koa --save
-```
-
-The `@feathersjs/koa` module contains the [KoaJS](https://koajs.com/) framework integrations for Feathers. It will turn the Feathers app into a fully compatible KoaJS application.
-
-## koa(app)
-
-`koa(app) -> app` is a function that turns a [Feathers application](./application.md) into a fully KoaJS compatible application that additionally to Feathers functionality also lets you use the [KoaJS API](https://koajs.com/).
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import { koa, errorHandler, bodyParser, rest } from '@feathersjs/koa'
-
-const app = koa(feathers())
-
-app.use(errorHandler())
-app.use(authentication())
-app.use(bodyParser())
-app.configure(rest())
-```
-
-Also see the [additional middleware](#middleware) that `@feathersjs/koa` exposes.
-
-## koa(app, koaApp)
-
-`koa(app, koaApp) -> app` allows to extend an existing Koa application with the Feathers application `app`.
-
-## koa()
-
-If no Feathers application is passed, `koa() -> app` returns a plain Koa application (`new Koa()`).
-
-## app.use(location|mw[, service])
-
-`app.use(location|mw[, service]) -> app` registers either a [service object](./services.md), or a Koa middleware. If a path and [service object](./services.md) is passed it will use Feathers registration mechanism, for a middleware function Koa.
-
-## app.listen(port)
-
-`app.listen(port) -> HttpServer` will first call Koa [app.listen](https://github.com/koajs/koa/blob/master/docs/api/index.md#applisten) and then internally also call the [Feathers app.setup(server)](./application.md#setupserver).
-
-```js
-// Listen on port 3030
-const server = await app.listen(3030)
-```
-
-## app.setup(server)
-
-`app.setup(server) -> app` is usually called internally by `app.listen` but in the cases described below needs to be called explicitly.
-
-### HTTPS
-
-HTTPS requires creating a separate server in which case `app.setup(server)` also has to be called explicitly. In a generated application `src/index.js` should look like this:
-
-```ts
-import https from 'https'
-import { app } from './app'
-
-const port = app.get('port')
-const server = https
- .createServer(
- {
- key: fs.readFileSync('privatekey.pem'),
- cert: fs.readFileSync('certificate.pem')
- },
- app.callback()
- )
- .listen(443)
-
-// Call app.setup to initialize all services and SocketIO
-app.setup(server)
-
-server.on('listening', () => logger.info('Feathers application started'))
-```
-
-## params
-
-In a Koa middleware, `ctx.feathers` is an object which will be extended as `params` in a service method call.
-
-```ts
-import { rest } from '@feathersjs/koa'
-import type { NextFunction } from '@feathersjs/koa'
-import type { Id, Params } from '@feathersjs/feathers'
-
-class TodoService {
- async get(id: Id, params: Params & { fromMiddleware: string }) {
- const { fromMiddleware } = params
-
- return { id, fromMiddleware }
- }
-}
-
-// Register Koa middleware
-app.use(async (ctx: any, next: NextFunction) => {
- ctx.feathers = {
- ...ctx.feathers,
- fromMiddleware: 'Hello from Koa middleware'
- }
-
- await next()
-})
-app.configure(rest())
-
-// Register a service
-app.use('todos', new TodoService())
-```
-
-
-
-Note that `app.configure(rest())` has to happen **after** any custom middleware.
-
-
-
-### params.query
-
-`params.query` will contain the URL query parameters sent from the client parsed using [koa-qs](https://github.com/koajs/qs).
-
-
-
-Only `params.query` is passed between the server and the client, other parts of `params` are not. This is for security reasons so that a client can't set things like `params.user` or the database options. You can always map from `params.query` to other `params` properties in a [hook](./hooks.md).
-
-
-
-To increase the array limit in query strings, `koa-qs` can be reinitalized with the options for the [qs](https://www.npmjs.com/package/qs) module:
-
-```ts
-// app.ts
-import koaQs from 'koa-qs'
-
-// ...
-koaQs(app, 'extended', {
- arrayLimit: 200
-})
-```
-
-### params.provider
-
-For any [service method call](./services.md) made through REST `params.provider` will be set to `rest`.
-
-### params.route
-
-Route placeholders in a service URL will be added to the services `params.route`. See the [FAQ entry on nested routes](../help/faq.md#how-do-i-do-nested-or-custom-routes) for more details on when and when not to use nested routes.
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import { koa, errorHandler, bodyParser, rest } from '@feathersjs/koa'
-
-const app = koa(feathers())
-
-app.use('users/:userId/messages', {
- async get(id, params) {
- console.log(params.query) // -> ?query
- console.log(params.provider) // -> 'rest'
- console.log(params.fromMiddleware) // -> 'Hello world'
- console.log(params.route) // will be `{ userId: '1' }` for GET /users/1/messages
-
- return {
- id,
- params,
- read: false,
- text: `Feathers is great!`,
- createdAt: new Date().getTime()
- }
- }
-})
-
-app.listen(3030)
-```
-
-## Service middleware
-
-When registering a service, it is also possible to pass custom Koa middleware that should run `before` the specific service method in the `koa` [service option](./application.md#usepath-service--options):
-
-```ts
-app.use('/todos', new TodoService(), {
- koa: {
- before: [
- async (ctx, next) => {
- ctx.feathers // data that will be merged into sevice `params`
-
- // This will run all subsequent middleware and the service call
- await next()
-
- // Then we have additional properties available on the context
- ctx.hook // the hook context from the method call
- ctx.body // the return value
- }
- ]
- }
-})
-```
-
-Note that the order of middleware will be `[...before, serviceMethod]`.
-
-## Middleware
-
-### rest
-
-```ts
-import { rest } from '@feathersjs/koa'
-
-app.configure(rest())
-```
-
-Configures the middleware for handling service calls via HTTP. It will also register authentication header parsing. The following (optional) options are available:
-
-- `formatter` - A middleware that formats the response body
-- `authentication` - The authentication `service` and `strategies` to use for parsing authentication information
-
-### errorHandler
-
-```ts
-import { errorHandler } from '@feathersjs/koa'
-
-app.use(errorHandler())
-```
-
-A middleware that formats errors as a Feathers error and sets the proper status code. Needs to be the first middleware registered in order to catch all other errors.
-
-### authenticate
-
-A middleware that allows to authenticate a user (or other authentication entity) using the [authentication service](./authentication/service.md) setting `ctx.feathers.user`. Not necessary for use with services but can be used in custom middleware.
-
-```ts
-import { authenticate } from '@feathersjs/koa'
-
-// Authenticate other middleware with the JWT strategy
-app.use(authenticate('jwt'))
-
-// Authenticate a non default service
-app.use(
- authenticate({
- service: 'api/v1',
- strategies: ['jwt']
- })
-)
-```
-
-### parseAuthentication
-
-The `parseAuthentication` middleware is registered automatically and will use the strategies of the default [authentication service](./authentication/service.md) to parse headers for authentication information. If you want to additionally parse authentication with a different authentication service this middleware can be registered again with that service configured.
-
-```ts
-import { parseAuthentication } from '@feathersjs/koa'
-
-app.use(
- parseAuthentication({
- service: 'api/v1/authentication',
- strategies: ['jwt', 'local']
- })
-)
-```
-
-### bodyParser
-
-A reference to the [koa-body](https://github.com/koajs/koa-body) module.
-
-### cors
-
-A reference to the [@koa/cors](https://github.com/koajs/cors) module.
-
-### serveStatic
-
-A reference to the [koa-static](https://github.com/koajs/static) module.
diff --git a/docs/api/schema/index.md b/docs/api/schema/index.md
deleted file mode 100644
index ef7898899f..0000000000
--- a/docs/api/schema/index.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-outline: deep
----
-
-# Schema Overview
-
-
-
-[](https://www.npmjs.com/package/@feathersjs/schema)
-[](https://github.com/feathersjs/feathers/blob/dove/packages/schema/CHANGELOG.md)
-
-
-
-`@feathersjs/schema` provides a way to define data models and to dynamically resolve them. It comes in in the following main parts:
-
-- [JSON schema](https://json-schema.org/) using [TypeBox](./typebox.md) or [plain JSON schema](./schema.md) to define a data model with TypeScript types and validations. This allows us to:
- - Automatically get TypeScript types from schema definitions
- - Automatically generate API documentation
- - Create [database adapter](../databases/common.md) models without duplicating the data format
-- [Validators](./validators.md) take a [TypeBox](./typebox.md) or [JSON](./schema.md) schema to validate data to
- - Ensure data is valid and always in the right format
- - Validate query string queries and convert them to the right type
-- [Resolvers](./resolvers.md) - Resolve properties based on a context (usually the [hook context](../hooks.md)). This can be used for many different things like:
- - Adding default and computed values
- - Populating associations
- - Securing queries and e.g. limiting requests to a user
- - Removing protected properties for external requests
- - Ability to add read- and write permissions on the property level
- - Hashing passwords and validating dynamic password policies
diff --git a/docs/api/schema/resolvers.md b/docs/api/schema/resolvers.md
deleted file mode 100644
index 09931a950f..0000000000
--- a/docs/api/schema/resolvers.md
+++ /dev/null
@@ -1,410 +0,0 @@
----
-outline: deep
----
-
-# Resolvers
-
-Resolvers dynamically resolve individual properties based on a context, in a Feathers application usually the [hook context](../hooks.md#hook-context).
-
-This provide a flexible way to do things like:
-
-- Populating associations
-- Returning computed properties
-- Securing queries and e.g. limiting requests for a user
-- Setting context (e.g. logged in user or organization) specific default values
-- Removing protected properties for external requests
-- Add read- and write permissions on the property level
-- Hashing passwords and validating dynamic password policies
-
-You can create a resolver for any data type and resolvers can also be used outside of Feathers.
-
-## Example
-
-Here is an example for a standalone resolver using a custom context:
-
-```ts
-import { resolve } from '@feathersjs/schema'
-
-type User = {
- id: number
- name: string
-}
-
-type Message = {
- id: number
- userId: number
- likes: number
- text: string
- user: User
-}
-
-class MyContext {
- getUser(id) {
- return {
- id,
- name: 'David'
- }
- }
-
- getLikes(messageId) {
- return 10
- }
-}
-
-const messageResolver = resolve({
- likes: (value, message, context) => {
- return context.getLikes(message.id)
- },
- user: (value, message, context) => {
- return context.getUser(message.userId)
- }
-})
-
-const resolvedMessage = await messageResolver.resolve(
- {
- id: 1,
- userId: 23,
- text: 'Hello!'
- },
- new MyContext()
-)
-```
-
-## Property resolvers
-
-Property resolvers are a map of property names to resolver functions. A resolver function is an `async` or regular function that resolves a property on a data object. If it returns `undefined` the property will not be included. It gets passed the following parameters:
-
-- `value` - The current value which can also be `undefined`
-- `data` - The initial data object
-- `context` - The context for this resolver
-- `status` - Additional status information like current property resolver path, the properties that should be resolved or a reference to the initial context.
-
-```ts
-const userResolver = resolve({
- isDrinkingAge: async (value, user, context) => {
- const drinkingAge = await context.getDrinkingAge(user.country)
-
- return user.age >= drinkingAge
- },
- fullName: (value, user, context) => {
- return `${user.firstName} ${user.lastName}`
- }
-})
-```
-
-
-
-Property resolver functions should only return a value and not have side effects. This means a property resolver **should not** do things like create new data or modify the `data` or `context` object. [Hooks](../hooks.md) should be used for side effects.
-
-
-
-## Virtual property resolvers
-
-Virtual resolvers are property resolvers that do not use the `value` but instead always return a value of their own. The parameters are (`(data, context, status)`). The above example can be written like this:
-
-```ts
-import { resolve, virtual } from '@feathersjs/schema'
-
-const userResolver = resolve({
- isDrinkingAge: virtual(async (user, context) => {
- const drinkingAge = await context.getDrinkingAge(user.country)
-
- return user.age >= drinkingAge
- }),
- fullName: virtual((user, context) => {
- return `${user.firstName} ${user.lastName}`
- })
-})
-```
-
-
-
-Virtual resolvers should always be used when combined with a [database adapter](../databases/adapters.md) in order to make valid [$select queries](../databases/querying.md#select). Otherwise queries could try to select fields that do not exist in the database which will throw an error.
-
-
-
-## Options
-
-A resolver takes the following options as the second parameter:
-
-- `converter` (optional): A `(data, context) => {}` or `async (data, context) => {}` function that can return a completely new representation of the data. A `converter` runs before `properties` resolvers.
-
-```ts
-const userResolver = resolve(
- {
- isDrinkingAge: async (value, user, context) => {
- const drinkingAge = await context.getDrinkingAge(user.country)
-
- return user.age >= drinkingAge
- },
- fullName: async (value, user, context) => {
- return `${user.firstName} ${user.lastName}`
- }
- },
- {
- // Convert the raw data into a new structure before running property resolvers
- converter: async (rawData, context) => {
- return {
- firstName: rawData.data.first_name,
- lastName: rawData.data.last_name
- }
- }
- }
-)
-```
-
-## Hooks
-
-In a Feathers application, resolvers are used through [hooks](../hooks.md) to convert service `query`, `data` and `response`. The context for these resolvers is always the [hook context](../hooks.md#hook-context).
-
-### resolveData
-
-Data resolvers use the `hooks.resolveData(...resolvers)` hook and convert the `data` from a `create`, `update` or `patch` [service method](../services.md) or a [custom method](../services.md#custom-methods). This can be used to validate against the schema and e.g. hash a password before storing it in the database or to remove properties the user is not allowed to write. It is possible to pass multiple objects containing resolvers which will run in the order they are passed. Subsequent resolver objects will receive the output from previous resolvers. `schemaHooks.resolveData` can be used as an `around` and `before` hook.
-
-```ts
-import { hooks as schemaHooks, resolve } from '@feathersjs/schema'
-import { Type } from '@feathersjs/typebox'
-import type { Static } from '@feathersjs/typebox'
-import type { HookContext } from '../declarations'
-
-const messageSchema = Type.Object(
- {
- id: Type.Number(),
- text: Type.String(),
- createdAt: Type.Number(),
- updatedAt: Type.Number(),
- userId: Type.Number()
- },
- { $id: 'Message', additionalProperties: false }
-)
-
-type Message = Static
-
-// Pick the data for creating a new message
-const messageDataSchema = Type.Pick(messageSchema, ['text'])
-type MessageData = Static
-
-// Resolver that automatically set `userId` and `createdAt`
-const messageDataResolver = resolve({
- // Associate the currently authenticated user
- userId: (value, message, context) => context.params?.user.id,
- // Return the current date
- createdAt: () => Date.now()
-})
-
-// Resolver that automatically sets `updatedAt`
-const messagePatchResolver = resolve({
- // Return the current date
- updatedAt: () => Date.now()
-})
-
-app.service('users').hooks({
- before: {
- create: [schemaHooks.resolveData(messageDataResolver)],
- patch: [schemaHooks.resolveData(messagePatchResolver)]
- }
-})
-```
-
-Note that as an `all` hook `resolveData` will run for any method that has `data`, including [custom methods](../services.md#custom-methods). If you want to validate custom methods differently the hook should be registered on each service method it is used:
-
-```ts
-app.service('users').hooks({
- before: {
- create: [schemaHooks.resolveData(messageDataResolver)],
- update: [schemaHooks.resolveData(messageDataResolver)],
- patch: [schemaHooks.resolveData(messageDataResolver)],
- customMethod: [schemaHooks.resolveData(customMethodDataResolver)]
- }
-})
-```
-
-### resolveResult
-
-Result resolvers use the `hooks.resolveResult(...resolvers)` hook and resolve the data that is returned by a service call ([context.result](../hooks.md#context-result) in a hook). This can be used to populate associations or add other computed properties etc. It is possible to pass multiple resolvers which will run in the order they are passed, using the previous data.
-
-
-
-`schemaHooks.resolveResult` must be used as an `around` hook. This is to ensure that the database adapters will be able to handle [$select queries](../databases/querying.md#select) properly when using [virtual properties](#virtual-property-resolvers).
-
-
-
-```ts
-import { hooks as schemaHooks, resolve, virtual } from '@feathersjs/schema'
-import { Type } from '@feathersjs/typebox'
-import type { Static } from '@feathersjs/typebox'
-import type { HookContext } from '../declarations'
-
-const userSchema = Type.Object(
- {
- id: Type.Number(),
- email: Type.String(),
- password: Type.String(),
- avatar: Type.Optional(Type.String())
- },
- { $id: 'User', additionalProperties: false }
-)
-type User = Static
-
-const messageSchema = Type.Object(
- {
- id: Type.Number(),
- text: Type.String(),
- createdAt: Type.Number(),
- userId: Type.Number(),
- user: Type.Ref(userSchema)
- },
- { $id: 'Message', additionalProperties: false }
-)
-
-type Message = Static
-
-export const messageResolver = resolve({
- user: virtual(async (message, context) => {
- // Populate the user associated via `userId`
- const user = await context.app.service('users').get(message.userId)
- return user
- })
-})
-
-app.service('messages').hooks({
- around: {
- all: [schemaHooks.resolveResult(messageResolver)]
- }
-})
-```
-
-### resolveExternal
-
-External (or dispatch) resolver use the `hooks.resolveDispatch(...resolvers)` hook to return a safe version of the data that will be sent to external clients. It is possible to pass multiple resolvers which will run in the order they are passed, using the previous data. Returning `undefined` for a property resolver will exclude the property which can be used to hide sensitive data like the user password. This includes nested associations and real-time events. `schemaHooks.resolveExternal` can be used as an `around` or `after` hook.
-
-```ts
-import { hooks as schemaHooks, resolve } from '@feathersjs/schema'
-import { Type } from '@feathersjs/typebox'
-import type { Static } from '@feathersjs/typebox'
-import type { HookContext } from '../declarations'
-
-const userSchema = Type.Object(
- {
- id: Type.Number(),
- email: Type.String(),
- password: Type.String(),
- avatar: Type.Optional(Type.String())
- },
- { $id: 'User', additionalProperties: false }
-)
-type User = Static
-
-export const userExternalResolver = resolve({
- // Always hide the password for external responses
- password: () => undefined
-})
-
-// Dispatch should be resolved on every method
-app.service('users').hooks({
- around: {
- all: [schemaHooks.resolveExternal(userExternalResolver)]
- }
-})
-```
-
-
-
-In order to get the safe data from resolved associations **all services** involved need the `schemaHooks.resolveExternal` hook registered even if it does not need a resolver (`schemaHooks.resolveExternal()`).
-
-`schemaHooks.resolveExternal` should be registered first when used as an `around` hook or last when used as an `after` hook so that it gets the final result data.
-
-
-
-### resolveQuery
-
-Query resolvers use the `hooks.resolveQuery(...resolvers)` hook to modify `params.query`. This is often used to set default values or limit the query so a user can only request data they are allowed to see. It is possible to pass multiple resolvers which will run in the order they are passed, using the previous data. `schemaHooks.resolveQuery` can be used as an `around` or `before` hook.
-
-In this example for a `User` schema we are first checking if a user is available in our request. In the case a user is available we are returning the user's ID. Otherwise we return whatever value was provided for `id`.
-
-`context.params.user` would only be set if the request contains a user. This is usually the case when an external request is made. In the case of an internal request we may not have a specific user we are dealing with, and we will just return `value`.
-
-If we were to receive an internal request, such as `app.service('users').get(123)`, `context.params.user` would be `undefined` and we would just return the `value` which is `123`.
-
-```ts
-import { hooks as schemaHooks, resolve } from '@feathersjs/schema'
-import { Type } from '@feathersjs/typebox'
-import type { Static } from '@feathersjs/typebox'
-import type { HookContext } from '../declarations'
-
-const userSchema = Type.Object(
- {
- id: Type.Number(),
- email: Type.String(),
- password: Type.String(),
- avatar: Type.Optional(Type.String())
- },
- { $id: 'User', additionalProperties: false }
-)
-type User = Static
-
-export const userQueryProperties = Type.Pick(userSchema, ['id', 'email'])
-export const userQuerySchema = querySyntax(userQueryProperties)
-export type UserQuery = Static
-
-export const userQueryResolver = resolve({
- // If there is an authenticated user, they can only see their own data
- id: (value, query, context) => {
- if (context.params.user) {
- return context.params.user.id
- }
-
- return value
- }
-})
-
-// The query can be resolved on every method
-app.service('users').hooks({
- before: {
- all: [resolveQuery(userQueryResolver)]
- }
-})
-```
-
-For a more complicated example. We will make a separate `queryResolver`, called `companyFilterQueryResolver`, that will act as a ownership filter. We will have a `Company` service that is owned by a `User`. We will assume our app has two registered users and two companies. Each user owning one company. For simplicity, `User1` owns `Company1`, and `User2` owns `Company2`
-
-We want to make sure only the user that owns the company can make any requests related to it. Our schema contains a `ownerUser` field, this is the owner of the company. When a request is made to the company schema, we are effectivly filtering our search for companies to be only those whose `ownerUser` matches the requesting user's id.
-
-So if a `GET /company` request is made by `User1`, our resolver will convert our query to `GET /company?name=Company1&ownerUser={User1.id}`. The result will only return an array of 1 company to `User1`
-
-Similarily, if a patch request was made by `User1` to modify `Company2`. A `404` would occur, as resulting query would search the database for a `Company2` that is owned by `User1` which does not exist.
-
-```ts
-// Main data model schema
-export const companySchema = Type.Object(
- {
- id: Type.String({ format: 'uuid' }),
- name: Type.String(),
- ownerUser: Type.Ref(userSchema)
- },
- { $id: 'Company', additionalProperties: false }
-)
-
-// Schema for allowed query properties
-export const companyQueryProperties = Type.Pick(companySchema, ['id'])
-export const companyQuerySchema = Type.Intersect(
- [
- querySyntax(companyQueryProperties),
- // Add additional query properties here
- Type.Object({}, { additionalProperties: false })
- ],
- { additionalProperties: false }
-)
-export type CompanyQuery = Static
-export const companyQueryValidator = getValidator(companyQuerySchema, queryValidator)
-export const companyQueryResolver = resolve({})
-
-export const companyFilterQueryResolver = resolve({
- ownerUser: (value, obj, context) => {
- if (context.params.user) {
- return context.params.user.id
- }
- return value
- }
-})
-```
diff --git a/docs/api/schema/schema.md b/docs/api/schema/schema.md
deleted file mode 100644
index 600f335d9f..0000000000
--- a/docs/api/schema/schema.md
+++ /dev/null
@@ -1,309 +0,0 @@
----
-outline: deep
----
-
-# JSON Schema
-
-As an alternative to [TypeBox](./typebox.md), `@feathersjs/schema` also provides the ability to define plain JSON schemas as objects. It uses [json-schema-to-ts](https://github.com/thomasaribart/json-schema-to-ts) to turn those schemas into TypeScript types.
-
-
-
-You can find an introduction in the [JSON schema official getting started guide](https://json-schema.org/learn/getting-started-step-by-step) and a lot of type-specific JSON Schema examples in the [json-schema-to-ts docs](https://github.com/ThomasAribart/json-schema-to-ts).
-
-
-
-## Creating Schemas
-
-### Definitions
-
-If you are not familiar with JSON schema have a look at the [official getting started guide](https://json-schema.org/learn/getting-started-step-by-step). Here is an example for a possible user schema:
-
-```ts
-import type { FromSchema } from '@feathersjs/schema'
-
-export const userSchema = {
- $id: 'User',
- type: 'object',
- additionalProperties: false,
- required: ['email', 'password'],
- properties: {
- id: { type: 'number' },
- email: { type: 'string' },
- password: { type: 'string' }
- }
-} as const
-
-export type User = FromSchema
-```
-
-
-
-### Generating Correct Types
-
-For correct TypeScript types, the definition always **needs to be declared `as const`**. This first example will not produce correct types because the definition is not immediately followed by `as const`:
-
-```ts
-// Will not produce correct types.
-const definition = { type: 'object' } // `as const` is missing, here.
-```
-
-This next example does declare `as const` after the `definition`, so the types will be generated correctly:
-
-```ts
-// Produces correct types.
-const definition = { type: 'object' } as const
-```
-
-
-
-## Extending Schemas
-
-To create a new schema that extends an existing one, combine the schema properties (and `schema.required`, if used) with the new properties:
-
-```ts
-import type { FromSchema } from '@feathersjs/schema'
-
-export const userDataSchema = {
- $id: 'User',
- type: 'object',
- additionalProperties: false,
- required: ['email', 'password'],
- properties: {
- email: { type: 'string' },
- password: { type: 'string' }
- }
-} as const
-
-export type UserData = FromSchema
-
-export const userSchema = {
- $id: 'UserResult',
- type: 'object',
- additionalProperties: false,
- required: [...userDataSchema.required, 'id'],
- properties: {
- ...userDataSchema.properties,
- id: { type: 'number' }
- }
-} as const
-
-export type User = FromSchema
-```
-
-## References
-
-Associated schemas can be initialized via the `$ref` keyword referencing the `$id` set during schema definition.
-
-
-
-In TypeScript, the referenced type needs to be added explicitly.
-
-
-
-```ts
-import type { FromSchema } from '@feathersjs/schema'
-
-export const userSchema = {
- $id: 'User',
- type: 'object',
- additionalProperties: false,
- required: ['email', 'password'],
- properties: {
- id: { type: 'number' },
- email: { type: 'string' },
- password: { type: 'string' }
- }
-} as const
-
-export type User = FromSchema
-
-export const messageSchema = {
- $id: 'Message',
- type: 'object',
- additionalProperties: false,
- required: ['text'],
- properties: {
- text: { type: 'string' },
- user: { $ref: 'User' }
- }
-} as const
-
-export type Message = FromSchema<
- typeof messageSchema,
- {
- // All schema references need to be passed to get the correct type
- references: [typeof userSchema]
- }
->
-```
-
-## Query Helpers
-
-Schema ships with a few helpers to automatically create schemas that comply with the [Feathers query syntax](../databases/querying.md) (like `$gt`, `$ne` etc.):
-
-### querySyntax
-
-`querySyntax(schema.properties, extensions)` initializes all properties the additional query syntax properties `$limit`, `$skip`, `$select` and `$sort`. `$select` and `$sort` will be typed so they only allow existing schema properties.
-
-```ts
-import { querySyntax } from '@feathersjs/schema'
-import type { FromSchema } from '@feathersjs/schema'
-
-export const userQuerySchema = {
- $id: 'UserQuery',
- type: 'object',
- additionalProperties: false,
- properties: {
- ...querySyntax(userSchema.properties)
- }
-} as const
-
-export type UserQuery = FromSchema
-
-const userQuery: UserQuery = {
- $limit: 10,
- $select: ['email', 'id'],
- $sort: {
- email: 1
- }
-}
-```
-
-Additional special query properties [that are not already included in the query syntax](../databases/querying.md) like `$ilike` can be added like this:
-
-```ts
-import { querySyntax } from '@feathersjs/schema'
-import type { FromSchema } from '@feathersjs/schema'
-
-export const userQuerySchema = {
- $id: 'UserQuery',
- type: 'object',
- additionalProperties: false,
- properties: {
- ...querySyntax(userSchema.properties, {
- email: {
- $ilike: {
- type: 'string'
- }
- }
- } as const)
- }
-} as const
-
-export type UserQuery = FromSchema
-
-const userQuery: UserQuery = {
- $limit: 10,
- $select: ['email', 'id'],
- $sort: {
- email: 1
- },
- email: {
- $ilike: '%@example.com'
- }
-}
-```
-
-### queryProperty
-
-`queryProperty` helper takes a definition for a single property and returns a schema that allows the default query operators. This helper supports the operators listed, below. Learn what each one means in the [common query operator](/api/databases/querying#operators) documentation.
-
-- `$gt`
-- `$gte`
-- `$lt`
-- `$lte`
-- `$ne`
-- `$in`
-- `$nin`
-
-The `name` property in the example, below, shows how `queryProperty` wraps a single property's definition.
-
-```ts
-import { queryProperty } from '@feathersjs/schema'
-
-export const userQuerySchema = {
- $id: 'UserQuery',
- type: 'object',
- additionalProperties: false,
- properties: {
- name: queryProperty({ type: 'string' })
- }
-} as const
-```
-
-With the `queryProperty` utility in place, the schema will allow querying on `name` using any of the above-listed operators. With it in place, the query in the following example will not throw an error:
-
-```ts
-const query = { name: { $in: ['Marco', 'Polo'] } }
-
-app.service('users').find({ query })
-```
-
-You can learn how it works, [here](https://github.com/feathersjs/feathers/blob/dove/packages/schema/src/query.ts#L29-L55).
-
-### queryProperties
-
-`queryProperties(schema.properties)` takes the all properties of a schema and converts them into query schema properties (using `queryProperty`)
-
-## Validators
-
-The following functions are available to get a [validator function](./validators.md) from a JSON schema definition.
-
-
-
-See the [validators](./validators.md) chapter for more information on validators and validator functions.
-
-
-
-### getDataValidator
-
-`getDataValidator(definition, validator)` returns validators for the data of `create`, `update` and `patch` service methods. You can either pass a single definition in which case all properties of the `patch` schema will be optional or individual validators for `create`, `update` and `patch`.
-
-```ts
-import { getDataValidator, Ajv } from '@feathersjs/schema'
-import type { FromSchema } from '@feathersjs/schema'
-
-const userDataSchema = {
- $id: 'User',
- type: 'object',
- additionalProperties: false,
- required: ['email', 'password'],
- properties: {
- email: { type: 'string' },
- password: { type: 'string' }
- }
-} as const
-
-type UserData = FromSchema
-
-const dataValidator = new Ajv()
-
-const dataValidator = getDataValidator(userDataSchema, dataValidator)
-```
-
-### getValidator
-
-`getValidator(definition, validator)` returns a single validator function for a JSON schema.
-
-```ts
-import { querySyntax, Ajv, getValidator } from '@feathersjs/schema'
-import type { FromSchema } from '@feathersjs/schema'
-
-export const userQuerySchema = {
- $id: 'UserQuery',
- type: 'object',
- additionalProperties: false,
- properties: {
- ...querySyntax(userSchema.properties)
- }
-} as const
-
-export type UserQuery = FromSchema
-
-// Since queries can be only strings we can to coerce them
-const queryValidator = new Ajv({
- coerceTypes: true
-})
-
-const messageValidator = getValidator(userQuerySchema, queryValidator)
-```
diff --git a/docs/api/schema/typebox.md b/docs/api/schema/typebox.md
deleted file mode 100644
index 1396a5e3de..0000000000
--- a/docs/api/schema/typebox.md
+++ /dev/null
@@ -1,1724 +0,0 @@
----
-outline: deep
----
-
-# TypeBox
-
-`@feathersjs/typebox` allows to define JSON schemas with [TypeBox](https://github.com/sinclairzx81/typebox), a JSON schema type builder with static type resolution for TypeScript.
-
-[[toc]]
-
-
-
-For additional information also see the [TypeBox documentation](https://github.com/sinclairzx81/typebox/blob/master/readme.md#contents).
-
-
-
-## Usage
-
-The module exports all of TypeBox functionality with additional support for [query schemas](#query-schemas) and [validators](#validators). The following is an example for defining the message schema [from the guide](../../guides/basics/schemas.md#handling-messages) using TypeBox:
-
-```ts
-import { Type } from '@feathersjs/typebox'
-import type { Static } from '@feathersjs/typebox'
-
-const messageSchema = Type.Object(
- {
- id: Type.Number(),
- text: Type.String(),
- createdAt: Type.Number(),
- userId: Type.Number()
- },
- { $id: 'Message', additionalProperties: false }
-)
-
-type Message = Static
-```
-
-## Result and data schemas
-
-A good approach to define schemas in a Feathers application is to create the main schema first. This is usually the properties that are in the database and things like associated entries. Then we can get the data schema by e.g. picking the properties a client submits using `Type.Pick`
-
-```ts
-import { Type } from '@feathersjs/typebox'
-import type { Static } from '@feathersjs/typebox'
-
-const userSchema = Type.Object(
- {
- id: Type.Number(),
- email: Type.String(),
- password: Type.String(),
- avatar: Type.Optional(Type.String())
- },
- { $id: 'User', additionalProperties: false }
-)
-type User = Static
-
-// Pick the data for creating a new user
-const userDataSchema = Type.Pick(userSchema, ['email', 'password'])
-
-type UserData = Static
-
-const messageSchema = Type.Object(
- {
- id: Type.Number(),
- text: Type.String(),
- createdAt: Type.Number(),
- userId: Type.Number(),
- // Reference the user
- user: Type.Ref(userSchema)
- },
- { $id: 'Message', additionalProperties: false }
-)
-
-type Message = Static
-
-// Pick the data for creating a new message
-const messageDataSchema = Type.Pick(messageSchema, ['text'])
-
-type MessageData = Static
-```
-
-## Query schemas
-
-### querySyntax
-
-`querySyntax(definition, extensions, options)` returns a schema to validate the [Feathers query syntax](../databases/querying.md) for all properties in a TypeBox definition.
-
-```ts
-import { querySyntax } from '@feathersjs/typebox'
-
-// Schema for allowed query properties
-const messageQueryProperties = Type.Pick(messageSchema, ['id', 'text', 'createdAt', 'userId'], {
- additionalProperties: false
-})
-const messageQuerySchema = querySyntax(messageQueryProperties)
-
-type MessageQuery = Static
-```
-
-Additional special query properties [that are not already included in the query syntax](../databases/querying.md) like `$ilike` can be added like this:
-
-```ts
-import { querySyntax } from '@feathersjs/typebox'
-
-// Schema for allowed query properties
-const messageQueryProperties = Type.Pick(messageSchema, ['id', 'text', 'createdAt', 'userId'], {
- additionalProperties: false
-})
-const messageQuerySchema = Type.Intersect(
- [
- // This will additionally allow querying for `{ name: { $ilike: 'Dav%' } }`
- querySyntax(messageQueryProperties, {
- name: {
- $ilike: Type.String()
- }
- }),
- // Add additional query properties here
- Type.Object({})
- ],
- { additionalProperties: false }
-)
-```
-
-To allow additional query properties outside of the query syntax use the intersection type:
-
-```ts
-import { querySyntax } from '@feathersjs/typebox'
-
-// Schema for allowed query properties
-const messageQueryProperties = Type.Pick(messageSchema, ['id', 'text', 'createdAt', 'userId'], {
- additionalProperties: false
-})
-const messageQuerySchema = Type.Intersect(
- [
- querySyntax(messageQueryProperties),
- Type.Object({
- isActive: Type.Boolean()
- })
- ],
- { additionalProperties: false }
-)
-
-type MessageQuery = Static
-```
-
-### queryProperty
-
-`queryProperty(definition)` returns a schema for the [Feathers query syntax](../databases/querying.md) for a single property.
-
-## Validators
-
-The following functions are available to get a [validator function](./validators.md) from a TypeBox schema.
-
-
-
-See the [validators](./validators.md) chapter for more information on validators and validator functions.
-
-
-
-### getDataValidator
-
-`getDataValidator(definition, validator)` returns validators for the data of `create`, `update` and `patch` service methods. You can either pass a single definition in which case all properties of the `patch` schema will be optional or individual validators for `create`, `update` and `patch`.
-
-```ts
-import { Ajv } from '@feathersjs/schema'
-import { Type, getDataValidator } from '@feathersjs/typebox'
-import type { Static } from '@feathersjs/typebox'
-
-const userSchema = Type.Object(
- {
- id: Type.Number(),
- email: Type.String(),
- password: Type.String(),
- avatar: Type.Optional(Type.String())
- },
- { $id: 'User', additionalProperties: false }
-)
-type User = Static
-
-// Pick the data for creating a new user
-const userDataSchema = Type.Pick(userSchema, ['email', 'password'])
-
-const dataValidator = new Ajv()
-
-const userDataValidator = getDataValidator(userDataSchema, dataValidator)
-
-// For more granular control
-const userDataValidator = getDataValidator(
- {
- create: userDataSchema,
- update: userDataSchema,
- patch: Type.Partial(userDataSchema)
- },
- dataValidator
-)
-```
-
-### getValidator
-
-`getValidator(definition, validator)` returns a single validator function for a TypeBox schema.
-
-```ts
-import { Ajv } from '@feathersjs/schema'
-import { Type, getValidator } from '@feathersjs/typebox'
-
-// Schema for allowed query properties
-const messageQueryProperties = Type.Pick(messageSchema, ['id', 'text', 'createdAt', 'userId'], {
- additionalProperties: false
-})
-const messageQuerySchema = querySyntax(messageQueryProperties)
-type MessageQuery = Static
-
-// Since queries can be only strings we can to coerce them
-const queryValidator = new Ajv({
- coerceTypes: true
-})
-
-const messageQueryValidator = getValidator(messageQuerySchema, queryValidator)
-```
-
-## Validating Dates
-
-When validating dates sent from the client, the most spec-compliant solution is to use the [ISO8601 format](https://www.rfc-editor.org/rfc/rfc3339#section-5.6). For example, SQLite date values are strings in the [ISO8601 format](https://www.rfc-editor.org/rfc/rfc3339#section-5.6), which is `YYYY-MM-DDTHH:MM:SS.SSS`. The character between the date and time formats is generally specified as the letter `T`, as in `2016-01-01T10:20:05.123`. For date values, you implement this spec with `Type.String` and not `Type.Date`.
-
-When using AJV you can validate this format with the `ajv-formats` package, which the Feathers CLI installs for you. Using it with `@feathersjs/typebox` looks like this:
-
-```ts
-const userSchema = Type.Object(
- {
- createdAt: Type.String({ format: 'date-time' })
- },
- { $id: 'User', additionalProperties: false }
-)
-```
-
-See the `@feathersjs/mongodb` docs for more information on [validating dates with MongoDB](/api/databases/mongodb#dates).
-
-## Types
-
-TypeBox provides a set of functions that allow you to compose JSON Schema similar to how you would compose static types with TypeScript. Each function creates a JSON schema fragment which can compose into more complex types. The schemas produced by TypeBox can be passed directly to any JSON Schema-compliant validator, or used to reflect runtime metadata for a type.
-
-### Standard
-
-These are the standard TypeBox types. Each section shows equivalent code in three formats:
-
-- TypeBox
-- TypeScript type
-- JSON Schema
-
-The following information comes from the TypeBox documentation. It has been formatted to make it easier to copy/paste examples.
-
-#### Primitive Types
-
-Primitive type utilities create schemas for individual values.
-
-##### Any
-
-Creates a schema that will always pass validation. It's the equivalent of TypeScript's [any](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#any) type.
-
-```js
-const T = Type.Any()
-```
-
-```js
-type T = any
-```
-
-```js
-const T = {}
-```
-
-##### Unknown
-
-Similar to [any](#any), it creates a schema that will always pass validation. It's the equivalent of TypeScript's [unknown](https://www.typescriptlang.org/docs/handbook/2/functions.html#unknown) type.
-
-```js
-const T = Type.Unknown()
-```
-
-```js
-type T = unknown
-```
-
-```js
-const T = {}
-```
-
-##### String
-
-Creates a string schema and type. `Type.String` will generally be used for validating dates sent from clients, as well. See [Validating Dates](#validating-dates).
-
-```js
-const T = Type.String()
-```
-
-```js
-type T = string
-```
-
-```js
-const T = {
- type: 'string'
-}
-```
-
-###### String Formats Bundled
-
-Strings are the most versatile, serializable type which can be transmitted from clients. Because of their versatility, several custom string formatters are supported, by default, in Feathers CLI-generated applications. [Additional formats](#additional-formats) can be manually enabled.
-
-
-
-###### `date-time`
-
-```ts
-Type.String({ format: 'date-time' })
-```
-
-Validates against the [date-time](https://www.rfc-editor.org/rfc/rfc3339#section-5.6) described in RFC3339/ISO8601, which is the following format:
-
-```
-YYYY-MM-DDTHH:MM:SS.SSS+HH:MM
-2022-11-30T11:21:44.000-08:00
-```
-
-The sections of this format are described as follows:
-
-- **full-date**: `YYYY-MM-DD`
-- **partial-time**: `HH:MM:SS.SSS` (where `.SSS` represents optional milliseconds)
-- **time-offset**: `+HH:MM` (where `+` can be `-` and which value represents UTC offset or "time zone") **required**
-
-
-
-###### `time`
-
-```ts
-Type.String({ format: 'time' })
-```
-
-Validates against the following format:
-
-```
-HH:MM:SS.SSS+HH:MM
-11:21:44.000-08:00
-```
-
-The sections of this format are described as follows:
-
-- **partial-time**: `HH:MM:SS.SSS` (where `.SSS` represents optional milliseconds)
-- **time-offset**: `+HH:MM` (where `+` can be `-` and which value represents UTC offset or "time zone") **optional**
-
-
-
-###### `date`
-
-```ts
-Type.String({ format: 'date' })
-```
-
-Validates against the [full date](https://www.rfc-editor.org/rfc/rfc3339#section-5.6) described in RFC3339/ISO8601, which is the following format:
-
-```
-YYYY-MM-DD
-2022-11-30
-```
-
-
-
-###### `email`
-
-```ts
-Type.String({ format: 'email' })
-```
-
-Validates email addresses against the format specified by [RFC 1034](https://rumkin.com/software/email/rules/).
-
-
-
-###### `hostname`
-
-```ts
-Type.String({ format: 'hostname' })
-```
-
-Validates hostnames against the format specified by [RFC 1034](https://rumkin.com/software/email/rules/).
-
-
-
-###### `ipv4`
-
-```ts
-Type.String({ format: 'ipv4' })
-```
-
-Validates an IPV4-formatted IP Address.
-
-```
-0.0.0.0 to 255.255.255.255
-```
-
-
-
-###### `ipv6`
-
-```ts
-Type.String({ format: 'ipv6' })
-```
-
-Validates an IPV6-formatted IP Address.
-
-
-
-###### `uri`
-
-```ts
-Type.String({ format: 'uri' })
-```
-
-Validates a full URI.
-
-
-
-###### `uri-reference`
-
-```ts
-Type.String({ format: 'uri-reference' })
-```
-
-
-
-###### `uuid`
-
-```ts
-Type.String({ format: 'uuid' })
-```
-
-Validates a Universally Unique Identifier according to [rfc4122](https://www.rfc-editor.org/rfc/rfc4122).
-
-
-
-###### `uri-template`
-
-```ts
-Type.String({ format: 'uri-template' })
-```
-
-Validates a URI Template according to [rfc6570](https://www.rfc-editor.org/rfc/rfc6570).
-
-
-
-###### `json-pointer`
-
-```ts
-Type.String({ format: 'json-pointer' })
-```
-
-Validates a JSON Pointer, according to [RFC6901](https://www.rfc-editor.org/rfc/rfc6901).
-
-
-
-###### `relative-json-pointer`
-
-```ts
-Type.String({ format: 'relative-json-pointer' })
-```
-
-Validates a Relative JSON Pointer, according to [this draft](https://datatracker.ietf.org/doc/html/draft-luff-relative-json-pointer-00).
-
-
-
-###### `regex`
-
-```ts
-Type.String({ format: 'regex' })
-```
-
-Tests whether a string is a valid regular expression by passing it to RegExp constructor.
-
-
-
-###### Additional Formats
-
-The `ajv-formats` package bundled with CLI-generated apps includes additional utilities, listed below, which can be manually enabled by modifying the array of formats in `src/schema/validators.ts`. The additional formats are highlighted in this code example:
-
-```ts{16-25}
-const formats: FormatsPluginOptions = [
- 'date-time',
- 'time',
- 'date',
- 'email',
- 'hostname',
- 'ipv4',
- 'ipv6',
- 'uri',
- 'uri-reference',
- 'uuid',
- 'uri-template',
- 'json-pointer',
- 'relative-json-pointer',
- 'regex',
- 'iso-time',
- 'iso-date-time',
- 'duration',
- 'byte',
- 'int32',
- 'int64',
- 'float',
- 'double',
- 'password',
- 'binary',
-]
-```
-
-Be aware that there is also an [ajv-formats-draft2019 package](https://github.com/luzlab/ajv-formats-draft2019) which can be manually installed. The package allows use of several international formats for urls, domains, and emails. The formats are included in [JSON Schema draft-07](https://json-schema.org/draft-07/json-schema-release-notes.html).
-
-
-
-###### iso-time
-
-Must be manually enabled. See [Additional Formats](#additional-formats).
-
-```ts
-Type.String({ format: 'iso-time' })
-```
-
-Validates against UTC-based time format:
-
-```
-HH:MM:SS.SSSZ
-11:21:44.000Z
-
-HH:MM:SSZ
-11:21:44Z
-```
-
-The sections of this format are described as follows:
-
-- **partial-time**: `HH:MM:SS.SSS` (where `.SSS` represents optional milliseconds)
-- **Z**: `Z` (where Z represents UTC time zone, or time offset 00:00)
-
-
-
-###### `iso-date-time`
-
-```ts
-Type.String({ format: 'iso-date-time' })
-```
-
-Validates against the [date-time](https://www.rfc-editor.org/rfc/rfc3339#section-5.6) described in RFC3339/ISO8601, which is the following format:
-
-```
-YYYY-MM-DDTHH:MM:SS.SSSZ
-2022-11-30T11:21:44.000Z
-
-YYYY-MM-DDTHH:MM:SSZ
-2022-11-30T11:21:44Z
-```
-
-The sections of this format are described as follows:
-
-- **full-date**: `YYYY-MM-DD`
-- **partial-time**: `HH:MM:SS.SSS` (where `.SSS` represents optional milliseconds)
-- **Z**: `Z` (where Z represents UTC time zone, or time offset 00:00)
-
-
-
-###### Duration
-
-Must be manually enabled. See [Additional Formats](#additional-formats).
-
-```ts
-Type.String({ format: 'duration' })
-```
-
-A duration string representing a period of time, as specified in [rfc3339 appendix-A](https://www.rfc-editor.org/rfc/rfc3339#appendix-A) undder the "Durations" heading. Here's an excerpt of the spec.
-
-```
-Durations:
-
-dur-second = 1*DIGIT "S"
-dur-minute = 1*DIGIT "M" [dur-second]
-dur-hour = 1*DIGIT "H" [dur-minute]
-dur-time = "T" (dur-hour / dur-minute / dur-second)
-dur-day = 1*DIGIT "D"
-dur-week = 1*DIGIT "W"
-dur-month = 1*DIGIT "M" [dur-day]
-dur-year = 1*DIGIT "Y" [dur-month]
-dur-date = (dur-day / dur-month / dur-year) [dur-time]
-
-duration = "P" (dur-date / dur-time / dur-week)
-```
-
-
-
-###### Byte
-
-Must be manually enabled. See [Additional Formats](#additional-formats).
-
-```ts
-Type.String({ format: 'byte' })
-```
-
-Validates base64-encoded data according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types).
-
-
-
-###### int32
-
-Must be manually enabled. See [Additional Formats](#additional-formats).
-
-```ts
-Type.String({ format: 'int32' })
-```
-
-Validates signed (+/-), 32-bit integers according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types).
-
-
-
-###### int64
-
-Must be manually enabled. See [Additional Formats](#additional-formats).
-
-```ts
-Type.String({ format: 'int64' })
-```
-
-Validates signed (+/-), 64-bit integers according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types).
-
-
-
-###### float
-
-Must be manually enabled. See [Additional Formats](#additional-formats).
-
-```ts
-Type.String({ format: 'float' })
-```
-
-Validates floats according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types).
-
-
-
-###### double
-
-Must be manually enabled. See [Additional Formats](#additional-formats).
-
-```ts
-Type.String({ format: 'double' })
-```
-
-Validates doubles according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types).
-
-
-
-###### password
-
-Must be manually enabled. See [Additional Formats](#additional-formats).
-
-```ts
-Type.String({ format: 'password' })
-```
-
-Validates passwords according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types).
-
-
-
-###### binary
-
-Must be manually enabled. See [Additional Formats](#additional-formats).
-
-```ts
-Type.String({ format: 'binary' })
-```
-
-Validates a binary string according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types).
-
-
-
-##### Number
-
-Creates a number schema and type.
-
-```js
-const T = Type.Number()
-```
-
-```js
-type T = number
-```
-
-```js
-const T = {
- type: 'number'
-}
-```
-
-##### Integer
-
-Creates a number schema and type. The number has to be an integer (not a float).
-
-```js
-const T = Type.Integer()
-```
-
-```js
-type T = number
-```
-
-```js
-const T = {
- type: 'integer'
-}
-```
-
-##### Boolean
-
-Creates a boolean schema and type.
-
-```js
-const T = Type.Boolean()
-```
-
-```js
-type T = boolean
-```
-
-```js
-const T = {
- type: 'boolean'
-}
-```
-
-##### Null
-
-Creates a schema and type only allowing `null`.
-
-```js
-const T = Type.Null()
-```
-
-```js
-type T = null
-```
-
-```js
-const T = {
- type: 'null'
-}
-```
-
-##### Literal
-
-Creates a schema and type that must match the provided value.
-
-```js
-const T = Type.Literal(42)
-```
-
-```js
-type T = 42
-```
-
-```js
-const T = {
- const: 42,
- type: 'number'
-}
-```
-
-#### Object & Array Types
-
-These utilities creates schemas and types for objects and arrays.
-
-##### RegEx
-
-Creates a string schema that validates against a regular expression object. The TypeScript type will be `string`.
-
-```js
-const T = Type.RegEx(/foo/)
-```
-
-```js
-type T = string
-```
-
-```js
-const T = {
- type: 'string',
- pattern: 'foo'
-}
-```
-
-##### Array
-
-Creates an array of the provided type. You can use any of the utility types to specify what can go in the array, even complex types using [union](#union) and [intersect](#intersect).
-
-```js
-const T = Type.Array(Type.Number())
-```
-
-```js
-type T = number[]
-```
-
-```js
-const T = {
- type: 'array',
- items: {
- type: 'number'
- }
-}
-```
-
-##### Object
-
-Creates an object schema where all properties are required by default. You can use the [Type.Optional](#optional) utility to mark a key as optional.
-
-```js
-const T = Type.Object({
- x: Type.Number(),
- y: Type.Number()
-})
-```
-
-```js
-type T = {
- x: number,
- y: number
-}
-```
-
-```js
-const T = {
- type: 'object',
- properties: {
- x: {
- type: 'number'
- },
- y: {
- type: 'number'
- }
- },
- required: ['x', 'y']
-}
-```
-
-##### Tuple
-
-Creates an array type with exactly two items matching the specified types.
-
-```js
-const T = Type.Tuple([Type.Number(), Type.Number()])
-```
-
-```js
-type T = [number, number]
-```
-
-```js
-const T = {
- type: 'array',
- items: [{ type: 'number' }, { type: 'number' }],
- additionalItems: false,
- minItems: 2,
- maxItems: 2
-}
-```
-
-##### StringEnum
-
-`StringEnum` is a standalone utility to for specifying an array of allowed string values on a property. It is directly exported from `@feathersjs/typebox`:
-
-```js
-// import the module, first
-import { StringEnum } from '@feathersjs/typebox'
-
-const T = StringEnum(['crow', 'dove', 'eagle'])
-// Add additional options
-const T = StringEnum(['crow', 'dove', 'eagle'], {
- default: 'crow'
-})
-```
-
-To obtain the TypeScript type, use the `Static` utility:
-
-```js
-import { Static } from '@feathersjs/typebox'
-
-type T = Static
-```
-
-```js
-const T = {
- enum: ['crow', 'dove', 'eagle']
-}
-```
-
-##### Enum
-
-
-
-For string values, use [StringEnum](#stringenum).
-
-
-
-```js
-enum Foo {
- A,
- B,
-}
-const T = Type.Enum(Foo)
-```
-
-```js
-enum Foo {
- A,
- B,
-}
-type T = Foo
-```
-
-```js
-const T = {
- anyOf: [
- { type: 'number', const: 0 },
- { type: 'number', const: 1 }
- ]
-}
-```
-
-#### Utility Types
-
-The utility types create types which are derived from other types.
-
-##### KeyOf
-
-Creates a schema for a string that can be any of the keys of a provided `Type.Object`. It's similar to TypeScript's [KeyOf](https://www.typescriptlang.org/docs/handbook/2/keyof-types.html#handbook-content) operator.
-
-```js
-const T = Type.KeyOf(
- Type.Object({
- x: Type.Number(),
- y: Type.Number()
- })
-)
-```
-
-```js
-type T = keyof {
- x: number,
- y: number,
-}
-```
-
-```js
-const T = {
- anyOf: [
- { type: 'string', const: 'x' },
- { type: 'string', const: 'y' }
- ]
-}
-```
-
-##### Union
-
-Creates a type which can be one of the types in the provided array. It's the equivalent to using `|` to form a TypeScript [Union](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes-func.html#unions).
-
-```js
-const T = Type.Union([Type.String(), Type.Number()])
-```
-
-```js
-type T = string | number
-```
-
-```js
-const T = {
- anyOf: [{ type: 'string' }, { type: 'number' }]
-}
-```
-
-##### Intersect
-
-Creates an object type by combining two or more other object types.
-
-```js
-const T = Type.Intersect([
- Type.Object({
- x: Type.Number()
- }),
- Type.Object({
- y: Type.Number()
- })
-])
-```
-
-```js
-type T = { x: number } & { y: number }
-```
-
-```js
-const T = {
- type: 'object',
- properties: {
- x: { type: 'number' },
- y: { type: 'number' }
- },
- required: ['x', 'y']
-}
-```
-
-##### Never
-
-Creates a type that will never validate if the attribute is present. This is useful if you are allowing [additionalProperties](#additionalproperties) but need to prevent using specific keys.
-
-```js
-const T = Type.Never()
-```
-
-```js
-type T = never
-```
-
-```js
-const T = {
- allOf: [
- { type: 'boolean', const: false },
- { type: 'boolean', const: true }
- ]
-}
-```
-
-##### Record
-
-Creates the JSON Schema equivalent of TypeScript's [Record](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type) utility type.
-
-```js
-const T = Type.Record(Type.String(), Type.Number())
-```
-
-```js
-type T = Record
-```
-
-```js
-const T = {
- type: 'object',
- patternProperties: {
- '^.*$': {
- type: 'number'
- }
- }
-}
-```
-
-##### Partial
-
-Creates a schema for an object where all keys are optional. It's the opposite of [Required](#required), and the JSON Schema equivalent of TypeScript's [Partial](https://www.typescriptlang.org/docs/handbook/utility-types.html#partialtype) utility type.
-
-```js
-const T = Type.Partial(
- Type.Object({
- x: Type.Number(),
- y: Type.Number()
- })
-)
-```
-
-```js
-type T = Partial<{
- x: number,
- y: number
-}>
-```
-
-```js
-const T = {
- type: 'object',
- properties: {
- x: { type: 'number' },
- y: { type: 'number' }
- }
-}
-```
-
-##### Required
-
-Creates a schema for an object where all keys are required, even ignoring if keys are marked with `Type.Optional`. It's the opposite of [Partial](#partial), and the JSON Schema equivalent of TypeScript's [Required](https://www.typescriptlang.org/docs/handbook/utility-types.html#requiredtype) utility type.
-
-```js
-const T = Type.Required(
- Type.Object({
- x: Type.Optional(Type.Number()),
- y: Type.Optional(Type.Number())
- })
-)
-```
-
-```js
-type T = Required<{
- x?: number,
- y?: number
-}>
-```
-
-```js
-const T = {
- type: 'object',
- properties: {
- x: { type: 'number' },
- y: { type: 'number' }
- },
- required: ['x', 'y']
-}
-```
-
-##### Pick
-
-Forms a new object containing only the array of keys provided in the second argument. It's the JSON Schema equivalent of TypeScript's [Pick](https://www.typescriptlang.org/docs/handbook/utility-types.html#picktype-keys) utility type.
-
-```js
-const T = Type.Pick(
- Type.Object({
- x: Type.Number(),
- y: Type.Number()
- }),
- ['x']
-)
-```
-
-```js
-type T = Pick<
- {
- x: number,
- y: number
- },
- 'x'
->
-```
-
-```js
-const T = {
- type: 'object',
- properties: {
- x: { type: 'number' }
- },
- required: ['x']
-}
-```
-
-##### Omit
-
-Forms a new object containing all keys except those provided in the second argument. It's the JSON Schema equivalent of TypeScript's [Omit](https://www.typescriptlang.org/docs/handbook/utility-types.html#omittype-keys) utility type.
-
-```js
-const T = Type.Omit(
- Type.Object({
- x: Type.Number(),
- y: Type.Number()
- }),
- ['x']
-)
-```
-
-```js
-type T = Omit<
- {
- x: number,
- y: number
- },
- 'x'
->
-```
-
-```js
-const T = {
- type: 'object',
- properties: {
- y: { type: 'number' }
- },
- required: ['y']
-}
-```
-
-### Modifiers
-
-TypeBox provides modifiers that can be applied to an objects properties. This allows for `optional` and `readonly` to be applied to that property. The following table illustrates how they map between TypeScript and JSON Schema.
-
-#### Optional
-
-Allows marking a key in [Type.Object](#object) as optional.
-
-```js
-const T = Type.Object({
- name: Type.Optional(Type.String())
-})
-```
-
-```js
-type T = {
- name?: string
-}
-```
-
-```js
-const T = {
- type: 'object',
- properties: {
- name: {
- type: 'string'
- }
- }
-}
-```
-
-#### Readonly
-
-Allows marking a key in [Type.Object](#object) as readonly. It's the equivalent of TypeScript's [Readonly](https://www.typescriptlang.org/docs/handbook/utility-types.html#readonlytype) utility type.
-
-```js
-const T = Type.Object({
- name: Type.Readonly(Type.String())
-})
-```
-
-```js
-type T = {
- readonly name: string
-}
-```
-
-```js
-const T = {
- type: 'object',
- properties: {
- name: {
- type: 'string'
- }
- },
- required: ['name']
-}
-```
-
-#### ReadonlyOptional
-
-Allows marking a key in [Type.Object](#object) as both [readonly](#readonly) and [optional](#optional).
-
-```js
-const T = Type.Object({
- name: Type.ReadonlyOptional(Type.String())
-})
-```
-
-```js
-type T = {
- readonly name?: string
-}
-```
-
-```js
-const T = {
- type: 'object',
- properties: {
- name: {
- type: 'string'
- }
- }
-}
-```
-
-### Options by Type
-
-You can pass additional JSON schema options on the last argument of any given type. The [JSON Schema specification](https://json-schema.org/draft/2020-12/json-schema-validation.html#name-a-vocabulary-for-structural) describes options for each data type. Descriptions from the specification are copied here for easy reference.
-
-#### For Numbers
-
-Number types support the following options, which can be used simultaneously.
-
-##### `multipleOf`
-
-The value of "multipleOf" MUST be a number, strictly greater than 0. Values are valid only if division by this keyword's value results in an integer.
-
-```ts
-const T = Type.Number({ multipleOf: 2 })
-```
-
-##### `maximum`
-
-The value of "maximum" MUST be a number, representing an inclusive upper limit for a numeric instance. If the instance is a number, then this keyword validates only if the instance is less than or exactly equal to "maximum".
-
-```ts
-const T = Type.Number({ maximum: 20 })
-```
-
-##### `exclusiveMaximum`
-
-The value of "exclusiveMaximum" MUST be a number, representing an exclusive upper limit for a numeric instance. If the instance is a number, then the instance is valid only if it has a value strictly less than (not equal to) "exclusiveMaximum".
-
-```ts
-const T = Type.Number({ exclusiveMaximum: 20 })
-```
-
-##### `minimum`
-
-The value of "minimum" MUST be a number, representing an inclusive lower limit for a numeric instance. If the instance is a number, then this keyword validates only if the instance is greater than or exactly equal to "minimum".
-
-```ts
-const T = Type.Number({ minimum: 20 })
-```
-
-##### `exclusiveMinimum`
-
-The value of "exclusiveMinimum" MUST be a number, representing an exclusive lower limit for a numeric instance. If the instance is a number, then the instance is valid only if it has a value strictly greater than (not equal to) "exclusiveMinimum".
-
-```ts
-const T = Type.Number({ exclusiveMinimum: 20 })
-```
-
-#### For Strings
-
-String types support the following options, which can be used simultaneously.
-
-##### `maxLength`
-
-The value of this keyword MUST be a non-negative integer. A string instance is valid against this keyword if its length is less than, or equal to, the value of this keyword. The length of a string instance is defined as the number of its characters as defined by RFC 8259 [RFC8259].
-
-##### `minLength`
-
-The value of this keyword MUST be a non-negative integer. A string instance is valid against this keyword if its length is greater than, or equal to, the value of this keyword. The length of a string instance is defined as the number of its characters as defined by RFC 8259 [RFC8259]. Omitting this keyword has the same behavior as a value of 0.
-
-##### `pattern`
-
-Use `Type.Regex`, instead of this option.
-
-##### With AJV Formats
-
-There are four custom options which are only available for certain formats when using the `ajv-formats` package:
-
-- [formatMinimum](#formatminimum)
-- [formatMaximum](#formatmaximum)
-- [formatExclusiveMinimum](#formatexclusiveminimum)
-- [formatExclusiveMaximum](#formatexclusivemaximum)
-
-The above-listed options are only available when using the following [string formats](#string-formats).
-
-- [date](#date)
-- [time](#time)
-- [date-time](#date-time)
-- [iso-time](#iso-time)
-- [iso-date-time](#iso-date-time)
-
-##### `formatMinimum`
-
-Allows defining minimum constraints when the `format` keyword defines ordering (using the compare function in format definition). Available when using [ajv-formats](#with-ajv-formats).
-
-The following example validates that the provided date is on or after November 13, 2022.
-
-```ts
-Type.String({ format: 'date', formatMinimum: '2022-11-13' })
-```
-
-##### `formatMaximum`
-
-Allows defining maximum constraints when the `format` keyword defines ordering (using the compare function in format definition). Available when using [ajv-formats](#with-ajv-formats).
-
-The following example validates that the provided date is on or before November 13, 2022.
-
-```ts
-Type.String({ format: 'date', formatMaximum: '2022-11-13' })
-```
-
-##### `formatExclusiveMinimum`
-
-Allows defining exclusive minimum constraints when the `format` keyword defines ordering (using the compare function in format definition). Available when using [ajv-formats](#with-ajv-formats).
-
-The following example validates that the provided date is after (and not on) November 13, 2022.
-
-```ts
-Type.String({ format: 'date', formatExclusiveMinimum: '2022-11-13' })
-```
-
-##### `formatExclusiveMaximum`
-
-Allows defining exclusive maximum constraints when the `format` keyword defines ordering (using the compare function in format definition). Available when using [ajv-formats](#with-ajv-formats).
-
-The following example validates that the provided date is before (and not on) November 13, 2022.
-
-```ts
-Type.String({ format: 'date', formatExclusiveMaximum: '2022-11-13' })
-```
-
-#### For Arrays
-
-Array types support the following options, which can be used simultaneously.
-
-##### `maxItems`
-
-The value of this keyword MUST be a non-negative integer. An array instance is valid against "maxItems" if its size is less than, or equal to, the value of this keyword.
-
-##### `minItems`
-
-The value of this keyword MUST be a non-negative integer. An array instance is valid against "minItems" if its size is greater than, or equal to, the value of this keyword. Omitting this keyword has the same behavior as a value of 0.
-
-##### `uniqueItems`
-
-The value of this keyword MUST be a boolean. If this keyword has boolean value false, the instance validates successfully. If it has boolean value true, the instance validates successfully if all of its elements are unique. Omitting this keyword has the same behavior as a value of false.
-
-##### `maxContains`
-
-The value of this keyword MUST be a non-negative integer.
-
-If "contains" is not present within the same schema object, then this keyword has no effect.
-
-An instance array is valid against "maxContains" in two ways, depending on the form of the annotation result of an adjacent "contains" [json-schema] keyword. The first way is if the annotation result is an array and the length of that array is less than or equal to the "maxContains" value. The second way is if the annotation result is a boolean "true" and the instance array length is less than or equal to the "maxContains" value.
-
-##### `minContains`
-
-The value of this keyword MUST be a non-negative integer.
-
-If "contains" is not present within the same schema object, then this keyword has no effect.
-
-An instance array is valid against "minContains" in two ways, depending on the form of the annotation result of an adjacent "contains" [json-schema] keyword. The first way is if the annotation result is an array and the length of that array is greater than or equal to the "minContains" value. The second way is if the annotation result is a boolean "true" and the instance array length is greater than or equal to the "minContains" value.
-
-A value of 0 is allowed, but is only useful for setting a range of occurrences from 0 to the value of "maxContains". A value of 0 causes "minContains" and "contains" to always pass validation (but validation can still fail against a "maxContains" keyword).
-
-Omitting this keyword has the same behavior as a value of 1.
-
-#### For Objects
-
-Array types support the following options, which can be used simultaneously.
-
-##### `additionalProperties`
-
-Specifies if keys other than the ones specified in the schema are allowed to be present in the object.
-
-##### `maxProperties`
-
-The value of this keyword MUST be a non-negative integer. An object instance is valid against "maxProperties" if its number of properties is less than, or equal to, the value of this keyword.
-
-##### `minProperties`
-
-The value of this keyword MUST be a non-negative integer. An object instance is valid against "minProperties" if its number of properties is greater than, or equal to, the value of this keyword. Omitting this keyword has the same behavior as a value of 0.
-
-##### `required`
-
-All TypeBox types are required unless you wrap them in [Type.Optional](#optional), so you don't need to use this option, manually.
-
-##### `dependentRequired`
-
-The value of this keyword MUST be an object. Properties in this object, if any, MUST be arrays. Elements in each array, if any, MUST be strings, and MUST be unique.
-
-This keyword specifies properties that are required if a specific other property is present. Their requirement is dependent on the presence of the other property.
-
-Validation succeeds if, for each name that appears in both the instance and as a name within this keyword's value, every item in the corresponding array is also the name of a property in the instance.
-
-Omitting this keyword has the same behavior as an empty object.
-
-### Extended
-
-In addition to JSON schema types, TypeBox provides several extended types that allow for the composition of `function` and `constructor` types. These additional types are not valid JSON Schema and will not validate using typical JSON Schema validation. However, these types can be used to frame JSON schema and describe callable interfaces that may receive JSON validated data. Since these are nonstandard types, most applications will not need them. Consider using the [Standard Types](#standard), instead, as using these types may make it difficult to upgrade your application in the future.
-
-#### Extended Configuration
-
-Utilities in this section require updating `src/schemas/validators.ts` to the Extended Ajv Configuration, as shown here:
-
-```ts
-import { TypeGuard } from '@sinclair/typebox'
-import { Value } from '@sinclair/typebox/value'
-import addFormats from 'ajv-formats'
-import type { Options } from 'ajv'
-import Ajv from 'ajv'
-
-function schemaOf(schemaOf: string, value: unknown, schema: unknown) {
- switch (schemaOf) {
- case 'Constructor':
- return TypeGuard.IsConstructor(schema) && Value.Check(schema, value) // not supported
- case 'Function':
- return TypeGuard.IsFunction(schema) && Value.Check(schema, value) // not supported
- case 'Date':
- return TypeGuard.IsDate(schema) && Value.Check(schema, value)
- case 'Promise':
- return TypeGuard.IsPromise(schema) && Value.Check(schema, value) // not supported
- case 'Uint8Array':
- return TypeGuard.IsUint8Array(schema) && Value.Check(schema, value)
- case 'Undefined':
- return TypeGuard.IsUndefined(schema) && Value.Check(schema, value) // not supported
- case 'Void':
- return TypeGuard.IsVoid(schema) && Value.Check(schema, value)
- default:
- return false
- }
-}
-
-export function createAjv(options: Options = {}) {
- return addFormats(new Ajv(options), [
- 'date-time',
- 'time',
- 'date',
- 'email',
- 'hostname',
- 'ipv4',
- 'ipv6',
- 'uri',
- 'uri-reference',
- 'uuid',
- 'uri-template',
- 'json-pointer',
- 'relative-json-pointer',
- 'regex',
- ])
- .addKeyword({ type: 'object', keyword: 'instanceOf', validate: schemaOf })
- .addKeyword({ type: 'null', keyword: 'typeOf', validate: schemaOf })
- .addKeyword('exclusiveMinimumTimestamp')
- .addKeyword('exclusiveMaximumTimestamp')
- .addKeyword('minimumTimestamp')
- .addKeyword('maximumTimestamp')
- .addKeyword('minByteLength')
- .addKeyword('maxByteLength')
-}
-
-export const dataValidator: Ajv = createAjv({})
-export const queryValidator: Ajv = createAjv({ coerceTypes: true })
-```
-
-If you see an error stating `Error: strict mode: unknown keyword: "instanceOf"`, it's likely because you need to extend your configuration, as shown above.
-
-#### Constructor
-
-Verifies that the value is a constructor with typed arguments and return value. Requires [Extended Ajv Configuration](#extended-configuration).
-
-```js
-const T = Type.Constructor([Type.String(), Type.Number()], Type.Boolean())
-```
-
-```js
-type T = new (
- arg0: string,
- arg1: number,
-) => boolean
-```
-
-```js
-const T = {
- type: 'constructor',
- parameters: [
- { type: 'string' },
- { type: 'number' },
- ],
- return {
- type: 'boolean',
- },
-}
-```
-
-#### Function
-
-Verifies that the value is a function with typed arguments and return value. Requires [Extended Ajv Configuration](#extended-configuration).
-
-```js
-const T = Type.Function([Type.String(), Type.Number()], Type.Boolean())
-```
-
-```js
-type T = ({
- arg0: string,
- arg1: number
-}) => boolean
-```
-
-```js
-const T = {
- type: 'function',
- parameters: [
- { type: 'string' },
- { type: 'number' },
- ],
- return {
- type: 'boolean',
- },
-}
-```
-
-#### Promise
-
-Verifies that the value is an instanceof Promise which resolves to the provided type. Requires [Extended Ajv Configuration](#extended-configuration).
-
-```js
-const T = Type.Promise(Type.String())
-```
-
-```js
-type T = Promise
-```
-
-```js
-const T = {
- type: 'promise',
- item: { type: 'string' }
-}
-```
-
-#### Uint8Array
-
-Verifies that the value is an instanceof Uint8Array. Requires [Extended Ajv Configuration](#extended-configuration).
-
-```js
-const T = Type.Uint8Array()
-```
-
-```js
-type T = Uint8Array
-```
-
-```js
-const T = {
- type: 'object',
- instanceOf: 'Uint8Array'
-}
-```
-
-#### Date
-
-Verifies that the value is an instanceof Date. This is likely not the validator to use for storing dates in a database. See [Validating Dates](#validating-dates). Requires [Extended Ajv Configuration](#extended-configuration).
-
-```js
-const T = Type.Date()
-```
-
-```js
-type T = Date
-```
-
-```js
-const T = {
- type: 'object',
- instanceOf: 'Date'
-}
-```
-
-#### Undefined
-
-Verifies that the value is `undefined`. Requires [Extended Ajv Configuration](#extended-configuration).
-
-```js
-const T = Type.Undefined()
-```
-
-```js
-type T = undefined
-```
-
-```js
-const T = {
- type: 'object',
- specialized: 'Undefined'
-}
-```
-
-
-#### Symbol
-
-Verifies that the value is of type `Symbol`. Requires [Extended Ajv Configuration](#extended-configuration).
-
-```js
-const T = Type.Symbol()
-```
-
-```js
-type T = symbol
-```
-
-```js
-const T = {
- type: 'null',
- typeOf: 'Symbol'
-}
-```
-
-#### BigInt
-
-Verifies that the value is of type `BigInt`. Requires [Extended Ajv Configuration](#extended-configuration).
-
-```js
-const T = Type.BigInt()
-```
-
-```js
-type T = bigint
-```
-
-```js
-const T = {
- type: 'null',
- typeOf: 'BigInt'
-}
-```
-
-#### Void
-
-Verifies that the value is `null`. Requires [Extended Ajv Configuration](#extended-configuration).
-
-```js
-const T = Type.Void()
-```
-
-```js
-type T = void
-```
-
-```js
-const T = {
- type: 'null'
-}
-```
-
-### Reference
-
-Use `Type.Ref(...)` to create referenced types. The target type must specify an `$id`.
-
-```ts
-const T = Type.String({ $id: 'T' })
-const R = Type.Ref(T)
-```
-
-For a more detailed example see the [result and data schema](#result-and-data-schemas) section.
diff --git a/docs/api/schema/validators.md b/docs/api/schema/validators.md
deleted file mode 100644
index c3a091e3c0..0000000000
--- a/docs/api/schema/validators.md
+++ /dev/null
@@ -1,160 +0,0 @@
----
-outline: deep
----
-
-# Validators
-
-[Ajv](https://ajv.js.org/) is the default JSON Schema validator used by `@feathersjs/schema`. We chose it because it's fully compliant with the JSON Schema spec and it's the fastest JSON Schema validator because it has its own compiler. It pre-compiles code for each validator, instead of dynamically creating validators from schemas during runtime.
-
-
-
-Ajv and most other validation libraries are only used for ensuring data is valid and are not designed to convert data to different types. Type conversions and populating data can be done using [resolvers](./resolvers.md). This ensures a clean separation of concern between validating and populating data.
-
-
-
-## Usage
-
-The following is the standard `validators.ts` file that sets up a validator for data and queries (for which string types will be coerced automatically). It also sets up a collection of additional formats using [ajv-formats](https://ajv.js.org/packages/ajv-formats.html). The validators in this file can be customized according to the [Ajv documentation](https://ajv.js.org/) and [its plugins](https://ajv.js.org/packages/). You can find the available Ajv options in the [Ajv class API docs](https://ajv.js.org/options.html).
-
-```ts
-import { Ajv, addFormats } from '@feathersjs/schema'
-import type { FormatsPluginOptions } from '@feathersjs/schema'
-
-const formats: FormatsPluginOptions = [
- 'date-time',
- 'time',
- 'date',
- 'email',
- 'hostname',
- 'ipv4',
- 'ipv6',
- 'uri',
- 'uri-reference',
- 'uuid',
- 'uri-template',
- 'json-pointer',
- 'relative-json-pointer',
- 'regex'
-]
-
-export const dataValidator = addFormats(new Ajv({}), formats)
-
-export const queryValidator = addFormats(
- new Ajv({
- coerceTypes: true
- }),
- formats
-)
-```
-
-## Validation functions
-
-A validation function takes data and validates them against a schema using a validator. They can be used with any validation library. Currently the `getValidator` functions are available for:
-
-- [TypeBox schema](./typebox.md#validators) to validate a TypeBox definition using an Ajv validator instance
-- [JSON schema](./schema.md#validators) to validate a JSON schema object using an Ajv validator instance
-
-## Hooks
-
-The following hooks take a [validation function](#validation-functions) and validate parts of the [hook context](../hooks.md#hook-context).
-
-### validateData
-
-`schemaHooks.validateData` takes a [validation function](#validation-functions) and allows to validate the `data` in a `create`, `update` and `patch` request as well as [custom service methods](../services.md#custom-methods). It can be used as an `around` or `before` hook.
-
-```ts
-import { Ajv, hooks as schemaHooks } from '@feathersjs/schema'
-import { Type, getValidator } from '@feathersjs/typebox'
-import type { Static } from '@feathersjs/typebox'
-import { dataValidator } from '../validators'
-
-const userSchema = Type.Object(
- {
- id: Type.Number(),
- email: Type.String(),
- password: Type.String(),
- avatar: Type.Optional(Type.String())
- },
- { $id: 'User', additionalProperties: false }
-)
-type User = Static
-
-const userDataSchema = Type.Pick(userSchema, ['email', 'password'])
-
-// Returns validation functions for `create`, `update` and `patch`
-const userDataValidator = getValidator(userDataSchema, dataValidator)
-
-app.service('users').hooks({
- before: {
- all: [schemaHooks.validateData(userDataValidator)]
- }
-})
-```
-
-### validateQuery
-
-`schemaHooks.validateQuery` takes a [validation function](#validation-functions) and validates the `query` of a request. It can be used as an `around` or `before` hook. When using the `queryValidator` from the [usage](#usage) section, strings will automatically be converted to the right type using [Ajv's type coercion rules](https://ajv.js.org/coercion.html).
-
-```ts
-import { Ajv, schemaHooks } from '@feathersjs/schema'
-import { Type, getValidator } from '@feathersjs/typebox'
-import { queryValidator } from '../validators'
-
-// Schema for allowed query properties
-const messageQueryProperties = Type.Pick(messageSchema, ['id', 'text', 'createdAt', 'userId'], {
- additionalProperties: false
-})
-const messageQuerySchema = querySyntax(messageQueryProperties)
-type MessageQuery = Static
-
-const messageQueryValidator = getValidator(messageQuerySchema, queryValidator)
-
-app.service('messages').hooks({
- around: {
- all: [schemaHooks.validateQuery(messageQueryValidator)]
- }
-})
-```
-
-### Using validators with custom methods
-
-You can optionally create validators for your custom methods. For example we will create a custom method in our `user` service that simply says "Hello ${name}" to the requestor.
-
-For the example we can use this TypeBox schema
-
-```ts
-//Our request object, we expect something like {name: "Bob"}
-export const sayHelloRequest = Type.Object(
- {
- name: Type.String({
- description: "Who are we saying hello to!",
- examples: ["Bob"],
- minLength: 2,
- }),
- },
- { $id: "sayHelloRequest", additionalProperties: false },
-);
-
-//We intend on returning an object with a string response property
-export const sayHelloResponse = Type.Object(
- { response: Type.String() },
- { $id: "sayHelloResponse", additionalProperties: false },
-);
-
-export const sayHelloValidator = getValidator(sayHelloRequest, dataValidator);
-```
-
-In our user class file, we can define our custom method
-
-```ts
-async sayHello(data: Static): Promise> {
- const { name } = data
- return { response: `Hello ${name}` }
-}
-```
-
-Finally, we can add our validator in our service hooks
-
-```ts
-sayHello: [schemaHooks.validateData(sayHelloValidator)]
-```
diff --git a/docs/api/socketio.md b/docs/api/socketio.md
deleted file mode 100644
index e268be74d6..0000000000
--- a/docs/api/socketio.md
+++ /dev/null
@@ -1,225 +0,0 @@
----
-outline: deep
----
-
-# Socket.io
-
-
-
-[](https://www.npmjs.com/package/@feathersjs/socketio)
-[](https://github.com/feathersjs/feathers/blob/dove/packages/socketio/CHANGELOG.md)
-
-
-
-```
-npm install @feathersjs/socketio --save
-```
-
-The [@feathersjs/socketio](https://github.com/feathersjs/socketio) module allows to call [service methods](./services.md) and receive [real-time events](./events.md) via [Socket.io](http://socket.io/), a NodeJS library which enables real-time bi-directional, event-based communication.
-
-
-
-This page describes how to set up a Socket.io server. The [Socket.io client chapter](./client/socketio.md) shows how to connect to this server on the client and the message format for service calls and real-time events.
-
-
-
-## Configuration
-
-`@feathersjs/socketio` can be used standalone or together with a Feathers framework integration like [Express](./express.md).
-
-### socketio()
-
-`app.configure(socketio())` sets up the Socket.io transport with the default configuration using either the server provided by [app.listen](./application.md#listenport) or passed in [app.setup(server)](./application.md#setupserver).
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import socketio from '@feathersjs/socketio'
-
-const app = feathers()
-
-app.configure(socketio())
-
-app.listen(3030)
-```
-
-
-
-Once the server has been started with `app.listen()` or `app.setup(server)` the Socket.io object is available as `app.io`. Usually you should not have to send or listen to events on `app.io` directly.
-
-
-
-### socketio(callback)
-
-`app.configure(socketio(callback))` sets up the Socket.io transport with the default configuration and call `callback` with the [Socket.io server object](http://socket.io/docs/server-api/).
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import socketio from '@feathersjs/socketio'
-
-const app = feathers()
-
-app.configure(
- socketio((io) => {
- io.on('connection', (socket) => {
- // Do something here
- })
-
- // Registering Socket.io middleware
- io.use(function (socket, next) {
- // Exposing a request property to services and hooks
- socket.feathers.referrer = socket.request.referrer
- next()
- })
- })
-)
-
-app.listen(3030)
-```
-
-
-
-Try to avoid listening and sending events on the `socket` directly since it circumvents Feathers secure dispatch mechanisms available through [channels](./channels.md) and [hooks](./hooks.md).
-
-
-
-#### Using uWebSockets.js
-
-uWS can be used as a drop in replacement for socket handling.
-As a result you'll see lower latencies, a better memory footprint and even slightly less overall resource usage.
-You will on the other hand need to install the following extra package to get things working.
-
-```
-npm install uNetworking/uWebSockets.js#20.31.0 --save
-```
-
-Now you can use the `io.attachApp` function to attach uWS as a replacement.
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import socketio from '@feathersjs/socketio'
-import { App } from 'uWebSockets.js'
-
-const app = feathers()
-
-app.configure(
- socketio((io) => {
- io.attachApp(App())
- })
-)
-
-app.listen(3030)
-```
-
-### socketio(options [, callback])
-
-`app.configure(socketio(options [, callback]))` sets up the Socket.io transport with the given [Socket.io options object](https://github.com/socketio/engine.io#methods-1) and optionally calls the callback described above.
-
-This can be used to e.g. configure the path where Socket.io is initialize (`socket.io/` by default). The following changes the path to `ws/`:
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import socketio from '@feathersjs/socketio'
-
-const app = feathers()
-
-app.configure(
- socketio(
- {
- path: '/ws/'
- },
- (io) => {
- // Do something here
- // This function is optional
- }
- )
-)
-
-app.listen(3030)
-```
-
-### socketio(port, [options], [callback])
-
-`app.configure(socketio(port, [options], [callback]))` creates a new Socket.io server on a separate port. Options and a callback are optional and work as described above.
-
-```ts
-import { feathers } from '@feathersjs/feathers'
-import socketio from '@feathersjs/socketio'
-
-const app = feathers()
-
-app.configure(socketio(3031))
-app.listen(3030)
-```
-
-## params
-
-[Socket.io middleware](https://socket.io/docs/v4/middlewares/) can modify the `feathers` property on the `socket` which will then be used as the service call `params`:
-
-```ts
-app.configure(
- socketio((io) => {
- io.use((socket, next) => {
- socket.feathers.user = { name: 'David' }
- next()
- })
- })
-)
-
-app.use('messages', {
- async create(data, params, callback) {
- // When called via SocketIO:
- params.provider // -> socketio
- params.user // -> { name: 'David' }
- return data
- }
-})
-```
-
-
-
-`socket.feathers` is the same object as the `connection` in a [channel](./channels.md). `socket.request` and `socket.handshake` contains information the HTTP request that initiated the connection (see the [Socket.io documentation](https://socket.io/docs/server-api/#socket-request)).
-
-
-
-### params.provider
-
-For any [service method call](./services.md) made through Socket.io `params.provider` will be set to `socketio`. In a [hook](./hooks.md) this can for example be used to prevent external users from making a service method call:
-
-```js
-app.service('users').hooks({
- before: {
- remove(context) {
- // check for if(context.params.provider) to prevent any external call
- if (context.params.provider === 'socketio') {
- throw new Error('You can not delete a user via Socket.io')
- }
- }
- }
-})
-```
-
-### params.query
-
-`params.query` will contain the query parameters sent from the client.
-
-
-
-Only `params.query` is passed between the server and the client, other parts of `params` are not. This is for security reasons so that a client can't set things like `params.user` or the database options. You can always map from `params.query` to `params` in a before [hook](./hooks.md).
-
-
-
-### params.connection
-
-`params.connection` is the connection object that can be used with [channels](./channels.md). It is the same object as `socket.feathers` in a Socket.io middleware as [shown in the `params` section](#params).
-
-### params.headers
-
-`params.headers` contains the headers from the original handshake. This is usually sent with the `extraHeaders` option when initialising the connection on the client:
-
-```ts
-const socket = io('http://localhost:9777', {
- extraHeaders: {
- MyHeader: 'somevalue'
- }
-})
-```
diff --git a/docs/auto-imports.d.ts b/docs/auto-imports.d.ts
deleted file mode 100644
index 9d2400790b..0000000000
--- a/docs/auto-imports.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/* eslint-disable */
-/* prettier-ignore */
-// @ts-nocheck
-// noinspection JSUnusedGlobalSymbols
-// Generated by unplugin-auto-import
-// biome-ignore lint: disable
-export {}
-declare global {
-
-}
diff --git a/docs/comparison.md b/docs/comparison.md
deleted file mode 100644
index 61774b7022..0000000000
--- a/docs/comparison.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Feathers vs others
-
-The following sections compare Feathers to other software choices that seem similar or may overlap with the use cases of Feathers. Due to the bias of these comparisons being on the Feathers website, we attempt to only use facts. Below you can find a feature comparison table and in each section you can get more detailed comparisons. If you find something invalid or out of date in the comparisons, please create an issue and we'll address it as soon as possible.
-
-- [Feathers vs Firebase](/feathers-vs-firebase)
-- [Feathers vs Meteor](/feathers-vs-meteor)
-- [Feathers vs Sails](/feathers-vs-sails)
-- [Feathers vs Loopback](/feathers-vs-loopback)
-- [Feathers vs Nest](/feathers-vs-nest)
diff --git a/docs/components/CTAButton.vue b/docs/components/CTAButton.vue
deleted file mode 100644
index 91d75fb879..0000000000
--- a/docs/components/CTAButton.vue
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/docs/components/Footer.vue b/docs/components/Footer.vue
deleted file mode 100644
index 1b78b751a0..0000000000
--- a/docs/components/Footer.vue
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
diff --git a/docs/components/FooterList.vue b/docs/components/FooterList.vue
deleted file mode 100644
index b5b5d021a7..0000000000
--- a/docs/components/FooterList.vue
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- {{ title }}
-
- {{ item.label }}
-
-
-
diff --git a/docs/components/HomeCTATextSection.vue b/docs/components/HomeCTATextSection.vue
deleted file mode 100644
index 1d58f5e248..0000000000
--- a/docs/components/HomeCTATextSection.vue
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
{{ text }}
- Get Started
-
-
diff --git a/docs/components/HomeCreateFirstApp.vue b/docs/components/HomeCreateFirstApp.vue
deleted file mode 100644
index b18b8c1347..0000000000
--- a/docs/components/HomeCreateFirstApp.vue
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
Create your first Feathers API in minutes
-
-
-
-
Check out the docs to learn more about Feathers.
-
- Feel free say hello on Discord .
-
-
-
diff --git a/docs/components/HomeFeature1.vue b/docs/components/HomeFeature1.vue
deleted file mode 100644
index d9424492a7..0000000000
--- a/docs/components/HomeFeature1.vue
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/components/HomeFeature1Content.vue b/docs/components/HomeFeature1Content.vue
deleted file mode 100644
index 8065068a8f..0000000000
--- a/docs/components/HomeFeature1Content.vue
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
- Feathers is a full-stack web-framework for creating APIs and real-time applications with TypeScript or JavaScript.
-
-
- Feathers can interact with any backend technology, supports many databases out of the box
- and works with any frontend technology like React, VueJS, Angular, React Native,
- Android or iOS.
-
-
-
diff --git a/docs/components/HomeFeature2.vue b/docs/components/HomeFeature2.vue
deleted file mode 100644
index 50b362189a..0000000000
--- a/docs/components/HomeFeature2.vue
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/components/HomeFeature2Content.vue b/docs/components/HomeFeature2Content.vue
deleted file mode 100644
index 997db90cd7..0000000000
--- a/docs/components/HomeFeature2Content.vue
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
Build prototypes in minutes and production-ready apps in days.
-
Seriously.
-
-
Build a chat app
-
-
diff --git a/docs/components/HomeFeatureGrid.vue b/docs/components/HomeFeatureGrid.vue
deleted file mode 100644
index 4de339d613..0000000000
--- a/docs/components/HomeFeatureGrid.vue
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
See what makes Feathers special
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/components/HomeFeatureGridCard.vue b/docs/components/HomeFeatureGridCard.vue
deleted file mode 100644
index 77bd4af750..0000000000
--- a/docs/components/HomeFeatureGridCard.vue
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
{{ title }}
-
-
-
diff --git a/docs/components/HomeHero.vue b/docs/components/HomeHero.vue
deleted file mode 100644
index 76754cb537..0000000000
--- a/docs/components/HomeHero.vue
+++ /dev/null
@@ -1,147 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- The API and Real-time
- Application Framework
-
-
- Get Started
-
-
-
-
-
-
-
- For TypeScript and JavaScript in Node.js, React Native and the browser
-
-
- Quick Start
-
-
-
-
-
-
-
diff --git a/docs/components/HomeIndustryPartners.vue b/docs/components/HomeIndustryPartners.vue
deleted file mode 100644
index 3b409d18e1..0000000000
--- a/docs/components/HomeIndustryPartners.vue
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
Our Industry Partners
-
-
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh
- euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/components/HomeQuickStart.vue b/docs/components/HomeQuickStart.vue
deleted file mode 100644
index df9c7ed753..0000000000
--- a/docs/components/HomeQuickStart.vue
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
- Learn the basics and create your first real-time API in 15 minutes.
-
- Quick Start
-
-
diff --git a/docs/cookbook/assets/auth0-app.png b/docs/cookbook/assets/auth0-app.png
deleted file mode 100644
index 377566cfce..0000000000
Binary files a/docs/cookbook/assets/auth0-app.png and /dev/null differ
diff --git a/docs/cookbook/assets/facebook-app.png b/docs/cookbook/assets/facebook-app.png
deleted file mode 100644
index d887349e85..0000000000
Binary files a/docs/cookbook/assets/facebook-app.png and /dev/null differ
diff --git a/docs/cookbook/authentication/_discord.md b/docs/cookbook/authentication/_discord.md
deleted file mode 100644
index f861de5e7d..0000000000
--- a/docs/cookbook/authentication/_discord.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-outline: deep
----
-
-# Discord
-
-Discord login can be initialized like any other [OAuth provider](../../api/authentication/oauth.md) by adding the app id and secret to `config/default.json`:
-
-```js
-{
- "authentication": {
- "oauth": {
- "discord": {
- "key": "",
- "secret": "",
- "scope": ["identify email"]
- }
- }
- }
-}
-```
-
-> __Protip:__ A list of all available Discord scopes can be found [here](https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes)
-
-## Application client and secret
-
-The client id (App ID) and secret can be found [here](https://discord.com/developers/applications/):
-
-
-Now add this to your src/authentication.ts:
-
-```ts
-import {OAuthProfile, OAuthStrategy} from "@feathersjs/authentication-oauth";
-import {AuthenticationRequest} from "@feathersjs/authentication";
-import axios, {AxiosRequestConfig} from 'axios'
-import {ServiceAddons} from '@feathersjs/feathers';
-import {AuthenticationService, JWTStrategy} from '@feathersjs/authentication';
-import {LocalStrategy} from '@feathersjs/authentication-local';
-import {oauth} from '@feathersjs/authentication-oauth';
-import {Application} from './declarations';
-
-
-export default function (app: Application) {
- const authentication = new AuthenticationService(app);
-
- authentication.register('jwt', new JWTStrategy());
- authentication.register('local', new LocalStrategy());
- authentication.register('discord', new DiscordStrategy());
-
- app.use('/authentication', authentication);
- app.configure(oauth());
-}
-
-export class DiscordStrategy extends OAuthStrategy {
- async getProfile(authResult: AuthenticationRequest) {
- // This is the OAuth access token that can be used
- // for Discord API requests as the Bearer token
- const accessToken = authResult.access_token;
- const userOptions: AxiosRequestConfig = {
- method: 'GET',
- headers: {'Authorization': `Bearer ${accessToken}`},
- url: `https://discord.com/api/users/@me`,
- };
- const {data} = await axios(userOptions);
- return data;
- }
-
- async getEntityData(profile: OAuthProfile) {
- // `profile` is the data returned by getProfile
- const baseData = await super.getEntityData(profile);
-
- if (profile.avatar == null) {
- profile.avatar = 'https://cdn.discordapp.com/embed/avatars/0.png'
- } else {
- const isGif = profile.avatar.startsWith('a_');
- profile.avatar = `https://cdn.discordapp.com/avatars/${profile['id']}/${profile['avatar']}.${isGif ? 'gif' : 'png'}`
- }
-
- return {
- ...baseData,
- username: profile.username,
- email: profile.email,
- avatar: profile.avatar,
- };
- }
-}
-```
-
-If you don't need the avatar then you can simply remove the lines of code.
-If the user doesn't have an avatar then we will set it to Discord's default avatar.
-
-
diff --git a/docs/cookbook/authentication/anonymous.md b/docs/cookbook/authentication/anonymous.md
deleted file mode 100644
index b8a4d88f22..0000000000
--- a/docs/cookbook/authentication/anonymous.md
+++ /dev/null
@@ -1,126 +0,0 @@
----
-outline: deep
----
-
-# Anonymous authentication
-
-Anonymous authentication can be allowed by creating a [custom strategy](../../api/authentication/strategy.md) that returns the `params` that you would like to use to identify an authenticated user.
-
-
-
-
-
-```ts
-import { Params } from '@feathersjs/feathers';
-import { AuthenticationBaseStrategy, AuthenticationResult, AuthenticationService } from '@feathersjs/authentication';
-
-class AnonymousStrategy extends AuthenticationBaseStrategy {
- async authenticate(authentication: AuthenticationResult, params: Params) {
- return {
- anonymous: true
- }
- }
-}
-
-export default function(app: Application) {
- const authentication = new AuthenticationService(app);
- // ... authentication service setup
- authentication.register('anonymous', new AnonymousStrategy());
-}
-```
-
-
-
-
-
-In `src/authentication.js`:
-
-```js
-const { AuthenticationBaseStrategy, AuthenticationService } = require('@feathersjs/authentication');
-
-class AnonymousStrategy extends AuthenticationBaseStrategy {
- async authenticate(authentication, params) {
- return {
- anonymous: true
- }
- }
-}
-
-module.exports = app => {
- const authentication = new AuthenticationService(app);
- // ... authentication service setup
- authentication.register('anonymous', new AnonymousStrategy());
-}
-```
-
-
-
-
-
-
-Next, we create a hook called `allow-anonymous` that sets `params.authentication` if it does not exist and if `params.provider` exists (which means it is an external call) to use that `anonymous` strategy:
-
-
-
-
-
-```ts
-import { Hook, HookContext } from '@feathersjs/feathers';
-
-export default (): Hook => {
- return async (context: HookContext, next?: NextFunction) => {
- const { params } = context;
-
- if (params.provider && !params.authentication) {
- context.params = {
- ...params,
- authentication: {
- strategy: 'anonymous'
- }
- }
- }
-
- if (next) {
- await next();
- }
-
- return context;
- }
-}
-```
-
-
-
-
-
-```js
-/* eslint-disable require-atomic-updates */
-module.exports = function (options = {}) { // eslint-disable-line no-unused-vars
- return async context => {
- const { params } = context;
-
- if(params.provider && !params.authentication) {
- context.params = {
- ...params,
- authentication: {
- strategy: 'anonymous'
- }
- }
- }
-
- return context;
- };
-};
-```
-
-
-
-
-
-This hook should be added __before__ the [authenticate hook](../../api/authentication/hook.md) wherever anonymous authentication should be allowed:
-
-```js
-all: [ allowAnonymous(), authenticate('jwt', 'anonymous') ],
-```
-
-If an anonymous user now accesses the service externally, the service call will succeed and have `params.anonymous` set to `true`.
diff --git a/docs/cookbook/authentication/apiKey.md b/docs/cookbook/authentication/apiKey.md
deleted file mode 100644
index 93a750b75c..0000000000
--- a/docs/cookbook/authentication/apiKey.md
+++ /dev/null
@@ -1,200 +0,0 @@
-# API Key Authentication
-
-We will start by providing the required configuration for this strategy. You should change all of these values as per your requirement.
-
-```js
-{
- "authentication": {
- ...otherConfig,
- "authStrategies": [ ...otherStrategies, "apiKey" ],
- "apiKey": {
- "allowedKeys": [ "API_KEY_1", "API_KEY_2" ],
- "header": "x-access-token"
- }
- }
-}
-```
-
-Note: if all you want is api key authentication, it is still necessary to register a secret, service and entity. Since no other authentication method is used, entity can be `null`.
-
-A fully working example with just API key authentication:
-```json
-{
- "host": "localhost",
- "port": 3030,
- "public": "../public/",
- "paginate": {
- "default": 10,
- "max": 50
- },
- "authentication": {
- "secret": "some-secret",
- "service": "users",
- "entity": null,
- "authStrategies": ["apiKey"],
- "apiKey": {
- "allowedKeys": [ "API_KEY_1", "API_KEY_2" ],
- "header": "x-access-token"
- }
- }
-}
-```
-
-Next we will be creating a [custom strategy](../../api/authentication/strategy.md) that returns the `params` that you would like to use to identify an authenticated user/request.
-
-
-
-
-
-```ts
-import { AuthenticationBaseStrategy, AuthenticationResult, AuthenticationService } from '@feathersjs/authentication';
-import { NotAuthenticated } from '@feathersjs/errors';
-import { ServiceAddons } from '@feathersjs/feathers';
-import { Application } from './declarations';
-
-
-declare module './declarations' {
- interface ServiceTypes {
- 'authentication': AuthenticationService & ServiceAddons;
- }
-}
-
-class ApiKeyStrategy extends AuthenticationBaseStrategy {
- app: Application;
-
- constructor(app: Application) {
- super();
- this.app = app;
- }
-
- async authenticate(authentication: AuthenticationResult) {
- const { token } = authentication;
-
- const config = this.app.get('authentication').apiKey;
-
- const match = config.allowedKeys.includes(token);
- if (!match) throw new NotAuthenticated('Incorrect API Key');
-
- return {
- apiKey: true
- }
- }
-}
-
-export default function (app: Application) {
- const authentication = new AuthenticationService(app);
-
- // This can have multiple .register calls if multiple strategies have been added
- authentication.register('apiKey', new ApiKeyStrategy(app));
-
- app.use('/authentication', authentication);
-}
-```
-
-
-
-
-
-In `src/authentication.js`:
-
-```js
-const { AuthenticationBaseStrategy, AuthenticationService } = require('@feathersjs/authentication');
-const { NotAuthenticated } = require('@feathersjs/errors');
-
-class ApiKeyStrategy extends AuthenticationBaseStrategy {
- async authenticate(authentication) {
- const { token } = authentication;
-
- const config = this.authentication.configuration[this.name];
-
- const match = config.allowedKeys.includes(token);
- if (!match) throw new NotAuthenticated('Incorrect API Key');
-
- return {
- apiKey: true
- }
- }
-}
-
-module.exports = app => {
- const authentication = new AuthenticationService(app);
- // ... authentication service setup
- authentication.register('apiKey', new ApiKeyStrategy());
-}
-```
-
-
-
-
-
-Next, we create a hook called `allow-apiKey` that sets `params.authentication` if it does not exist and if `params.provider` exists (which means it is an external call) to use that `apiKey` strategy. We will also provide the capability for the apiKey to be read from the request header: (you could also read the token as a query parameter but you will have to filter it out before it's passed to Feathers calls like `get` and `find`.
-
-
-
-
-
-```ts
-import { HookContext, NextFunction } from '@feathersjs/feathers';
-
-export default () => async (context: HookContext, next: NextFunction) => {
- const { params, app } = context;
-
- const headerField = app.get('authentication').apiKey.header;
- const token = params.headers ? params.headers[headerField] : null;
-
- if (token && params.provider && !params.authentication) {
- context.params = {
- ...params,
- authentication: {
- strategy: 'apiKey',
- token
- }
- };
- }
-
- return next();
-}
-```
-
-
-
-
-
-```js
-/* eslint-disable require-atomic-updates */
-module.exports = function (options = {}) { // eslint-disable-line no-unused-vars
- return async context => {
- const { params, app } = context;
-
- const headerField = app.get('authentication').apiKey.header;
- const token = params.headers[headerField];
-
- if (token && params.provider && !params.authentication) {
- context.params = {
- ...params,
- authentication: {
- strategy: 'apiKey',
- token
- }
- };
- }
-
- return context;
- };
-};
-```
-
-
-
-
-
-This hook should be added __before__ the [authenticate hook](../../api/authentication/hook.md) wherever API Key authentication should be allowed:
-
-```js
-import { authenticate } from '@feathersjs/authentication/lib/hooks';
-import allowApiKey from './hooks/allow-api-key';
-
-all: [ allowApiKey(), authenticate('jwt', 'apiKey') ],
-```
-
-If a user now accesses the service externally with the correct apiKey, the service call will succeed and have `params.apiKey` set to `true`.
diff --git a/docs/cookbook/authentication/auth0.md b/docs/cookbook/authentication/auth0.md
deleted file mode 100644
index 84d1530496..0000000000
--- a/docs/cookbook/authentication/auth0.md
+++ /dev/null
@@ -1,114 +0,0 @@
----
-outline: deep
----
-
-# Auth0
-
-To enable OAuth logins with [Auth0](http://auth0.com), we need the following settings after creating an application:
-
-
-
-This should be added in your configuration (usually `config/default.json`) as follows:
-
-```json
-"authentication": {
- "oauth": {
- "redirect": "/",
- "auth0": {
- "key": "",
- "secret": "",
- "subdomain": " __Important:__ `subdomain` should be the "Domain" from the application settings __without__ the `auth0.com` part. So, in the screenshot above, the subdomain for `dev-6gqkmpt6.auth0.com` would be `dev-6gqkmpt6`. If the subdomain includes a region, it needs to be included as well so the subdomain for `dev-6gqkmpt6.us.auth0.com` would be `dev-6gqkmpt6.us`
-
-## Strategy
-
-To use Auth0 in the chat application from the [Feathers guide](../../guides/) we have to do the same modifications as already shown [for the GitHub login in the authentication guide](../../guides/basics/authentication.md).
-
-
-
-
-
-In `src/authentication.ts` like this:
-
-```ts
-import { ServiceAddons, Params } from '@feathersjs/feathers';
-import { AuthenticationService, JWTStrategy } from '@feathersjs/authentication';
-import { LocalStrategy } from '@feathersjs/authentication-local';
-import { oauth, OAuthStrategy, OAuthProfile } from '@feathersjs/authentication-oauth';
-
-import { Application } from './declarations';
-
-declare module './declarations' {
- interface ServiceTypes {
- 'authentication': AuthenticationService & ServiceAddons;
- }
-}
-
-class Auth0Strategy extends OAuthStrategy {
- async getEntityData(profile: OAuthProfile, existing: any, params: Params) {
- const baseData = await super.getEntityData(profile, existing, params);
-
- return {
- ...baseData,
- email: profile.email
- };
- }
-}
-
-export default function(app: Application) {
- const authentication = new AuthenticationService(app);
-
- authentication.register('jwt', new JWTStrategy());
- authentication.register('local', new LocalStrategy());
- authentication.register('auth0', new Auth0Strategy());
-
- app.use('/authentication', authentication);
- app.configure(oauth());
-}
-```
-
-
-
-
-
-In `src/authentication.js` like this:
-
-```js
-const { AuthenticationService, JWTStrategy } = require('@feathersjs/authentication');
-const { LocalStrategy } = require('@feathersjs/authentication-local');
-const { expressOauth, OAuthStrategy } = require('@feathersjs/authentication-oauth');
-
-class Auth0Strategy extends OAuthStrategy {
- async getEntityData(profile) {
- const baseData = await super.getEntityData(profile);
-
- return {
- ...baseData,
- email: profile.email
- };
- }
-}
-
-module.exports = app => {
- const authentication = new AuthenticationService(app);
-
- authentication.register('jwt', new JWTStrategy());
- authentication.register('local', new LocalStrategy());
- authentication.register('auth0', new Auth0Strategy());
-
- app.use('/authentication', authentication);
- app.configure(expressOauth());
-};
-```
-
-
-
-
-
-Additionally, `auth0Id` needs to be included in the data in the users service class.
diff --git a/docs/cookbook/authentication/facebook.md b/docs/cookbook/authentication/facebook.md
deleted file mode 100644
index 0f9504346a..0000000000
--- a/docs/cookbook/authentication/facebook.md
+++ /dev/null
@@ -1,170 +0,0 @@
----
-outline: deep
----
-
-# Facebook
-
-Facebook login can be initialized like any other [OAuth provider](../../api/authentication/oauth.md) by adding the app id and secret to `config/default.json`:
-
-```js
-{
- "authentication": {
- "oauth": {
- "facebook": {
- "key": "",
- "secret": ""
- }
- }
- }
-}
-```
-
-Requesting the email property requires adding additional `scope` to the oauth configuration:
-```js
-{
- "authentication": {
- "oauth": {
- "facebook": {
- "key": "",
- "secret": "",
- "scope": ["email, public_profile"]
- }
- }
- }
-}
-```
-
-## Application client and secret
-
-The client id (App ID) and secret can be found in the Settings of the [Facebook app](https://developers.facebook.com/apps):
-
-
-
-## Getting profile data
-
-The standard OAuth strategy only returns the default profile fields (`id` and `name`). To get other fields, like the email or profile picture, the [getProfile](../../api/authentication/oauth.md#getprofile-data-params) method of the [OAuth strategy needs to be customized](../../api/authentication/oauth.md#customization) to call the Graph API profile endpoint `https://graph.facebook.com/me` with an HTTP request library like [Axios](https://developers.facebook.com/tools/explorer/) requesting the additional fields.
-
-> __Pro tip:__ Facebook API requests can be tested via the [Graph API explorer](https://developers.facebook.com/tools/explorer/).
-
-The following example allows to log in with Facebook in the [chat application from the guide](../../guides/index.md):
-
-
-
-
-
-```ts
-import { Params } from '@feathersjs/feathers';
-import { AuthenticationService, JWTStrategy, AuthenticationRequest } from '@feathersjs/authentication';
-import { LocalStrategy } from '@feathersjs/authentication-local';
-import { expressOauth, OAuthStrategy, OAuthProfile } from '@feathersjs/authentication-oauth';
-import axios from 'axios';
-import { Application } from './declarations';
-
-declare module './declarations' {
- interface ServiceTypes {
- 'authentication': AuthenticationService & ServiceAddons;
- }
-}
-
-class FacebookStrategy extends OAuthStrategy {
- async getProfile (authResult: AuthenticationRequest, _params: Params) {
- // This is the OAuth access token that can be used
- // for Facebook API requests as the Bearer token
- const accessToken = authResult.access_token;
-
- const { data } = await axios.get('https://graph.facebook.com/me', {
- headers: {
- authorization: `Bearer ${accessToken}`
- },
- params: {
- // There are
- fields: 'id,name,email'
- }
- });
-
- return data;
- }
-
- async getEntityData(profile: OAuthProfile, existing: any, params: Params) {
- // `profile` is the data returned by getProfile
- const baseData = await super.getEntityData(profile, existing, params);
-
- return {
- ...baseData,
- email: profile.email
- };
- }
-}
-
-export default function(app: Application) {
- const authentication = new AuthenticationService(app);
-
- authentication.register('jwt', new JWTStrategy());
- authentication.register('local', new LocalStrategy());
- authentication.register('facebook', new FacebookStrategy());
-
- app.use('/authentication', authentication);
- app.configure(expressOauth());
-}
-```
-
-
-
-
-
-In `src/authentication.js`:
-
-```js
-const axios = require('axios');
-const { AuthenticationService, JWTStrategy } = require('@feathersjs/authentication');
-const { LocalStrategy } = require('@feathersjs/authentication-local');
-const { expressOauth, OAuthStrategy } = require('@feathersjs/authentication-oauth');
-
-class FacebookStrategy extends OAuthStrategy {
- async getProfile (authResult) {
- // This is the OAuth access token that can be used
- // for Facebook API requests as the Bearer token
- const accessToken = authResult.access_token;
-
- const { data } = await axios.get('https://graph.facebook.com/me', {
- headers: {
- authorization: `Bearer ${accessToken}`
- },
- params: {
- // There are
- fields: 'id,name,email,picture'
- }
- });
-
- return data;
- }
-
- async getEntityData(profile) {
- // `profile` is the data returned by getProfile
- const baseData = await super.getEntityData(profile);
-
- return {
- ...baseData,
- name: profile.name,
- email: profile.email
- };
- }
-}
-
-module.exports = app => {
- const authentication = new AuthenticationService(app);
-
- authentication.register('jwt', new JWTStrategy());
- authentication.register('local', new LocalStrategy());
- authentication.register('facebook', new FacebookStrategy());
-
- app.use('/authentication', authentication);
- app.configure(expressOauth());
-};
-```
-
-
-
-
-
-> __Pro tip:__ [See all available Facebook user options here](https://developers.facebook.com/docs/graph-api/reference/user/).
diff --git a/docs/cookbook/authentication/firebase.md b/docs/cookbook/authentication/firebase.md
deleted file mode 100644
index 27ed2cca9b..0000000000
--- a/docs/cookbook/authentication/firebase.md
+++ /dev/null
@@ -1,302 +0,0 @@
----
-outline: deep
----
-
-# Firebase
-
-[Firebase](https://firebase.google.com/docs/auth) requires a custom [OAuth Authentication Strategy](../../api/authentication/oauth.html#oauthstrategy). This is because one is not provided to us, by the default [Grant](https://github.com/simov/grant) configuration Feathers uses for [OAuth](https://docs.feathersjs.com/api/authentication/oauth.html#oauth).
-
-Since Firebase does not provide a UI for us to redirect to, we use flow #2 outlined in [OAuth Flow](../../api/authentication/oauth.html#flow).
-
-
-## Authentation Setup
-
-Update `config/default.json`:
-
-```json
-{
- "authentication": {
- "oauth": {}
- },
- "firebase": {
- "type": "THIS SHOULD BE YOUR SERVICE ACCOUNT",
- "project_id": "GENERATED UNDER FIREBASE CONSOLE",
- "...": "..."
- }
-}
-
-```
-> Note: Since Firebase can be used for more than just authentication, we'll store our service account in the root of our config. Otherwise, if preferred, you can store under `authentication.oauth`.
-
-## Authentication Strategy
-
-Create a file under `src/firebase.js`:
-
-```js
-const firebase = require('firebase-admin');
-const { OAuthStrategy } = require('@feathersjs/authentication-oauth');
-const { NotAuthenticated } = require('@feathersjs/errors');
-
-const logger = require('./logger');
-
-function initialize(app){
- const firebaseConfig = app.get('firebase');
-
- // Initialize app
- try {
- firebase.initializeApp({
- credential: firebase.credential.cert(firebaseConfig)
- });
- } catch (e) {
- console.log('erorr initializing firebase', e);
- }
-}
-
-class FirebaseStrategy extends OAuthStrategy {
-
- async authenticate(authentication, params){
- logger.debug('firebase:strategy:authenticate');
- return super.authenticate(authentication, params);
- }
-
- async getProfile(data, _params){
- const firebase = require('firebase-admin');
- let user;
-
- try {
- user = await firebase.auth().verifyIdToken(data.access_token);
- } catch(e){
- logger.error(e);
- throw new NotAuthenticated();
- }
-
- logger.debug(`firebase:strategy:getProfile:successful ${user.user_id}`);
-
- return {
- email: user.email,
- id: user.user_id
- };
- }
-
- async getEntityData(profile) {
- const baseData = await super.getEntityData(profile);
-
- return {
- ...baseData,
- email: profile.email
- };
- }
-}
-
-module.exports = { initialize, FirebaseStrategy };
-```
-
-Now we can edit `src/authentication.js`
-
-```js
-const { AuthenticationService, JWTStrategy } = require('@feathersjs/authentication');
-const { expressOauth } = require('@feathersjs/authentication-oauth');
-
-const { FirebaseStrategy } = require('./firebase');
-
-module.exports = app => {
- const authentication = new AuthenticationService(app);
-
- authentication.register('firebase', new FirebaseStrategy());
-
- app.use('/authentication', authentication);
- app.configure(expressOauth());
-};
-```
-
-## Building frontend
-
-To save time, you can leverage the pre-built UI provided by [Firebase UI](https://firebase.google.com/docs/auth/web/firebaseui).
-
-### Create auth page
-
-First, create a `public/firebase_auth.html` file that initializes everything we'll need for our different auth components.
-
-```html
-
-
-
-
-
- Firebase Authentication Example
-
-
-
-
-
-
-
-
-
-
-
-
-
- Welcome to My Awesome App
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-### Initialize client w/Firebase auth
-Now, let's make a `public/client.js` file where all of our JavaScript will live.
-
-> Be sure to update `firebaseConfig` with the one provided from your [Firebase Console](https://console.firebase.google.com/). Additionally, checkout [Firebase UI](https://firebase.google.com/docs/auth/web/firebaseui) docs for more information on customizing `ui.start`. This includes theming options, all providers supported by Firebase & more.
-
-
-```js
-let client, ui;
-
-init();
-
-function init(){
- initializeFeathers();
- initializeAuth();
- initializeFirebase();
-}
-
-function initializeFeathers(){
- // Establish a Socket.io connection
- const socket = io();
- // Initialize our Feathers client application through Socket.io
- // with hooks and authentication.
- client = feathers();
-
- client.configure(feathers.socketio(socket));
- // Use localStorage to store our login token
- client.configure(feathers.authentication());
-}
-
-// Either re-authenticate existing session, or start Firebase UI
-async function initializeAuth(){
- try {
- await client.reAuthenticate();
- showMemberApp();
- } catch(e){
- // Error re-authenticating, so let's start Firebase UI
- showGuestApp();
- }
-
- // No longer need to prepare anything
- document.getElementById('app-preparing').style.display = 'none';
-}
-
-function initializeFirebase(){
- // Your web app's Firebase configuration
- // For Firebase JS SDK v7.20.0 and later, measurementId is optional
- var firebaseConfig = {
- // Copy this from your Firebase Console
- // Under Project Settings -> Web App
- };
- // Initialize Firebase
- firebase.initializeApp(firebaseConfig);
-
- // Initialize the FirebaseUI Widget using Firebase.
- ui = new firebaseui.auth.AuthUI(firebase.auth());
-}
-
-
-async function showMemberApp(){
- // Get user information
- const { user } = await client.get('authentication');
-
- // Hide Guest App
- document.getElementById('app-guest').style.display = 'none';
-
- // Show member app
- document.getElementById('app-member').style.display = 'block';
- document.getElementById('app-member').innerHTML = `Logged in as, ${user.email}. Logout `;
-
-}
-
-function showGuestApp(){
- // Hide & clear member app
- document.getElementById('app-member').style.display = 'none';
- document.getElementById('app-member').innerHTML = '';
-
- // Show Guest app
- document.getElementById('app-guest').style.display = 'block';
- startFirebaseUI();
-}
-
-function startFirebaseUI(){
- ui.start('#firebaseui-auth-container', {
- callbacks: {
- signInSuccessWithAuthResult: function(authResult, redirectUrl) {
- // User successfully signed in.
- // Return type determines whether we continue the redirect automatically
- // or whether we leave that to developer to handle.
- firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(async function(idToken) {
- await client.authenticate({
- strategy: 'firebase',
- access_token: idToken,
- });
- showMemberApp();
- });
-
- return false;
- },
- uiShown: function() {
- // The widget is rendered.
- // Hide the loader.
- document.getElementById('loader').style.display = 'none';
- }
- },
- // Will use popup for IDP Providers sign-in flow instead of the default, redirect.
- signInFlow: 'popup',
- credentialHelper: firebaseui.auth.CredentialHelper.NONE, // disable accountchooter.com helper
- signInOptions: [
- firebase.auth.EmailAuthProvider.PROVIDER_ID,
- firebase.auth.FacebookAuthProvider.PROVIDER_ID,
- firebase.auth.TwitterAuthProvider.PROVIDER_ID,
- ],
- // Other config options...
- });
-}
-
-const addEventListener = (selector, event, handler) => {
- document.addEventListener(event, async ev => {
- if (ev.target.closest(selector)) {
- handler(ev);
- }
- });
-};
-
-// "Logout" button click handler
-addEventListener('#logout', 'click', async () => {
- await client.logout();
-
- showGuestApp();
-});
-```
-
-Now you should be able to visit your Firebase auth at the
-
-```
-http://localhost:3030/firebase_auth.html
-```
-
-page locally and authenticate w/any Firebase Providers you've set up in your Firebase Project 🔥
diff --git a/docs/cookbook/authentication/google.md b/docs/cookbook/authentication/google.md
deleted file mode 100644
index 32b8330d3c..0000000000
--- a/docs/cookbook/authentication/google.md
+++ /dev/null
@@ -1,114 +0,0 @@
----
-outline: deep
----
-
-# Google
-
-To enable Google login, add the app id, app secret and scope property to `config/default.json`:
-
-```js
-{
- "authentication": {
- "oauth": {
- "google": {
- "key": "",
- "secret": "",
- "scope": ["openid"]
- }
- }
- }
-}
-```
-
-According to the [documentation of Google](https://developers.google.com/identity/protocols/OpenIDConnect#scope-param):
-"The scope value must begin with the string openid and then include profile or email or both.".
-
-
-To also request the email address, add the string "email" to the array of the 'scope' property:
-```js
-{
- "authentication": {
- "oauth": {
- "google": {
- "key": "",
- "secret": "",
- "scope": ["openid", "email"],
- "nonce": true
- }
- }
- }
-}
-```
-
-The property 'nonce', according to the documentation: "A random value generated by your app that enables replay protection.".
-
-## Application client and secret
-
-The client id (App ID) and secret can be acquired by creating a [OAuth client ID](https://console.developers.google.com/apis/credentials):
-1. Click on 'OAuth client ID'
-
-2. Select 'web application', fill in the information and click 'Create'
-
-
-**Important**: Fill in the callback url, in a default Feathers setup it will be /oauth/google/callback.
-
-3. Replace `` and `` with the id and secret of the created OAuth client ID application
-
-```js
-{
- "authentication": {
- "oauth": {
- "google": {
- "key": ".apps.googleusercontent.com",
- "secret": "",
- "scope": ["openid", "email"],
- "nonce": true
- }
- }
- }
-}
-```
-
-Note: Use the generated credentials of the OAuth client ID.
-
-Note: `` will be replaced by a string similar to **481298021138-hv27glb811ocr7pdon5lsg8hh5a6pgjv**.apps.googleusercontent.com.
-
-Note: `` will be replaced by a string similar to **XkWl0witdP4ogeNIgyOi-CeS**.
-
-## Using the data returned from the Google App through a custom OAuth Strategy
-
-In `src/authentication.js`:
-
-```js
-const axios = require('axios');
-const { OAuthStrategy } = require('@feathersjs/authentication-oauth');
-
-class GoogleStrategy extends OAuthStrategy {
- async getEntityData(profile) {
-
- // this will set 'googleId'
- const baseData = await super.getEntityData(profile);
-
- // this will grab the picture and email address of the Google profile
- return {
- ...baseData,
- profilePicture: profile.picture,
- email: profile.email
- };
- }
-}
-
-module.exports = app => {
- const authentication = new AuthenticationService(app);
-
- authentication.register('jwt', new JWTStrategy());
- authentication.register('local', new LocalStrategy());
- authentication.register('google', new GoogleStrategy());
-
- app.use('/authentication', authentication);
- app.configure(expressOauth());
-};
-```
-**Important**: googleId, profilePicture and email are properties that should exist on the database model!
-
-
diff --git a/docs/cookbook/authentication/revoke-jwt.md b/docs/cookbook/authentication/revoke-jwt.md
deleted file mode 100644
index 923f0038b5..0000000000
--- a/docs/cookbook/authentication/revoke-jwt.md
+++ /dev/null
@@ -1,123 +0,0 @@
----
-outline: deep
----
-
-# Revoking JWTs
-
-By default a valid JWT can be used for as long as it is valid. To do a normal logout the client just "forgets" their JWT (usually by removing it from localStorage).
-
-To add the ability to revoke an access token so that it can be no longer used even if it is still valid [the authentication service](../../api/authentication/service.md) can be customized as follows.
-
-## Basic example
-
-The following example shows the basic flow of how a JWT can be revoked by storing it in a plain object. In a normal application you would use something like the [Redis storage shown below](#using-redis).
-
-```js
-const { AuthenticationService } = require('@feathersjs/authentication');
-const { NotAuthenticated } = require('@feathersjs/errors');
-
-const revokedTokens = {};
-
-class RevokableAuthService extends AuthenticationService {
- async revokeAccessToken (accessToken) {
- // First make sure the access token is valid
- const verified = await this.verifyAccessToken(accessToken);
-
- revokedTokens[accessToken] = true;
-
- return verified;
- }
-
- async verifyAccessToken(accessToken) {
- // First check if the token has been revoked
- if (revokedTokens[accessToken]) {
- throw new NotAuthenticated('Token revoked');
- }
-
- return super.verifyAccessToken(accessToken);
- }
-
- async remove (id, params) {
- const authResult = await super.remove(id, params);
- const { accessToken } = authResult;
-
- if (accessToken) {
- // If there is an access token, revoke it
- await this.revokeAccessToken(accessToken);
- }
-
- return authResult;
- }
-}
-
-app.use('/authentication', new RevokableAuthService(app));
-```
-
-## Using Redis
-
-[Redis](https://redis.io/) is a great storage mechanism for revoked JWTs because it allows to remove keys after a certain time. A revoked JWT does not have to be stored forever and can be removed from storage after it has expired since it will no longer be valid anyway. The flow is the same as shown above but using the NodeJS Redis adapter instead:
-
-```
-npm install redis
-```
-
-```js
-const redis = require('redis');
-
-const { AuthenticationService } = require('@feathersjs/authentication');
-const { NotAuthenticated } = require('@feathersjs/errors');
-
-class RedisAuthService extends AuthenticationService {
- constructor (app, configKey) {
- super(app, configKey);
-
- const client = redis.createClient();
-
- this.redis = {
- client,
- get: client.get.bind(client),
- set: client.set.bind(client),
- exists: client.exists.bind(client),
- expireat: client.exists.bind(client)
- }
-
- (async () => {
- await this.redis.client.connect();
- })()
- }
-
- async revokeAccessToken (accessToken) {
- // First make sure the access token is valid
- const verified = await this.verifyAccessToken(accessToken);
- // Calculate the remaining valid time for the token (in seconds)
- const expiry = verified.exp - Math.floor(Date.now() / 1000);
-
- // Add the revoked token to Redis and set expiration
- await this.redis.set(accessToken, 1, { EX: expiry });
-
- return verified;
- }
-
- async verifyAccessToken(accessToken) {
- if (await this.redis.exists(accessToken)) {
- throw new NotAuthenticated('Token revoked');
- }
-
- return super.verifyAccessToken(accessToken);
- }
-
- async remove (id, params) {
- const authResult = await super.remove(id, params);
- const { accessToken } = authResult;
-
- if (accessToken) {
- // If there is an access token, revoke it
- await this.revokeAccessToken(accessToken);
- }
-
- return authResult;
- }
-}
-
-app.use('/authentication', new RedisAuthService(app));
-```
diff --git a/docs/cookbook/authentication/stateless.md b/docs/cookbook/authentication/stateless.md
deleted file mode 100644
index 6f4853b248..0000000000
--- a/docs/cookbook/authentication/stateless.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-outline: deep
----
-
-# Stateless JWT
-
-By default, an authentication token is associated to an entity (usually a user). It is also possible to issue tokens that are stateless and not tied to an entity lookup. This can be useful when all the information necessary can be contained in the token payload. The drawback is that the token information can not be changed and will always be valid until the token expires so it is e.g. not possible to disable a user or change their permissions before the token expires.
-
-## Configuration
-
-Stateless tokens can be issued by setting the `entity` option in the [JWT strategy authentication configuration](../../api/authentication/jwt.md#configuration) to `null` (in which case `service` option also won't be used):
-
-```json
-{
- "authentication": {
- "secret": "CHANGE_ME",
- "entity": null,
- "authStrategies": [ "jwt", "local" ],
- "jwtOptions": {
- "header": { "typ": "access" },
- "audience": "https://yourdomain.com",
- "issuer": "feathers",
- "algorithm": "HS256",
- "expiresIn": "1d"
- }
- }
-}
-```
-
-> __Note:__ When still using other built-in strategies (like the [local strategy](../../api/authentication/local.md)) with an entity, the option can be set for each strategy (e.g. `{ "authentication": { "local": { "entity": "user" } } }`).
-
-## Customizing the payload
-
-In order for the token to contain information, the `getPayload` method needs to be customize by [extending the authentication service](../../api/authentication/service.md#customization):
-
-```js
-const { AuthenticationService } = require('@feathersjs/authentication');
-
-class MyAuthService extends AuthenticationService {
- async getPayload(authResult, params) {
- // Call original `getPayload` first
- const payload = await super.getPayload(authResult, params);
- const { user } = authResult;
-
- if (user && user.permissions) {
- payload.permissions = user.permissions;
- }
-
- return payload;
- }
-}
-
-app.use('/authentication', new MyAuthService(app));
-```
diff --git a/docs/cookbook/deploy/docker.md b/docs/cookbook/deploy/docker.md
deleted file mode 100644
index 850bfa2222..0000000000
--- a/docs/cookbook/deploy/docker.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-outline: deep
----
-
-# Dockerize a Feathers application
-
-A Feathers application can be [dockerized like any other Node.js application](https://nodejs.org/en/docs/guides/nodejs-docker-webapp/).
-
-## Create an app
-
-```sh
-mkdir feathers-app
-cd feathers-app/
-feathers generate app
-```
-
-### Dockerfile
-
-Add the following `Dockerfile` to the project directory:
-
-```
-FROM node:lts-alpine
-
-WORKDIR /usr/src/app
-
-COPY package*.json ./
-
-RUN npm install
-
-COPY . .
-
-EXPOSE 3030
-
-CMD ["npm", "run", "start"]
-```
-
-## Build the image
-
-```sh
-docker build -t my-feathers-image .
-```
-
-## Start the container
-
-```sh
-docker run -d -p 3030:3030 --name my-feathers-container my-feathers-image
-```
diff --git a/docs/cookbook/express/file-uploading.md b/docs/cookbook/express/file-uploading.md
deleted file mode 100644
index edc85a268c..0000000000
--- a/docs/cookbook/express/file-uploading.md
+++ /dev/null
@@ -1,342 +0,0 @@
----
-outline: deep
----
-
-# File uploads in FeathersJS
-
-Over the last months we at [ciancoders.com](https://ciancoders.com/) have been working in a new SPA project using Feathers and React, the combination of those two turns out to be **just amazing**.
-
-Recently we were struggling to find a way to upload files without having to write a separate Express middleware or having to (re)write a complex Feathers service.
-
-## Our Goals
-
-We want to implement an upload service to accomplish a few important things:
-
-1. It has to handle large files (+10MB).
-2. It needs to work with the app's authentication and authorization.
-3. The files need to be validated.
-4. At the moment there is no third party storage service involved, but this will change in the near future, so it has to be prepared.
-5. It has to show the upload progress.
-
-The plan is to upload the files to a feathers service so we can take advantage of hooks for authentication, authorization and validation, and for service events.
-
-Fortunately, there exists a file storage service: [feathers-blob](https://github.com/feathersjs/feathers-blob). With it we can meet our goals, but (spoiler alert) it isn't an ideal solution. We discuss some of its problems below.
-
-
-## Basic upload with feathers-blob and feathers-client
-
-For the sake of simplicity, we will be working over a very basic feathers server, with just the upload service.
-
-Lets look at the server code:
-
-```javascript
-/* --- server.js --- */
-
-const feathers = require('@feathersjs/feathers');
-const express = require('@feathersjs/express');
-const socketio = require('@feathersjs/socketio');
-
-// feathers-blob service
-const blobService = require('feathers-blob');
-// Here we initialize a FileSystem storage,
-// but you can use feathers-blob with any other
-// storage service like AWS or Google Drive.
-const fs = require('fs-blob-store');
-const blobStorage = fs(__dirname + '/uploads');
-
-
-// Feathers app
-const app = express(feathers());
-
-// Parse HTTP JSON bodies
-app.use(express.json());
-// Parse URL-encoded params
-app.use(express.urlencoded({ extended: true }));
-// Add REST API support
-app.configure(express.rest());
-// Configure Socket.io real-time APIs
-app.configure(socketio());
-
-
-// Upload Service
-app.use('/uploads', blobService({Model: blobStorage}));
-
-
-// Register a nicer error handler than the default Express one
-app.use(express.errorHandler());
-
-// Start the server
-app.listen(3030, function(){
- console.log('Feathers app started at localhost:3030')
-});
-```
-
-Let's look at this implemented in the `@feathersjs/cli` generated server code:
-
-```javascript
-/* --- /src/services/uploads/uploads.service.js --- */
-
-// Initializes the `uploads` service on path `/uploads'
-
-const createModel = require('../../models/uploads.model');
-const hooks = require('./uploads.hooks');
-const filters = require('./uploads.filters');
-
-
-// feathers-blob service
-const blobService = require('feathers-blob');
-// Here we initialize a FileSystem storage,
-// but you can use feathers-blob with any other
-// storage service like AWS or Google Drive.
-const fs = require('fs-blob-store');
-
-
-// File storage location. Folder must be created before upload.
-// Example: './uploads' will be located under feathers app top level.
-const blobStorage = fs('./uploads');
-
-module.exports = function() {
- const app = this;
- const Model = createModel(app);
- const paginate = app.get('paginate');
-
- // Initialize our service with any options it requires
- app.use('/uploads', blobService({ Model: blobStorage}));
-
- // Get our initialized service so that we can register hooks and filters
- const service = app.service('uploads');
-
- service.hooks(hooks);
-
- if (service.filter) {
- service.filter(filters);
- }
-};
-```
-
-`feathers-blob` works over abstract-blob-store, which is an abstract interface to various storage backends, such as filesystem, AWS, or Google Drive. It only accepts and retrieves files encoded as dataURI strings.
-
-Just like that we have our backend ready, go ahead and POST something to localhost:3030/uploads`, for example with postman:
-
-```json
-{
- 'uri': 'data:image/gif;base64,R0lGODlhEwATAPcAAP/+//7/////+////fvzYvryYvvzZ/fxg/zxWfvxW/zwXPrtW/vxXvfrXv3xYvrvYvntYvnvY/ruZPrwZPfsZPjsZfjtZvfsZvHmY/zxavftaPrvavjuafzxbfnua/jta/ftbP3yb/zzcPvwb/zzcfvxcfzxc/3zdf3zdv70efvwd/rwd/vwefftd/3yfPvxfP70f/zzfvnwffvzf/rxf/rxgPjvgPjvgfnwhPvzhvjvhv71jfz0kPrykvz0mv72nvblTPnnUPjoUPrpUvnnUfnpUvXlUfnpU/npVPnqVPfnU/3uVvvsWPfpVvnqWfrrXPLiW/nrX/vtYv7xavrta/Hlcvnuf/Pphvbsif3zk/zzlPzylfjuk/z0o/LqnvbhSPbhSfjiS/jlS/jjTPfhTfjlTubUU+/iiPPokfrvl/Dll/ftovLWPfHXPvHZP/PbQ/bcRuDJP/PaRvjgSffdSe3ddu7fge7fi+zkuO7NMvPTOt2/Nu7SO+3OO/PWQdnGbOneqeneqvDqyu3JMuvJMu7KNfHNON7GZdnEbejanObXnOW8JOa9KOvCLOnBK9+4Ku3FL9ayKuzEMcenK9e+XODOiePSkODOkOW3ItisI9yxL+a9NtGiHr+VH5h5JsSfNM2bGN6rMJt4JMOYL5h4JZl5Jph3Jpl4J5h5J5h3KJl4KZp5Ks+sUN7Gi96lLL+PKMmbMZt2Jpp3Jpt3KZl4K7qFFdyiKdufKsedRdm7feOpQN2QKMKENrpvJbFfIrNjJL1mLMBpLr9oLrFhK69bJFkpE1kpFYNeTqFEIlsoFbmlnlsmFFwpGFkoF/////7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAANAALAAAAAATABMAAAj/AKEJHCgokKJKlhThGciQYSIva7r8SHPFzqGGAwPd4bKlh5YsPKy0qFLnT0NAaHTcsIHDho0aKkaAwGCGEkM1NmSkIjWLBosVJT6cOjUrzsBKPl54KmYsACoTMmk1WwaA1CRoeM7siJEqmTIAsjp40ICK2bEApfZcsoQlxwxRzgI8W8XhgoVYA+Kq6sMK0QEYKVCUkoVqQwQJFTwFEAAAFZ9PlFy4OEEiRIYJD55EodDA1ClTbPp0okRFxBQDBRgskAKhiRMlc+Sw4SNpFCIoBBwkUMBkCBIiY8qAgcPG0KBHrBTFQbCEV5EjQYQACfNFjp5CgxpxagVtUhIjwzaJYSHzhQ4cP3ryQHLEqJbASnu+6EIW6o2b2X0ISXK0CFSugazs0YYmwQhziyuE2PLLIv3h0hArkRhiCCzAENOLL7tgAoqDGLXSSSaPMLIIJpmAUst/GA3UCiuv1PIKLtw1FBAAOw=='
-}
-```
-
-The service will respond with something like this:
-
-```json
-{
- 'id': '6454364d8facd7a88e627e4c4b11b032d2f83af8f7f9329ffc2b7a5c879dc838.gif',
- 'uri': 'the-same-uri-we-uploaded',
- 'size': 1156
-}
-```
-
-Or we can implement a very basic frontend with `feathers-client` and `jQuery`:
-
-```html
-
-
-
- Feathersjs File Upload
-
-
-
-
-
-
- Let's upload some files!
-
-
-
-
-```
-
-This code watches for file selection, then encodes it and does an ajax post to upload it, watching the upload progress via the xhr object. Everything works as expected.
-
-Every file we select gets uploaded and saved to the `./uploads` directory.
-
-Work done!, let's call it a day, shall we?
-
-... But hey, there is something that doesn't feel quite right ...right?
-
-### DataURI upload problems
-
-It doesn't feel right because it is not. Let's imagine what would happen if we try to upload a large file, say 25MB or more: The entire file (plus some extra MB due to the encoding) has to be kept in memory for the entire upload process, this could look like nothing for a normal computer but for mobile devices it's a big deal.
-
-We have a big RAM consumption problem. Not to mention we have to encode the file before sending it...
-
-The solution would be to modify the service, adding support for splitting the dataURI into small chunks, then uploading one at a time, collecting and reassembling everything on the server. But hey, it's not that the same thing browsers and web servers have been doing since maybe the very early days of the web? Maybe since Netscape Navigator?
-
-Well, actually it is, and doing a `multipart/form-data` post is still the easiest way to upload a file.
-
-
-## Feathers-blob with multipart support.
-
-Back with the backend, in order to accept multipart uploads, we need a way to handle the `multipart/form-data` received by the web server. Given that Feathers behaves like Express, let's just use `multer` and a custom middleware to handle that.
-
-``` javascript
-/* --- server.js --- */
-const multer = require('multer');
-const multipartMiddleware = multer();
-
-// Upload Service with multipart support
-app.use('/uploads',
-
- // multer parses the file named 'uri'.
- // Without extra params the data is
- // temporarely kept in memory
- multipartMiddleware.single('uri'),
-
- // another middleware, this time to
- // transfer the received file to feathers
- function(req,res,next){
- req.feathers.file = req.file;
- next();
- },
- blobService({Model: blobStorage})
-);
-```
-
-Notice we kept the file field name as *uri* just to maintain uniformity, as the service will always work with that name anyways, but you can change it if you prefer.
-
-Feathers-blob only understands files encoded as dataURI, so we need to convert them first. Let's make a Hook for that:
-
-```javascript
-/* --- server.js --- */
-const dauria = require('dauria');
-
-// before-create Hook to get the file (if there is any)
-// and turn it into a datauri,
-// transparently getting feathers-blob to work
-// with multipart file uploads
-app.service('/uploads').before({
- create: [
- function(context) {
- if (!context.data.uri && context.params.file){
- const file = context.params.file;
- const uri = dauria.getBase64DataURI(file.buffer, file.mimetype);
- context.data = {uri: uri};
- }
- }
- ]
-});
-```
-
-*Et voilà!*. Now we have a FeathersJS file storage service working, with support for traditional multipart uploads, and a variety of storage options to choose.
-
-**Simply awesome.**
-
-
-## Further improvements
-
-The service always returns the dataURI back to us, which may not be necessary as we just uploaded the file. We also need to validate the file and check for authorization.
-
-All those things can be easily done with more Hooks, and that's the benefit of keeping all inside FeathersJS services. I leave that to you.
-
-For the frontend, there is a problem with the client: in order to show the upload progress it's stuck with only REST functionality and not real-time with socket.io.
-
-The solution is to switch `feathers-client` from REST to `socket.io`, and just use wherever you like for uploading the files, that's an easy task now that we are able to do a traditional `form-multipart` upload.
-
-Here is an example using dropzone:
-
-```html
-
-
-
- Feathersjs File Upload
-
-
-
-
-
-
-
-
-
-
- Let's upload some files!
-
-
-
-```
-
-All the code is available via github here: https://github.com/CianCoders/feathers-example-fileupload
-
-
-Hope you have learned something today, as I learned a lot writing this.
-
-Cheers!
diff --git a/docs/cookbook/express/view-engine.md b/docs/cookbook/express/view-engine.md
deleted file mode 100644
index eca17e3585..0000000000
--- a/docs/cookbook/express/view-engine.md
+++ /dev/null
@@ -1,108 +0,0 @@
----
-outline: deep
----
-
-# Server Side Rendering
-
-Since Feathers is just an extension of Express it's really simple to render templated views on the server with data from your Feathers services. There are a few different ways that you can structure your app so this guide will show you 3 typical ways you might have your Feathers app organized.
-
-## Rendering views from services
-
-You probably already know that when you register a Feathers service, Feathers creates RESTful endpoints for that service automatically. Well, really those are just Express routes, so you can define your own as well.
-
-> **ProTip:** Your own defined REST endpoints won't work with hooks and won't emit socket events. If you find you need that functionality it's probably better for you to turn your endpoints into a minimal Feathers service.
-
-Let's say you want to render a list of messages from most recent to oldest using the [Pug](https://pugjs.org/) template engine.
-
-```js
-// You've set up your main Feathers app already
-
-// Register your view engine
-app.set('view engine', 'pug');
-
-// Register your message service
-app.use('/api/messages', memory());
-
-// Inside your main Feathers app
-app.get('/messages', function(req, res, next){
- // You namespace your feathers service routes so that
- // don't get route conflicts and have nice URLs.
- app.service('api/messages')
- .find({ query: {$sort: { updatedAt: -1 } } })
- .then(result => res.render('message-list', result.data))
- .catch(next);
-});
-```
-
-Simple right? We've now rendered a list of messages using the `/views/message-list.pug` view template. All your hooks will get triggered just like they would normally so you can use hooks to pre-filter your data and keep your template rendering routes super tight. See [Using Template Engines with Express](https://expressjs.com/en/guide/using-template-engines.html) for more information.
-
-> **ProTip:** If you call a Feathers service "internally" (ie. not over sockets or REST) you won't have a `context.params.provider` attribute. This allows you to have hooks only execute when services are called externally vs. from your own code.
-
-## Using authentication
-
-Feathers is by default stateless and does not use any sessions. You already can protect Express endpoints with the [express.authenticate](../../api/express.md#express-authenticate) middleware, however this will only work when passing the `Authorization` header (usually with a JWT) which a normal browser request does not support.
-
-In order to render authenticated pages, [express-session](https://www.npmjs.com/package/express-session) can be used to add the authentication information to the (browser) session:
-
-> npm i express-session --save
-
-Now you can add the following to `src/middleware/index.js|ts`:
-
-```js
-const session = require('express-session');
-const { authenticate } = require('@feathersjs/express');
-
-// This sets `req.authentication` from the information added to the session
-const setSessionAuthentication = (req, res, next) => {
- req.authentication = req.session.authentication;
- next();
-};
-
-module.exports = function (app) {
- // Initialize Express-session - might have to be configured
- // with a persisten storage adapter (like Redis)
- app.use(session({
- secret: 'session-secret',
- saveUninitialized: false,
- resave: true
- }));
-
- // An endpoint that you can POST to with `email` and `password` that
- // will then perform a local user authentication
- // e.g
- app.post('/login', async (req, res, next) => {
- try {
- const { email, password } = req.body;
- // Run normal local authentication through our service
- const { accessToken } = await app.service('authentication').create({
- strategy: 'local',
- email,
- password
- });
-
- // Register the JWT authentication information on the session
- req.session.authentication = {
- strategy: 'jwt',
- accessToken
- };
-
- // Redirect to an authenticated page
- res.redirect('/hello');
- } catch (error) {
- next(error);
- }
- });
-
- // Remove the authentication information from the session to log out
- app.get('logout', (req, res) => {
- delete req.session.authentication;
- res.end('You are now logged out');
- });
-
- // Renders an authenticated page or an 401 error page
- // Always needs `setSessionAuthentication, authenticate('jwt')` middleware first
- app.get('/hello', setSessionAuthentication, authenticate('jwt'), (req, res) => {
- res.end(`Authenticated page with user ${req.user.email}`);
- });
-};
-```
diff --git a/docs/cookbook/general/client-test.md b/docs/cookbook/general/client-test.md
deleted file mode 100644
index 46085fa7c8..0000000000
--- a/docs/cookbook/general/client-test.md
+++ /dev/null
@@ -1,122 +0,0 @@
----
-outline: deep
----
-
-# Client/server testing
-
-You can write tests which start up both a server for your app, and a Feathers client which your test can use to call the server. Such tests can expose faults in the interaction between the client and the server. They are also useful in testing the authentication of requests from the client. Install it as a development dependency:
-
-```
-npm install @feathersjs/client --save-dev
-```
-
-Test `test/services/users.test.js` from above runs on the server. We convert it, in the following `tests/services/client-users.test.js`, so the tests are run on the client instead of on the server. This also causes client authentication to be tested.
-
-```js
-const assert = require('assert');
-const feathersClient = require('@feathersjs/client');
-const io = require('socket.io-client');
-const app = require('../../src/app');
-
-const host = app.get('host');
-const port = app.get('port');
-const email = 'login@example.com';
-const password = 'login';
-
-describe('\'users\' service - client', function () {
- this.timeout(10000);
- let server;
- let client;
-
- before(async () => {
- await app.service('users').create({ email, password });
-
- server = app.listen(port);
- server.on('listening', async () => {
- // eslint-disable-next-line no-console
- console.log('Feathers application started on http://%s:%d', host, port);
- });
-
- client = await makeClient(host, port, email, password);
- });
-
- after(() => {
- client.logout();
- server.close();
- });
-
- describe('Run tests using client and server', () => {
- it('registered the service', () => {
- const service = client.service('users');
-
- assert.ok(service, 'Registered the service');
- });
-
- it('creates a user, encrypts password and adds gravatar', async () => {
- const user = await client.service('users').create({
- email: 'testclient@example.com',
- password: 'secret'
- });
-
- // Verify Gravatar has been set to what we'd expect
- assert.equal(user.avatar, 'https://s.gravatar.com/avatar/1b9c869fa7a93e59463c31a377fe0cf6?s=60');
- // Makes sure the password got encrypted
- assert.ok(user.password !== 'secret');
- });
-
- it('removes password for external requests', async () => {
- // Setting `provider` indicates an external request
- const params = { provider: 'rest' };
-
- const user = await client.service('users').create({
- email: 'testclient2@example.com',
- password: 'secret'
- }, params);
-
- // Make sure password has been removed
- assert.ok(!user.password);
- });
- });
-});
-
-async function makeClient(host, port, email, password) {
- const client = feathersClient();
- const socket = io(`http://${host}:${port}`, {
- transports: ['websocket'], forceNew: true, reconnection: false, extraHeaders: {}
- });
- client.configure(feathersClient.socketio(socket));
- client.configure(feathersClient.authentication({
- storage: localStorage()
- }));
-
- await client.authenticate({
- strategy: 'local',
- email,
- password,
- });
-
- return client;
-}
-
-function localStorage () {
- const store = {};
-
- return {
- setItem (key, value) {
- store[key] = value;
- },
- getItem (key) {
- return store[key];
- },
- removeItem (key) {
- delete store[key];
- }
- };
-}
-```
-
-We first make a call on the *server* to create a new user. We then start up a server for our app. Finally the function `makeClient` is called to create a Feathers client and authenticate it using the newly created user.
-
-The individual tests remain unchanged except that the service calls are now made on the client (`client.service(...).create`) instead of on the server (`app.service(...).create`).
-
-The `describe('Run tests using client and server',` statement stops a new server and client from being created for each test. This results in the test module running noticeably faster, though the tests are now exposed to potential interactions. You can remove the statement to isolate the tests from one another.
\ No newline at end of file
diff --git a/docs/cookbook/general/scaling.md b/docs/cookbook/general/scaling.md
deleted file mode 100644
index 06579a7dc1..0000000000
--- a/docs/cookbook/general/scaling.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-outline: deep
----
-
-# Scaling
-
-Depending on your requirements, your feathers application may need to provide high availability. Feathers is designed to scale.
-
-The types of transports used in a feathers application will impact the scaling configuration. For example, a feathers app that uses the `feathers-rest` adapter exclusively will require less scaling configuration because HTTP is a stateless protocol. If using websockets (a stateful protocol) through the `feathers-socketio` or `feathers-primus` adapters, configuration may be more complex to ensure websockets work properly.
-
-## Horizontal Scaling
-
-Scaling horizontally refers to either:
-
-- setting up a [cluster](https://nodejs.org/api/cluster.html), or
-- adding more machines to support your application
-
-To achieve high availability, varying combinations of both strategies may be used.
-
-## Cluster configuration
-
-[Cluster](https://nodejs.org/api/cluster.html) support is built into core NodeJS. Since NodeJS is single threaded, clustering allows you to easily distribute application requests among multiple child processes (and multiple threads). Clustering is a good choice when running feathers in a multi-core environment.
-
-Below is an example of adding clustering to feathers with the `feathers-socketio` provider. By default, websocket connections begin via a handshake of multiple HTTP requests and are upgraded to the websocket protocol. However, when clustering is enabled, the same worker will not process all HTTP requests for a handshake, leading to HTTP 400 errors. To ensure a successful handshake, force a single worker to process the handshake by disabling the http transport and exclusively using the `websocket` transport.
-
-```js
-import cluster from 'cluster';
-import feathers from '@feathersjs/feathers';
-import socketio from '@feathersjs/socketio';
-
-const CLUSTER_COUNT = 4;
-
-if (cluster.isMaster) {
- for (let i = 0; i < CLUSTER_COUNT; i++) {
- cluster.fork();
- }
-} else {
- const app = feathers();
- // ensure the same worker handles websocket connections
- app.configure(socketio({
- transports: ['websocket']
- }));
- app.listen(4000);
-}
-```
-
-In your feathers client code, limit the socket.io-client to the `websocket` transport and disable `upgrade`.
-
-```js
-import feathers from '@feathersjs/client';
-import socketio from '@feathersjs/socketio-client';
-import io from 'socket.io-client';
-
-const app = feathers()
- .configure(socketio(
- io('http://api.feathersjs.com', {
- transports: ['websocket'],
- upgrade: false
- })
- ));
-```
-## Multiple instances
-When running multiple instances of your Feathers application (e.g. on several Heroku Dynos), service events (created, updated, patched, removed and any custom defined events) do not get propagated to other instances for such cases you may want to use: https://github.com/feathersjs-ecosystem/feathers-sync
-
-Which will use a messaging mechanism to propagate all events to all application instances like redis or RabbitMQ
-
diff --git a/docs/cookbook/index.md b/docs/cookbook/index.md
deleted file mode 100644
index 1c74d42963..0000000000
--- a/docs/cookbook/index.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-outline: deep
----
-
-# The Feathers cookbook
-
-This cookbook contains a growing collection of recipes for common tasks you might run into with Feathers. Make sure you have [followed the Feathers guide first](../guides/) before jumping into the cookbook.
-
-Have a recipe idea? [Submit an issue with a suggestion](https://github.com/feathersjs/docs/issues/new?title=Cookbook%20Suggestion:).
diff --git a/docs/ecosystem/PackageCard.vue b/docs/ecosystem/PackageCard.vue
deleted file mode 100644
index af041f3066..0000000000
--- a/docs/ecosystem/PackageCard.vue
+++ /dev/null
@@ -1,132 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
{{ stats.downloads && nFormatter(stats.downloads) }}
-
-
-
-
{{ nFormatter(stats.stars) }}
-
-
-
- {{ formatDistance(stats.lastPublish, new Date()) }}
-
-
-
-
-
-
{{ stats.license }}
-
-
- Github
-
-
-
- npm
-
-
-
-
- This package seems to be unmaintained. Please use with caution and consider taking over the
- maintenance! Please contact us if you want to over discord! ❤️
-
- {{ stats.description }}
-
-
-
-
-
-
diff --git a/docs/ecosystem/Packages.vue b/docs/ecosystem/Packages.vue
deleted file mode 100644
index d62712bab9..0000000000
--- a/docs/ecosystem/Packages.vue
+++ /dev/null
@@ -1,239 +0,0 @@
-
-
-
-
-
-
-
- core ({{ coreCount }})
- outdated ({{ oldCount }})
-
-
-
- {{ option.label }} ({{ countByCategory[option.label] }})
-
-
-
-
-
- Downloads
- Stars
- Newest
-
-
-
-
{{ packagesToShow.length }}/{{ fetchedPackages.length }} packages:
-
-
-
-
-
-
diff --git a/docs/ecosystem/helpers.ts b/docs/ecosystem/helpers.ts
deleted file mode 100644
index 25d659481d..0000000000
--- a/docs/ecosystem/helpers.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-export function nFormatter(num: number, digits?: number) {
- const lookup = [
- { value: 1, symbol: '' },
- { value: 1e3, symbol: 'k' },
- { value: 1e6, symbol: 'M' },
- { value: 1e9, symbol: 'G' },
- { value: 1e12, symbol: 'T' },
- { value: 1e15, symbol: 'P' },
- { value: 1e18, symbol: 'E' }
- ]
- const rx = /\.0+$|(\.[0-9]*[1-9])0+$/
- const item = lookup
- .slice()
- .reverse()
- .find(function (item) {
- return num >= item.value
- })
- return item ? (num / item.value).toFixed(digits).replace(rx, '$1') + item.symbol : '0'
-}
-
-export const uniqBy = (arr: T[], selector: (item: T) => V) => {
- const map = new Map()
- arr.forEach((item) => {
- const prop = selector(item)
- if (!map.has(prop)) map.set(prop, item)
- })
- return [...map.values()]
-}
diff --git a/docs/ecosystem/index.md b/docs/ecosystem/index.md
deleted file mode 100644
index 37965dd9d2..0000000000
--- a/docs/ecosystem/index.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-lastUpdated: false
----
-
-
-
-# FeathersJS Ecosystem
-
-## The Feathers Flightpath Blog
-
-Catch up on the latest FeathersJS news and community-contributed articles on the [Feathers Flightpath Blog](https://blog.feathersjs.com/).
-
-## YouTube Playlist
-
-Watch the [FeathersJS Playlist on YouTube](https://www.youtube.com/playlist?list=PLwSdIiqnDlf_lb5y1liQK2OW5daXYgKOe).
-
-## Awesome Packages
-
-This is a curated list of feathers packages. You can sort by various criteria. Core packages are hidden by default.
-
-
-
-
-
-
diff --git a/docs/ecosystem/types.ts b/docs/ecosystem/types.ts
deleted file mode 100644
index 1a314f8e8c..0000000000
--- a/docs/ecosystem/types.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-export type PackageInput = {
- npm: string
- repo: string
-}
-
-export type PackagesInput = Record
-
-export type PackageOutput = {
- id: string
- name: string
- description: string
- keywords: string[]
- /** npm license */
- license: string
- /** npm version */
- version: string
- /** npm monthly downloads */
- downloads: number
- /** npm last published Date */
- lastPublish: Date
- /** npm last published Date as unix */
- lastPublishUnix: number
- /** github: stars count */
- stars: number
- /** github: open issues count */
- issues: number
- /** github: age of repo */
- createdAt: Date
- /** github: name of the owner */
- ownerName: string
- /** github: url of the users avatar */
- ownerAvatar: string
- /** github: url of the repo */
- ghLink: string
- hasNPM: boolean
- /** npm: url of the package */
- npmLink: string
- repository: {
- name: string
- directory: string
- }
-}
diff --git a/docs/ecosystem/useQuery.ts b/docs/ecosystem/useQuery.ts
deleted file mode 100644
index f1609a2f40..0000000000
--- a/docs/ecosystem/useQuery.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-import { Ref, watch } from 'vue'
-import queryString from 'query-string'
-
-type MaybeArray = T | T[]
-
-type FieldType = MaybeArray<'string' | 'number' | 'boolean'>
-
-export const useQuery = (reference: Ref, field: string) => {
- function getQuery() {
- return queryString.parse(window.location.search, {
- parseNumbers: true,
- parseBooleans: true,
- arrayFormat: 'none'
- })
- }
-
- function getFromUrl() {
- const q = getQuery()
- const result = q[field]
- // explicitly return false instead of undefined
- if (typeof reference.value === 'boolean' && !result) {
- return false
- }
- if (result == null) return
- if (Array.isArray(reference.value)) {
- return Array.isArray(result) ? result : [result]
- }
- return result
- }
-
- const fromUrl = getFromUrl()
-
- if (fromUrl != null) {
- // @ts-expect-error arbitrary type
- reference.value = fromUrl
- }
-
- function setToUrl(val: any) {
- const q = getQuery()
- if (val && (!Array.isArray(reference.value) || (Array.isArray(val) && val.length > 0))) {
- q[field] = val
- } else {
- delete q[field]
- }
- const prepend = Object.keys(q).length ? '?' : ''
- const newQuery = `${prepend}${queryString.stringify(q, { skipNull: true })}`
- window.history.replaceState(null, '', newQuery)
- }
-
- watch(
- reference,
- (val) => {
- setToUrl(val)
- },
- { immediate: true }
- )
-}
diff --git a/docs/feathers-vs-firebase.md b/docs/feathers-vs-firebase.md
deleted file mode 100644
index d85e5aea15..0000000000
--- a/docs/feathers-vs-firebase.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Feathers vs Firebase
-
-Firebase is a hosted platform for mobile or web applications. Just like Feathers, Firebase provides REST and real-time APIs but also includes CDN support. Feathers on the other hand leaves setting up a CDN and hosting your Feathers app up to the developer.
-
-Firebase is a closed-source, paid hosted service starting at $5/month with the next plan level starting at $49/month. Feathers is open source and can run on any hosting platform like Heroku, Modulus or on your own servers like Amazon AWS, Microsoft Azure, Digital Ocean and your local machine. Because Firebase can't be run locally you typically need to pay for both a shared development environment on top of any production and testing environment.
-
-Firebase has JavaScript and mobile clients and also provides framework specific bindings. Feathers currently focuses on universal usage in JavaScript environments and does not have any framework specific bindings. Mobile applications can use Feathers REST and websocket endpoints directly but at the moment there are no Feathers specific iOS and Android SDKs.
-
-Firebase currently supports offline mode whereas that is currently left up to the developer with Feathers.
-
-Both Firebase and Feathers support email/password, token, and OAuth authentication. Firebase has not publicly disclosed the database technology they use to store your data behind their API but it seems to be an SQL variant. Feathers supports multiple databases, NoSQL and SQL alike.
-
-For more technical details on the difference and how to potentially migrate an application you can read [how to use Feathers as an open source alternative to Firebase](https://medium.com/all-about-feathersjs/using-feathersjs-as-an-open-source-alternative-to-firebase-b5d93c200cee#.olu25brld).
\ No newline at end of file
diff --git a/docs/feathers-vs-loopback.md b/docs/feathers-vs-loopback.md
deleted file mode 100644
index 61ce871e79..0000000000
--- a/docs/feathers-vs-loopback.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Feathers vs LoopBack
-
-Both LoopBack, and Feathers are frameworks primarily meant for building APIs, and mediating between front-end clients, and backend data sources.
-
-LoopBack is maintained by StrongLoop (an IBM company); while Feathers is community maintained. Folks behind StrongLoop are also the current maintainers of the Express framework atop of which both Feathers, and LoopBack are built.
-
-While LoopBack is a MVC framework bringing in its own set of conventions/concepts, with route-based CRUD config for its entities, Feathers propagates a service-oriented thinking model, where in you can build lightweight services to define entities — **"you're no longer thinking CRUD routes for an entity; but a corresponding service, which represents an entity, and the CRUD methods for it"** — and it gets out of your way allowing you to set your own conventions.
-
-Feathers has support for multiple databases and ORMs. LoopBack only supports its inbuilt ORM (based on Juggler). It should be noted, that LoopBack v4, which is under heavy development as of this writing would open support for multiple ORMs.
-
-Feathers core is engine-agnostic; meaning it works on both client, server sides. LoopBack comes with a separate in-built client.
-
-Feathers has official libraries which can be integrated with Feathers to support multiple transport layers apart from rest; like sockets, primus, etc... This can be achieved in LoopBack via various community libraries.
-
-LoopBack comes with in-built support for generating ACLs and an in-built API explorer, which makes it easier to analyse the built APIs, via auto-generated docs. Thanks to a rich ecosystem of libraries around Feathers, this can be achieved in Feathers via third party libraries like [feathers-permissions](https://github.com/feathersjs-ecosystem/feathers-permissions), and [feathers-swagger](https://github.com/feathersjs-ecosystem/feathers-swagger), respectively.
-
-The conveniences brought in by LoopBack come with a tradeoff of a large knowledge surface area. While LoopBack is a "convention-over-configuration" framework, Feathers (core) is a really small/lightweight library which gets out of your way, without enforcing any specific way of building your service-oriented APIs.
\ No newline at end of file
diff --git a/docs/feathers-vs-meteor.md b/docs/feathers-vs-meteor.md
deleted file mode 100644
index 2bd4745a51..0000000000
--- a/docs/feathers-vs-meteor.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Feathers vs Meteor
-
-Both Feathers and Meteor are open source real-time JavaScript platforms that provide front end and back end support. They both allow clients to send and receive messages over websockets. Feathers lets you choose which real-time transport(s) you want to use via Socket.io or Primus, while Meteor relies on SockJS.
-
-Feathers is community supported, whereas Meteor is venture backed and has raised 31.2 million dollars to date.
-
-Meteor only has official support for MongoDB but there are some community modules of various levels of quality that support other databases. Meteor has it's own package manager and package ecosystem. They have their own template engine called Blaze which is based off of Mustache along with their own build system, but also have guides for Angular and React.
-
-Feathers has official support for many more databases and supports any front-end framework or view engine that you want by working seamlessly on the client.
-
-Feathers uses the defacto JavaScript package manager npm. As a result you can utilize the hundreds of thousands of modules published to npm. Feathers lets you decide whether you want to use Gulp, Grunt, Browserify, Webpack or any other build tool.
-
-Meteor has optimistic UI rendering and oplog tailing whereas currently Feathers leaves that up to the developer. However, we've found that being universal and utilizing websockets for both sending and receiving data alleviates the need for optimistic UI rendering and complex data diffing in most cases.
-
-Both Meteor and Feathers provide support for email/password and OAuth authentication. Once authenticated Meteor uses sessions to maintain a logged in state, whereas Feathers keeps things stateless and uses [JSON Web Tokens](https://jwt.io/) (JWT) to assess authentication state.
-
-One big distinction is how Feathers and Meteor provide real-time across a cluster of apps. Feathers does it at the service layer or using another pub-sub service like Redis whereas Meteor relies on having access to and monitoring MongoDB operation logs as the central hub for real-time communication.
\ No newline at end of file
diff --git a/docs/feathers-vs-nest.md b/docs/feathers-vs-nest.md
deleted file mode 100644
index ba1bf2affa..0000000000
--- a/docs/feathers-vs-nest.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Feathers vs Nest
-
-Nest is a backend framework that have similar capabilities with Feathers.
-
-Nest uses dependency injection system and a module based architecture, Feathers uses service based architecture with a more functional approach.
-
-Nest can only be written in TypeScript whereas Feathers supports JavaScript and TypeScript.
-
-Feathers can generate client code for its server, Nest can't.
-
-Nest uses RxJS for running interceptors, guards, filters or validation pipes. Feathers uses before, after and around hooks.
-
-For more details on the difference between them you can read more here: [FeathersJS vs NestJS - Compared In 3 Key Areas](https://blog.feathersjs.com/feathersjs-vs-nestjs-compared-in-3-key-areas-427def783555)
diff --git a/docs/feathers-vs-sails.md b/docs/feathers-vs-sails.md
deleted file mode 100644
index a1a0a1ed79..0000000000
--- a/docs/feathers-vs-sails.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Feathers vs Sails
-
-From a feature standpoint, Feathers and Sails are probably the most similar of the comparisons offered here. Both provide real-time REST API's, multiple DB support, and are client-agnostic. Sails is bound to the server whereas Feathers can also be used in the browser and in React Native apps. Both frameworks use Express, with Feathers supporting the latest Express 4, while Sails supports Express 3.
-
-Sails follows the MVC pattern while Feathers provides lightweight services to define your resources. Feathers uses hooks to define your business logic including validations, security policies, and serialization in reusable, chainable modules, whereas with Sails, these reside in more of a configuration file format.
-
-Feathers supports multiple ORMs while Sails only supports its own Waterline ORM.
-
-Sails allows you to receive messages via websockets on the client, but, unlike Feathers, does not directly support data being sent from the client to the server over websockets. Additionally, Sails uses Socket.io for its websocket transport. Feathers also supports Socket.io but also many other socket implementations and transports.
-
-Even though the features are very similar, Feathers achieves this with much less code. Feathers also doesn't assume how you want to manage your assets or that you even have any (because you might be making a JSON API). Instead of coming bundled with Grunt, Feathers lets you use your build tool of choice.
-
-Sails doesn't come with any built-in authentication support. Instead, it offers guides on how to configure Passport. By contrast, Feathers supports an official authentication plugin that is a drop-in, minimal configuration, module that provides email/password, token, and OAuth authentication much more like Meteor. Using this you can authenticate using those providers over ANY transport - HTTP, Websockets, and others.
-
-Scaling a Sails app is as simple as deploying your large app multiple times behind a load balancer with some pub-sub mechanism like Redis. With Feathers you can do the same but you also have the option to mount sub-apps more like Express, spin up additional services in the same app, or split your services into small standalone microservice applications.
\ No newline at end of file
diff --git a/docs/guides/cli/app.md b/docs/guides/cli/app.md
deleted file mode 100644
index 21308ffe35..0000000000
--- a/docs/guides/cli/app.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-outline: deep
----
-
-# Application
-
-The `src/app.ts` file is the main file where the [Feathers application](../../api/application.md) gets initialized and wired up with a Feathers transport.
-
-## Transports
-
-The available transports are [Koa](../../api/koa.md) or [Express](../../api/express.md) for HTTP and [Socket.io](../../api/socketio.md) for real-time functionality. For both, Koa and Express, the Feathers application (`app` object) will also be fully compatible with the respective framework. For both frameworks, additional required middleware will be registered in the application file. More information can be found in the linked API documentation.
-
-## Configure functions
-
-The Feathers application does not use a complicated dependency injection mechanism. Instead, the application is wired together using _configure functions_ to split things up into individual files. They are functions that are exported from a file and that take the Feathers [app object](../../api/application.md) and then use it to e.g. register services. Those functions are then passed to [app.configure](../../api/application.md#configurecallback).
-
-For example, have a look at the following files:
-
-`src/services/index.ts` looks like this:
-
-```ts
-import type { Application } from '../declarations'
-import { user } from './users/users'
-
-export const services = (app: Application) => {
- app.configure(user)
- // All services will be registered here
-}
-```
-
-It uses another configure function exported from `src/services/users/users.ts`. The export from `src/services/index.js` is in turn used in `src/app.ts` as:
-
-```ts
-// ...
-import { services } from './services'
-
-// ...
-app.configure(authentication)
-app.configure(services)
-// ...
-```
-
-This is how the generator splits things up into separate files and any documentation example that uses the `app` object can be used in a configure function. You can create your own files that export a configure function and `require`/`import` and `app.configure` them.
-
-
-
-Keep in mind that the order in which configure functions are called might matter, e.g. if it is using a service, that service has to be registered first. Configure functions are not asynchronous. Any asynchronous operations should be done in [application setup hooks](#application-hooks).
-
-
-
-## Application hooks
-
-The application file also includes a section to set up [application hooks](../../api/hooks.md#application-hooks) which are hooks that run for every service. In our case, the `logErrorHook` to log any service errors has already been registered:
-
-```ts
-// Register hooks that run on all service methods
-app.hooks({
- around: {
- all: [logErrorHook]
- },
- before: {},
- after: {},
- error: {}
-})
-```
-
-Following that is the special [setup and teardown](../../api/hooks.md#setup-and-teardown) hook section to register hooks that run once when the application starts or shuts down. This can be used to e.g. set dynamic configuration values.
-
-```ts
-// Register application setup and teardown hooks here
-app.hooks({
- setup: [],
- teardown: []
-})
-```
-
-## Tests, jobs and SSR
-
-The `app` file can be imported like any other Node module. This means it can be used directly in tests, scheduled jobs or server side rendering without having to start a separate server instance. For example, the unit tests import the application like this:
-
-```ts
-import assert from 'assert'
-import { app } from '../../src/app'
-
-describe('messages service', () => {
- it('registered the service', () => {
- const service = app.service('messages')
-
- assert.ok(service, 'Registered the service')
- })
-})
-```
diff --git a/docs/guides/cli/app.test.md b/docs/guides/cli/app.test.md
deleted file mode 100644
index c3149f59f6..0000000000
--- a/docs/guides/cli/app.test.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-outline: deep
----
-
-# Application tests
-
-The `app.test` file starts the server and then tests that it shows the index page and that 404 (Not Found) JSON errors are being returned. It uses the [Axios HTTP](https://axios-http.com/) library to make the calls.
-
-This file can e.g. be used to test application [setup](../../api/application.md#setupserver) and [teardown](../../api/application.md#teardownserver).
-
-All tests are using [MochaJS](https://mochajs.org/) but will be moving to the [NodeJS test runner](https://nodejs.org/api/test.html) in the future.
diff --git a/docs/guides/cli/authentication.md b/docs/guides/cli/authentication.md
deleted file mode 100644
index bc80718815..0000000000
--- a/docs/guides/cli/authentication.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-outline: deep
----
-
-# Authentication
-
-The file in `src/authentication.ts` sets up an [authentication service](../../api/authentication/service.md) and registers [authentication strategies](../../api/authentication/strategy.md). Depending on the strategies you selected it looks similar to this:
-
-```ts
-import { AuthenticationService, JWTStrategy } from '@feathersjs/authentication'
-import { LocalStrategy } from '@feathersjs/authentication-local'
-
-import type { Application } from './declarations'
-
-declare module './declarations' {
- interface ServiceTypes {
- authentication: AuthenticationService
- }
-}
-
-export const authentication = (app: Application) => {
- const authentication = new AuthenticationService(app)
-
- authentication.register('jwt', new JWTStrategy())
- authentication.register('local', new LocalStrategy())
-
- app.use('authentication', authentication)
-}
-```
-
-## oAuth
-
-Note that when selecting oAuth logins (Google, Facebook, GitHub etc.), the standard registered oAuth strategy only uses the `Id` property to create a new user. This will fail validation against the default user [schema](./service.schemas.md) which requires an `email` property to exist. If the provider (and user) allows fetching the email, you can customize the oAuth strategy like shown for GitHub in the [oAuth authentication guide](../basics/authentication.md#login-with-github). You can also make the email in the schema optional with `email: Type.Optional(Type.String())`.
diff --git a/docs/guides/cli/channels.md b/docs/guides/cli/channels.md
deleted file mode 100644
index 612e8cd6a2..0000000000
--- a/docs/guides/cli/channels.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Channels
-
-> This page is currently a work in progress
-
-For more information see the [channel API](../../api/channels.md).
diff --git a/docs/guides/cli/client.md b/docs/guides/cli/client.md
deleted file mode 100644
index e1d396c05c..0000000000
--- a/docs/guides/cli/client.md
+++ /dev/null
@@ -1,63 +0,0 @@
----
-outline: deep
----
-
-# Client
-
-A generated application can be used as an npm module that provides a [Feathers client](../../api/client.md). It gives you a fully typed client that can be installed in any TypeScript (e.g. React, VueJS, React Native etc.) application.
-
-## Local installation
-
-The application can be linked into a client application by running
-
-```
-npm run bundle:client
-npm link
-```
-
-Then go to your client side app
-
-```
-cd path/to/client
-npm link my-app
-```
-
-## Creating a package
-
-To create an installable SDK package that does not include any of the server code (other than the shared types) you can run
-
-```
-npm run bundle:client
-```
-
-By default this will create an `appname-x.x.x.tgz` npm package in the `public/` folder.
-This package can be installed from a running server via
-
-```
-npm install https://myapp.com/appname-x.x.x.tgz
-```
-
-## Usage
-
-Once installed, the application can be used as follows with Socket.io:
-
-```ts
-import io from 'socket.io-client'
-import socketio from '@feathersjs/socketio-client'
-import { createClient } from 'my-app'
-
-const connection = socketio(io('https://myapp.com'))
-
-const client = createClient(connection)
-```
-
-And like this with a REST client:
-
-```ts
-import rest from '@feathersjs/rest-client'
-import { createClient } from 'my-app'
-
-const connection = rest('https://myapp.com').fetch(window.fetch.bind(window))
-
-const client = createClient(connection)
-```
diff --git a/docs/guides/cli/client.test.md b/docs/guides/cli/client.test.md
deleted file mode 100644
index 94d2a7d66a..0000000000
--- a/docs/guides/cli/client.test.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# Client test
-
-The `client.test` file contains end-to-end integration tests for the [generated client](./client.md).
-
-## Authentication
-
-If you selected a local strategy, `src/client.ts` will be updated with a client side integration test that looks similar to this:
-
-```ts
-it('creates and authenticates a user with email and password', async () => {
- const userData: userData = {
- email: 'someone@example.com',
- password: 'supersecret'
- }
-
- await client.service('users').create(userData)
-
- const { user, accessToken } = await client.authenticate({
- strategy: 'local',
- ...userData
- })
-
- assert.ok(accessToken, 'Created access token for user')
- assert.ok(user, 'Includes user in authentication data')
- assert.strictEqual(user.password, undefined, 'Password is hidden to clients')
-
- await client.logout()
-
- // Remove the test user on the server
- await app.service('users').remove(user.id)
-})
-```
-
-This test will create a new user with the generated client, log in, verify a user was returned and log out again. To keep the test self-contained it will then remove the test user on the server
-
-
-
-Note that you can use `client` for client side interactions and the server side [application](./app.md#application) `app` object for server side calls in the same file. For example, if the user required an email verification but you don't want to test sending out emails you can call something like `app.service('users').patch(user.id, { isVerified: true })` to enable the new user on the server.
-
-
diff --git a/docs/guides/cli/configuration.md b/docs/guides/cli/configuration.md
deleted file mode 100644
index 20356d5484..0000000000
--- a/docs/guides/cli/configuration.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-outline: deep
----
-
-### Configuration Schemas
-
-A generated application comes with a schema that validates the initial configuration when the application is started. This makes it much easier to catch configuration errors early which can otherwise be especially difficult to debug in remote environments.
-
-The configuration [schema definition](../../api/schema/index.md) can be found in `configuration.ts`. It is used as a [configuration schema](../../api/configuration.md#configuration-validation) and loads some default schemas for authentication and database connection configuration and adds values for `host`, `port` and the `public` hosted file folder. The types of this schema are also used for `app.get()` and `app.set()` [typings](./declarations.md). The initial configuration schema will be validated on application startup when calling [`app.listen()`](../../api/application.md#listenport) or [`app.setup()`](../../api/application.md#setupserver).
diff --git a/docs/guides/cli/custom-environment-variables.md b/docs/guides/cli/custom-environment-variables.md
deleted file mode 100644
index 0100d8456b..0000000000
--- a/docs/guides/cli/custom-environment-variables.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# Custom Environment Variables
-
-While `node-config` used for [application configuration](./default.json.md) recommends to pass environment based configuration as a JSON string in a single `NODE_CONFIG` environment variable, it is also possible to use other environment variables via the `config/custom-environment-variables.json` file which looks like this by default:
-
-```json
-{
- "port": {
- "__name": "PORT",
- "__format": "number"
- },
- "host": "HOSTNAME",
- "authentication": {
- "secret": "FEATHERS_SECRET"
- }
-}
-```
-
-This sets `app.get('port')` using the `PORT` environment variable (if it is available) parsing it as a number and `app.get('host')` from the `HOSTNAME` environment variable and the authentication secret to the `FEATHERS_SECRET` environment variable.
-
-
-
-See the [node-config custom environment variable](https://github.com/node-config/node-config/wiki/Environment-Variables#custom-environment-variables) documentation for more information.
-
-
-
-## Dotenv
-
-To add support for [dotenv](https://www.dotenv.org/) `.env` files run
-
-```
-npm install dotenv --save
-```
-
-And update `src/app.ts` as follows:
-
-```ts
-// dotenv replaces all environmental variables from ~/.env in ~/config/custom-environment-variables.json
-import * as dotenv from 'dotenv'
-dotenv.config()
-
-// or for ES6
-
-import 'dotenv/config';
-
-import configuration from '@feathersjs/configuration'
-```
-
-
-
-`dotenv.config()` needs to run _before_ `import configuration from '@feathersjs/configuration'`
-
-
diff --git a/docs/guides/cli/databases.md b/docs/guides/cli/databases.md
deleted file mode 100644
index eb90f7f442..0000000000
--- a/docs/guides/cli/databases.md
+++ /dev/null
@@ -1,84 +0,0 @@
----
-outline: deep
----
-
-# Databases
-
-
-
-
-## Connection
-
-
-
-Depending on the SQL database you selected, a `src/.ts` file will be created that sets up a connection using [KnexJS](../../api/databases/knex.md). It uses the connection settings from the `` [configuration value](./default.json.md) and exports a [configure function](./app.md#configure-functions) that initializes the database connection. The Knex connection object is then accessible wherever you have access to the [app object](./app.md) via
-
-```ts
-const knex = app.get('Client')
-```
-
-The database pool size can be set in the [configuration](./default.json.md) like this:
-
-```json
-"postgresql": {
- "client": "pg",
- "connection": "",
- "pool": {
- "min": 0,
- "max": 7
- }
-},
-```
-
-`connection` can also be an object instead of a connection string:
-
-```json
-"postgresql": {
- "client": "pg",
- "connection": {
- "host": "localhost",
- "port": 5432,
- "user": "postgres",
- "password": "postgres",
- "database": "pgtest"
- }
-}
-```
-
-
-
-
-
-`src/mongodb.ts` exports a [configure function](./app.md#configure-functions) that connects to the MongoDB connection string set as `mongodb` in your [configuration](./default.json.md). The [MongoDB NodeJS client](https://www.mongodb.com/languages/mongodb-with-nodejs) is then accessible wherever you have access to the [app object](./app.md) via
-
-```ts
-const db = await app.get('mongodbClient')
-```
-
-The default connection string tries to connect to a local MongoDB instance with no password. To use e.g. [MongoDB Atlas](https://www.mongodb.com/cloud) change the `mongodb` property in `config/default.json` or add it as an [environment variable](./configuration.md#environment-variables) with the connection string that will look similar to this:
-
-```
-mongodb+srv://:@cluster0.xyz.mongodb.net/?retryWrites=true&w=majority
-```
-
-
-
-## Models
-
-
-
-KnexJS does not have a concept of models. Instead a new service is initialized with the table name and `app.get('Client')` as the connection. For more information on how to create custom queries and more, see the [SQL database adapter API documentation](../../api/databases/knex.md).
-
-
-
-
-
-The collection for a MongoDB service can be accessed via
-
-```ts
-const userCollection = await app.service('users').getModel()
-```
-
-See the [MongoDB service API documentation](../../api/databases/mongodb.md) for more information.
-
-
diff --git a/docs/guides/cli/declarations.md b/docs/guides/cli/declarations.md
deleted file mode 100644
index 68cb784fd5..0000000000
--- a/docs/guides/cli/declarations.md
+++ /dev/null
@@ -1,111 +0,0 @@
----
-outline: deep
----
-
-# TypeScript
-
-
-
-The main file for application specific TypeScript declarations can be found at `src/declarations.ts`.
-
-## Compilation
-
-In order to compile and start the application use
-
-```
-npm run compile
-npm start
-```
-
-For development with live reload use
-
-```
-npm run dev
-```
-
-
-
-To get the latest types in the [client](./client.md) and any time before `npm start`, `npm run compile` needs to run.
-
-
-
-## Configuration Types
-
-The `Configuration` interface defines the types for [app.get](../../api/application.md#getname) and [app.set](../../api/application.md#setname-value). It is extended from the type inferred from the [configuration schema](./configuration.md#configuration-schemas). Since you can store anything global to the application in `app.get` and `app.set`, you can add additional types that are not part of the initial application configuration here.
-
-```ts
-// The types for app.get(name) and app.set(name)
-// eslint-disable-next-line @typescript-eslint/no-empty-interface
-export interface Configuration extends ApplicationConfiguration {
- startupTime: Date
-}
-```
-
-
-
-Both `Configuration` and `ServiceTypes` need to be declared as an `interface` (even if it is empty) so they can be extended via `declare module` in other files. Do not remove the `eslint-disable-next-line` comments.
-
-
-
-## Service Types
-
-The `ServiceTypes` interface contains a mapping of all service paths to their service type so that [app.use](../../api/application.md#usepath-service--options) and [app.service](../../api/application.md#servicepath) use the correct type.
-
-```ts
-// A mapping of service names to types. Will be extended in service files.
-// eslint-disable-next-line @typescript-eslint/no-empty-interface
-export interface ServiceTypes {}
-```
-
-Usually the `ServiceTypes` interface is not modified directly in this file but instead extended via `declare module` in the files where the services are registered. This usually looks like this:
-
-```ts
-// Add this service to the service type index
-declare module '../../declarations' {
- interface ServiceTypes {
- users: UserService
- }
-}
-```
-
-## Application
-
-The `Application` interface is the type for the main [app object](./app.md) using the [ServiceTypes](#service-types) interface as the service index and [ConfigurationTypes](#configuration-types) for `app.get` and `app.set`.
-
-```ts
-// The application instance type that will be used everywhere else
-export type Application = FeathersApplication
-```
-
-
-
-Always use `import { Application } from './declarations'` to get the proper service and configuration typings. You normally do **not** need to use `import { Application } from '@feathersjs/feathers'` directly.
-
-
-
-## Hook Context
-
-The `HookContext` type exports a [hook context](../../api/hooks.md) type with the `Application` and a generic service type `S`.
-
-```ts
-// The context for hook functions - can be typed with a service class
-export type HookContext = FeathersHookContext
-```
-
-Use `HookContext` to get the full hook context for a service.
-
-## Services and Params
-
-See the [services chapter](./service.md) for more information on service and parameter typings.
-
-
-
-
-
-
-
-Please pick **TypeScript** as the Code language in the main menu dropdown.
-
-
-
-
diff --git a/docs/guides/cli/default.json.md b/docs/guides/cli/default.json.md
deleted file mode 100644
index d204c61fd6..0000000000
--- a/docs/guides/cli/default.json.md
+++ /dev/null
@@ -1,81 +0,0 @@
----
-outline: deep
----
-
-# Application configuration
-
-A generated application uses the **[configuration module](../../api/configuration.md)** to load configuration information based on the environment. It is based on the battle-tested and widely used [node-config](https://github.com/node-config/node-config) and loads configuration settings so that they are available via [app.get()](../../api/application.md#getname). On application startup, the configuration will be validated against the [configuration schema](./configuration.md).
-
-
-
-For more information on application configuration and schemas see the [configuration API documentation](../../api/configuration.md).
-
-
-
-## Environments
-
-The `NODE_ENV` environment variable determines which configuration file is used. For example, setting `NODE_ENV=development` (in a single command e.g. as `NODE_ENV=development npm run dev`) will first load `config/default.json` and then merge it with `config/development.json`. If no environment is set, `config/default.json` will be used.
-
-## Default configuration
-
-The application uses the following configuration values.
-
-### host, port, public
-
-These options are used directly in the generated application
-
-- `host` - Is the hostname of the API server
-- `port` - The port it listens on
-- `public` - The name of the folder static assets are hosted in
-
-### paginate
-
-`paginate` sets the default and maximum page size when using [pagination](../../api/databases/common.md#pagination) with a [database service](../../api/databases/adapters.md).
-
-```json
-{
- "paginate": {
- "default": 10,
- "max": 100
- }
-}
-```
-
-### origins
-
-`origins` contains a list of frontend URLs that requests can be made from. This is used to configure cross origin (CORS) policies and oAuth (Twitter, Facebook etc.) login redirects. For example to develop locally with a [create-react-app](https://create-react-app.dev/) frontend and deploy to `app.feathersjs.com`:
-
-```json
-{
- "origins": ["http://localhost:3030", "http://localhost:5000", "https://app.feathersjs.com"]
-}
-```
-
-### authentication
-
-`authentication` contains the configuration for the authentication service and strategies. See the [authentication service configuration](../../api/authentication/service.md#configuration) for more information. For strategy specific settings refer to the [jwt](../../api/authentication/jwt.md#options), [local](../../api/authentication/local.md#options) and [oAuth](../../api/authentication/oauth.md#options) API documentation.
-
-### Databases
-
-
-
-Depending on the SQL database selected the `` setting contains a `connection` with the database driver package name and a `client` option with the database connection string.
-
-```json
-{
- "postgresql": {
- "connection": "pg",
- "client": "postgres://postgres:@localhost:5432/feathers-chat"
- }
-}
-```
-
-For additional configuration see the [database connection guide](./databases.md#connection).
-
-
-
-
-
-When selecting MongoDB, the `mongodb` setting contains the MongoDB connection string.
-
-
diff --git a/docs/guides/cli/hook.md b/docs/guides/cli/hook.md
deleted file mode 100644
index 1f577bb5e9..0000000000
--- a/docs/guides/cli/hook.md
+++ /dev/null
@@ -1,118 +0,0 @@
----
-outline: deep
----
-
-# Hooks
-
-## Generating a hook
-
-A new hook can be generated via
-
-```
-npx feathers generate hook
-```
-
-## Hook name
-
-The hook generator will first ask for a name. Based on the name it will create a kebab-cased filename in the `hooks/` folder that exports a camelCased hook function. For example a name of `my fancy Hook` will create a `src/my-fancy-hook.ts` file that exports a `myFancyHook` [hook function](../../api/hooks.md#hook-functions).
-
-## Hook types
-
-There are two hook types that can be generated.
-
-
-
-For more information see the [hooks API documentation](../../api/hooks.md).
-
-
-
-### Around hooks
-
-[Around hooks](../../api/hooks.md#around) allow to control the entire `before`, `after` and `error` flow in a single function. An `around` hook is an `async` function that accepts two arguments:
-
-- The [hook context](../../api/hooks.md#hook-context)
-- An asynchronous `next` function. Somewhere in the body of the hook function, there is a call to `await next()`, which calls the `next` hooks OR the original function if all other hooks have run.
-
-```ts
-import type { HookContext, NextFunction } from '../declarations'
-
-export const myFancyHook = async (context: HookContext, next: NextFunction) => {
- console.log(`Running hook ${name} on ${context.path}.${context.method}`)
- await next()
- // Do things after here
-}
-```
-
-You can wrap the `await next()` in a `try/catch` block to also handle errors.
-
-### Before, after, error
-
-[Before, after or error hooks](../../api/hooks.md#before-after-and-error) are `async` functions that take the [hook context](#hook-context) as the parameter.
-
-```ts
-import type { HookContext } from '../declarations'
-
-export const myFancyHook = async (context: HookContext) => {
- console.log(`Running hook ${name} on ${context.path}.${context.method}`)
-}
-```
-
-## Context types
-
-If the hook is for a specific service, you can pass the service as a generic to the [HookContext](./declarations.md#hook-context) type which will give you the correct types for [context.data](../../api/hooks.md#contextdata), [context.result](../../api/hooks.md#contextresult) and [context.params](../../api/hooks.md#contextparams):
-
-```ts
-import type { UserService } from '../services/users/users'
-import type { HookContext } from '../declarations'
-
-export const myFancyUserHook = async (context: HookContext) => {
- console.log(`Running hook ${name} on ${context.path}.${context.method}`)
-}
-```
-
-## Registering hooks
-
-A generated hook can be registered as an [application hook](./app.md#application-hooks) or as a [service hook](./service.md#registering-hooks). Also see the [hook registration API documentation](../../api/hooks.md#registering-hooks).
-
-## Profiling example
-
-To log some basic profiling information like which method was called and how long it took to run you can create a new _around_ hook called `profiler` via
-
-```
-npx feathers generate hook
-```
-
-Then update `src/hooks/profiler.ts` as follows:
-
-```ts
-import type { HookContext, NextFunction } from '../declarations'
-import { logger } from '../logger'
-
-export const profiler = async (context: HookContext, next: NextFunction) => {
- const startTime = Date.now()
-
- await next()
-
- const runtime = Date.now() - startTime
-
- console.log(`Calling ${context.method} on service ${context.path} took ${runtime}ms`)
-}
-```
-
-And add it in `src/app.ts` as an application hook after the `logError` hook as follows:
-
-```ts{1,8}
-import { profiler } from './hooks/profiler'
-
-//...
-
-// Register hooks that run on all service methods
-app.hooks({
- around: {
- all: [ logError, profiler ]
- },
- before: {},
- after: {},
- error: {}
-})
-```
diff --git a/docs/guides/cli/index.md b/docs/guides/cli/index.md
deleted file mode 100644
index 33f04d0802..0000000000
--- a/docs/guides/cli/index.md
+++ /dev/null
@@ -1,89 +0,0 @@
----
-outline: deep
----
-
-# The Feathers CLI
-
-The Feathers generator allows you to quickly scaffold a Feathers app with the latest standardized file structure.
-
-## Install the CLI
-
-When creating an application (e.g. `my-app`) with
-
-```
-npm create feathers@latest my-app
-```
-
-the Feathers CLI will be installed locally into your new project. This is preferred over global installation so that everybody working on your project has the same version and commands available by running `npx feathers`.
-
-## CLI Commands
-
-In a generated application you should be able to run the `generate` command with no arguments:
-
-```bash
-npx feathers generate
-```
-
-You'll see the following output:
-
-```bash
-Usage: feathers generate|g [options] [command]
-
-Run a generator. Currently available:
- app: Generate a new application
- service: Generate a new service
- hook: Generate a hook
- connection: Add a new database connection
- authentication: Add authentication to the application
-
-Options:
- -h, --help display help for command
-
-Commands:
- app [options] Generate a new application
- service [options] Generate a new service
- hook [options] Generate a hook
- connection Add a new database connection
- authentication Add authentication to the application
- help [command] display help for command
-```
-
-### Authentication
-
-```
-npx feathers generate authentication
-```
-
-Will set up Feathers authentication and a users service. This is required for any other service that needs authentication.
-
-### Service
-
-```
-npx feathers generate service
-```
-
-Generates a service connected to a database or a custom service.
-
-### Connection
-
-```
-npx feathers generate connection
-```
-
-Sets up a new database connection. This is already done when creating a new application but you can still set up other databases.
-
-### Hook
-
-```
-npx feathers generate hook
-```
-
-Generates a new hook in the `hooks` folder that can then be registered in your services.
-
-### App
-
-This is the command that runs automatically when calling
-
-```
-npm create feathers@latest my-app
-```
diff --git a/docs/guides/cli/knexfile.md b/docs/guides/cli/knexfile.md
deleted file mode 100644
index 2473e66c47..0000000000
--- a/docs/guides/cli/knexfile.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# Knexfile
-
-## Migrations
-
-Migrations are a best practise for SQL databases to roll out and undo changes to the data model and are set up automatically with an SQL database connection. The generated `knexfile.ts` imports the [app object](./app.md) to establish the connection to the database. To run migration scripts for the connection from the [configuration environment](./configuration.md#environment-variables) use:
-
-```
-npm run migrate
-```
-
-To create a new migration, run
-
-```
-npm run migrate:make --
-```
-
-and replace `` with the name of the migration you want to create. This will create a new file in the `migrations/` folder.
-
-
-
-For more information on what is available in migration files, see the [Knex migrations documentation](https://knexjs.org/guide/migrations.html).
-
-
diff --git a/docs/guides/cli/log-error.md b/docs/guides/cli/log-error.md
deleted file mode 100644
index af5d63b009..0000000000
--- a/docs/guides/cli/log-error.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Error logging hook
-
-The `src/hooks/log-error.ts` file exports a `logError` hook that uses the [logger](./logger.md) to log any error for a service method, including validation error details (when they are available). It is registered as an [application hook](./app.md#application-hooks) `all` hook, meaning it will log errors for any service method.
diff --git a/docs/guides/cli/logger.md b/docs/guides/cli/logger.md
deleted file mode 100644
index f1a00fbf0c..0000000000
--- a/docs/guides/cli/logger.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-outline: deep
----
-
-# Logging
-
-## Logger
-
-The `src/logger.ts` file initialises the widely used [Winston logger](https://github.com/winstonjs/winston) library, by default with the `info` log level, logging to the console.
-
-```ts
-import { createLogger, format, transports } from 'winston'
-
-// Configure the Winston logger. For the complete documentation see https://github.com/winstonjs/winston
-export const logger = createLogger({
- // To see more detailed errors, change this to 'debug'
- level: 'info',
- format: format.combine(format.splat(), format.simple()),
- transports: [new transports.Console()]
-})
-```
-
-You can import the logger directly in any file where you want to add logging information.
-
-```ts
-import { logger } from './logger'
-
-logger.info('Log some information here')
-```
diff --git a/docs/guides/cli/package.md b/docs/guides/cli/package.md
deleted file mode 100644
index 3392c75ceb..0000000000
--- a/docs/guides/cli/package.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# package.json
-
-## Folders
-
-The source and test folders to which files are generated is set in the `package.json`. To change them, rename the `src/` or `test/` folder to what you want it to and then update `package.json` `directories` section accordingly:
-
-```json
-{
- "directories": {
- "lib": "api/src",
- "test": "api/test"
- }
-}
-```
diff --git a/docs/guides/cli/prettierrc.md b/docs/guides/cli/prettierrc.md
deleted file mode 100644
index e1ce9ef800..0000000000
--- a/docs/guides/cli/prettierrc.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Prettier
-
-The Feathers CLI uses [Prettier](https://prettier.io/) for code formatting and generates a configuration for it in a new application. To change the options, like the use of semicolons, quotes etc, edit the `.prettierrc` file with the [options available](https://prettier.io/docs/en/options.html). To update all existing source files with the new code style run
-
-```
-npm run prettier
-```
-
-When new files are generated, they will use the current Prettier configuration. See the [Prettier Integration with Linters](https://prettier.io/docs/en/integrating-with-linters.html) documentation for how to integrate with tools like ESLint.
diff --git a/docs/guides/cli/service.class.md b/docs/guides/cli/service.class.md
deleted file mode 100644
index 998127ef36..0000000000
--- a/docs/guides/cli/service.class.md
+++ /dev/null
@@ -1,318 +0,0 @@
----
-outline: deep
----
-
-# Service classes
-
-The `.class` file exports the [service class or object](../../api/services.md).
-
-## Database services
-
-When using a database, the service class will be extended from the [Feathers database adapter service](../../api/databases/common.md). Like any class, existing methods can be overriden or you can add your own methods (which can also be made available externally [as custom methods when registering the service](./service.md#registration)).
-
-
-
-
-
-The generic types for a database service are always `AdapterService`. The `MessageService` generic is used to change the parameter type when using this service interface as a [client side service](./client.md).
-
-
-
-
-
-### Overriding methods
-
-When overriding an existing [service method](../../api/services.md#service-methods) on a database adapter the method and overload signatures have to match. The following example shows how to override every service method. Only the methods you want to customize have to be added.
-
-
-
-The [SQL Knex service](../../api/databases/knex.md) methods can be customized like this:
-
-```ts
-import { Id, NullableId, Paginated } from '@feathersjs/feathers'
-
-export interface MessageParams extends KnexAdapterParams {}
-
-// By default calls the standard Knex adapter service methods but can be customized with your own functionality.
-export class MessageService extends KnexService<
- Message,
- MessageData,
- MessageParams,
- MessagePatch
-> {
- async find(
- params?: MessageParams & { paginate?: { default?: number; max?: number } }
- ): Promise>
- async find(params?: ServiceParams & { paginate: false }): Promise
- async find(params?: ServiceParams): Promise | Message[]>
- async find(params?: ServiceParams): Promise | Message[]> {
- return super.find(params)
- }
-
- async get(id: Id, params?: ServiceParams): Promise {
- return super.get(id, params)
- }
-
- async create(data: MessageData, params?: ServiceParams): Promise
- async create(data: MessageData[], params?: ServiceParams): Promise
- async create(data: MessageData | MessageData[], params?: ServiceParams): Promise {
- return super.create(data, params)
- }
-
- async update(id: Id, data: Data, params?: ServiceParams): Promise {
- return super.update(id, data, params)
- }
-
- async patch(id: Id, data: MessagePatch, params?: ServiceParams): Promise
- async patch(id: null, data: MessagePatch, params?: ServiceParams): Promise
- async patch(id: NullableId, data: MessagePatch, params?: ServiceParams): Promise {
- return super.patch(id, data, params)
- }
-
- async remove(id: Id, params?: ServiceParams): Promise
- async remove(id: null, params?: ServiceParams): Promise
- async remove(id: NullableId, params?: ServiceParams): Promise {
- return super.remove(id, params)
- }
-}
-```
-
-
-
-
-
-The [MongoDB service](../../api/databases/mongodb.md) methods can be customized like this:
-
-```ts
-import { Paginated } from '@feathersjs/feathers'
-import { AdapterId } from '@feathersjs/mongodb'
-
-export interface MessageParams extends MongoDBAdapterParams {}
-
-// By default calls the standard MongoDB adapter service methods but can be customized with your own functionality.
-export class MessageService extends MongoDBService<
- Message,
- MessageData,
- MessageParams,
- MessagePatch
-> {
- async find(
- params?: ServiceParams & { paginate?: { paginate?: { default?: number; max?: number } } }
- ): Promise>
- async find(params?: ServiceParams & { paginate: false }): Promise
- async find(params?: ServiceParams): Promise | Message[]>
- async find(params?: ServiceParams): Promise | Message[]> {
- return super.find(params)
- }
-
- async get(id: AdapterId, params?: ServiceParams): Promise {
- return super.get(id, params)
- }
-
- async create(data: MessageData, params?: ServiceParams): Promise
- async create(data: MessageData[], params?: ServiceParams): Promise
- async create(data: MessageData | MessageData[], params?: ServiceParams): Promise {
- return super.create(data, params)
- }
-
- async update(id: AdapterId, data: MessageData, params?: ServiceParams): Promise {
- return super.update(id, data, params)
- }
-
- async patch(id: null, data: MessagePatch, params?: ServiceParams): Promise
- async patch(id: AdapterId, data: MessagePatch, params?: ServiceParams): Promise
- async patch(
- id: NullableAdapterId,
- data: MessagePatch,
- params?: ServiceParams
- ): Promise {
- return super.patch(id, data, params)
- }
-
- async remove(id: AdapterId, params?: ServiceParams): Promise
- async remove(id: null, params?: ServiceParams): Promise
- async remove(id: NullableAdapterId, params?: ServiceParams): Promise {
- return super.remove(id, params)
- }
-}
-```
-
-
-
-### Other service methods
-
-
-
-It is also possible to write your own service methods where the signatures don't have to match by extending from the `KnexAdapter` (instead of the `KnexService`) class. It does not have any of the service methods implemented but you can use the internal `_find`, `_get`, `_update`, `_patch` and `_remove` [adapter methods](../../api/databases/common.md#methods-without-hooks) to work with the database and implement the service method in the way you need.
-
-```ts
-import { Id } from '@feathersjs/feathers'
-import { KnexAdapter } from '@feathersjs/knex'
-
-export interface MessageParams extends KnexAdapterParams {}
-
-// By default calls the standard Knex adapter service methods but can be customized with your own functionality.
-export class MessageService extends KnexAdapter<
- Message,
- MessageData,
- MessageParams,
- MessagePatch
-> {
- async find(params: ServiceParams) {
- const page = this._find(params)
-
- return {
- status: 'ok',
- ...page
- }
- }
-
- async get(id: Id, params: ServiceParams) {
- return {
- message: `Hello ${id}`
- }
- }
-}
-```
-
-
-
-
-
-It is also possible to write your own service methods where the signatures don't have to match by extending from the `MongoDbAdapter` (instead of the `MongoDBService`) class. It does not have any of the service methods implemented but you can use the internal `_find`, `_get`, `_update`, `_patch` and `_remove` [adapter methods](../../api/databases/common.md#methods-without-hooks) to work with the database and implement the service method the way you need.
-
-```ts
-import { Id } from '@feathersjs/feathers'
-import { MongoDbAdapter } from '@feathersjs/mongodb'
-
-export interface MessageParams extends MongoDBAdapterParams {}
-
-// By default calls the standard MongoDB adapter service methods but can be customized with your own functionality.
-export class MessageService extends MongoDbAdapter<
- Message,
- MessageData,
- MessageParams,
- MessagePatch
-> {
- async find(params: ServiceParams) {
- const page = this._find(params)
-
- return {
- status: 'ok',
- ...page
- }
- }
-
- async get(id: Id, params: ServiceParams) {
- return {
- message: `Hello ${id}`
- }
- }
-}
-```
-
-
-
-### Custom methods
-
-
-
-[Custom service methods](../../api/services.md#custom-methods) can be added to an [SQL Knex service](../../api/databases/knex.md) as follows:
-
-```ts
-export interface MessageParams extends KnexAdapterParams {}
-
-export type MyMethodData = { greeting: string }
-
-// By default calls the standard Knex adapter service methods but can be customized with your own functionality.
-export class MessageService extends KnexService<
- Message,
- MessageData,
- MessageParams,
- MessagePatch
-> {
- async myMethod(data: MyMethodData, params: ServiceParams) {
- return {
- message: `${data.greeting || 'Hello'} ${params.user.name}!`
- }
- }
-}
-```
-
-
-
-
-
-[Custom service methods](../../api/services.md#custom-methods) can be added to a [MongoDB service](../../api/databases/mongodb.md) like this:
-
-```ts
-export interface MessageParams extends MongoDBAdapterParams {}
-
-export type MyMethodData = { name: string }
-
-// By default calls the standard MongoDB adapter service methods but can be customized with your own functionality.
-export class MessageService extends MongoDBService<
- Message,
- MessageData,
- MessageParams,
- MessagePatch
-> {
- async myMethod(data: MyMethodData, params: ServiceParams) {
- return {
- message: `${data.greeting || 'Hello'} ${params.user.name}!`
- }
- }
-}
-```
-
-
-
-## Custom services
-
-As shown in the [Quick start](../basics/starting.md), Feathers can work with any database, third party API or custom functionality by implementing your own [services](../../api/services.md). When generating a custom service, a basic skeleton service will be created. You can remove the methods you don't need and add others you need.
-
-
-
-While service methods still have to follow the [standard](../../api/services.md#service-methods) or [custom](../../api/services.md#custom-methods) method signatures, the parameter and return types can be whatever works best for the service you are implementing. If a service method is only for internal use (and not for clients to call) there are no method signature or return value restrictions.
-
-```ts
-import type { Id, NullableId, Params } from '@feathersjs/feathers'
-
-interface MyParams extends Params {}
-
-class MyService {
- async find(params: MyParams) {
- return {
- message: 'This type is inferred'
- }
- }
-
- async get(id: Id) {
- return [
- {
- id
- }
- ]
- }
-
- async create(data: Message, params: MyParams) {
- return data
- }
-
- // Custom method made available to clients needs to have `data` and `params`
- async customMethod(data: CustomMethodData, params: MyParams) {}
-
- // A method that is only available internally can do anything
- async anyOtherMethod() {
- const [entry] = await this.get('david')
-
- return entry.id
- }
-}
-```
-
-
-
-## getOptions
-
-The `getOptions` function is a function that returns the options based on the [application](./app.md) that will be passed to the service class constructor. This is where you can pass [common adapter options](../../api/databases/common.md#options) as well as [MongoDB](../../api/databases/mongodb.md#serviceoptions) or [SQL](../../api/databases/knex.md#serviceoptions) specific or custom service options.
diff --git a/docs/guides/cli/service.md b/docs/guides/cli/service.md
deleted file mode 100644
index b06220df8d..0000000000
--- a/docs/guides/cli/service.md
+++ /dev/null
@@ -1,95 +0,0 @@
----
-outline: deep
----
-
-# Service
-
-The main service file registers the service on the [application](./app.md) as well as the hooks used on this service.
-
-## Registration
-
-The service is added to the main application via [app.use](../../api/application.md#usepath-service--options) under the path you chose when creating the service. It usses the following options:
-
-- `methods` - A list of methods available for external clients. You can remove methods that are not used or add your own [custom methods](../../api/services.md#custom-methods). Not that this list also has to be updated in the [client file](./client.md).
-- `events` - A list of additional [custom events](../../api/events.md#custom-events) sent to clients.
-
-
-
-In TypeScript the `ServiceTypes` interface defined in the [declarations](./declarations.md) will also be extended with the correct service class type using the [shared path](./service.shared.md) as a key:
-
-```ts
-declare module '../../../declarations' {
- interface ServiceTypes {
- [testingPath]: TestingService
- }
-}
-```
-
-
-
-## Registering hooks
-
-This file is also where service [hooks](../../api/hooks.md) are registered on the service. Depending on the selection, it commonly includes the [authentication hook](../../api/authentication/hook.md) and hooks that validate and resolve the schemas from the [service.schemas file](./service.schemas.md).
-
-```ts
-// Initialize hooks
-app.service(messagePath).hooks({
- around: {
- all: [
- authenticate('jwt'),
- schemaHooks.resolveExternal(messageExternalResolver),
- schemaHooks.resolveResult(messageResolver)
- ]
- },
- before: {
- all: [schemaHooks.validateQuery(messageQueryValidator), schemaHooks.resolveQuery(messageQueryResolver)],
- find: [],
- get: [],
- create: [schemaHooks.validateData(messageDataValidator), schemaHooks.resolveData(messageDataResolver)],
- patch: [schemaHooks.validateData(messagePatchValidator), schemaHooks.resolveData(messagePatchResolver)],
- remove: []
- },
- after: {
- all: []
- },
- error: {
- all: []
- }
-})
-```
-
-Note that you can add hooks to a specific method as documented in the [hook registration API](../../api/hooks.md#registering-hooks). For example, to use the [profiling hook](./hook.md#profiling-example) only for `find` and `get` the registration can be updated like this:
-
-```ts{12-13}
-import { profiler } from '../../hooks/profiler'
-// ...
-
-// Initialize hooks
-app.service(messagePath).hooks({
- around: {
- all: [
- authenticate('jwt'),
- schemaHooks.resolveExternal(messageExternalResolver),
- schemaHooks.resolveResult(messageResolver)
- ],
- find: [profiler],
- get: [profiler]
- },
- before: {
- all: [schemaHooks.validateQuery(messageQueryValidator), schemaHooks.resolveQuery(messageQueryResolver)],
- find: [],
- get: [],
- create: [schemaHooks.validateData(messageDataValidator), schemaHooks.resolveData(messageDataResolver)],
- patch: [schemaHooks.validateData(messagePatchValidator), schemaHooks.resolveData(messagePatchResolver)],
- remove: []
- },
- after: {
- all: []
- },
- error: {
- all: []
- }
-})
-```
-
-This also applies to any hook plugins like [feathers-hooks-common](https://hooks-common.feathersjs.com/).
diff --git a/docs/guides/cli/service.schemas.md b/docs/guides/cli/service.schemas.md
deleted file mode 100644
index 788303c053..0000000000
--- a/docs/guides/cli/service.schemas.md
+++ /dev/null
@@ -1,114 +0,0 @@
----
-outline: deep
----
-
-# Service Schemas and Resolvers
-
-The `.schemas` file contains the [schemas and resolvers](../../api/schema/index.md) for this service.
-
-
-
-The examples on this page are using [TypeBox](../../api/schema/typebox.md). For more information on plain JSON schema see the [JSON schema API documentation](../../api/schema/schema.md).
-
-
-
-## Patterns
-
-There a four main types of schemas and resolvers. The schemas, resolvers and types are declared as follows:
-
-```ts
-// The schema definition
-export const nameSchema = Type.Object({
- text: Type.String()
-})
-// The TypeScript type inferred from the schema
-export type Name = Static
-// The validator for the schema
-export const nameValidator = getValidator(nameSchema, dataValidator)
-// The resolver for the schema
-export const nameResolver = resolve({})
-```
-
-## Main schema and resolvers
-
-This schema defines the main data model of all properties and is normally the shape of the data that is returned. This includes database properties as well as associations and other computed properties.
-
-```ts
-// Main data model schema
-export const messageSchema = Type.Object(
- {
- id: Type.Number(),
- text: Type.String()
- },
- { $id: 'Message', additionalProperties: false }
-)
-export type Message = Static
-export const messageValidator = getValidator(messageSchema, dataValidator)
-export const messageResolver = resolve({})
-```
-
-## External Resolvers
-
-The external resolver defines the data that is sent to a client and is often use to e.g. hide protected properties they should not see:
-
-```ts
-export const messagesExternalResolver = resolve({
- someSecretProperty: async () => undefined
-})
-```
-
-## Data schema and resolvers
-
-The data schema validates the data when creating a new entry calling [service.create](../../api/services.md#createdata-params). It usually picks its properties from the [main schema](#main-schemas-and-resolvers) but can be changed to whatever is needed.
-
-```ts
-// Schema for creating new entries
-export const messageDataSchema = Type.Pick(messageSchema, ['text'], {
- $id: 'MessageData'
-})
-export type MessageData = Static
-export const messageDataValidator = getValidator(messageDataSchema, dataValidator)
-export const messageDataResolver = resolve({})
-```
-
-## Patch schema and Resolvers
-
-The patch schema is used for updating existing entries calling [service.patch](../../api/services.md#patchid-data-params). This is often different then the data schema for new entries and by default is a partial of the [main schema](#main-schemas-and-resolvers).
-
-```ts
-// Schema for updating existing entries
-export const messagePatchSchema = Type.Partial(messageSchema, {
- $id: 'MessagePatch'
-})
-export type MessagePatch = Static
-export const messagePatchValidator = getValidator(messagePatchSchema, dataValidator)
-export const messagePatchResolver = resolve({})
-```
-
-## Query Schema and Resolvers
-
-The query schema defines what can be sent in queries in [params.query](../../api/services.md#params) and also converts strings to the correct type.
-
-```ts
-// Schema for allowed query properties
-export const messageQueryProperties = Type.Pick(messageSchema, ['id', 'text', 'createdAt', 'userId'])
-export const messageQuerySchema = Type.Intersect(
- [
- querySyntax(messageQueryProperties),
- // Add additional query properties here
- Type.Object({}, { additionalProperties: false })
- ],
- { additionalProperties: false }
-)
-export type MessageQuery = Static
-export const messageQueryValidator = getValidator(messageQuerySchema, queryValidator)
-export const messageQueryResolver = resolve({})
-```
-
-To add additional operators like `$like` see the [querySyntax](../../api/schema/typebox.md#querysyntax) documentation. You can also add your own query parameters in the `Type.Object({}, { additionalProperties: false })` definition.
-
-
-
-Note that references (`Type.Ref`) can not be used in a query schema. Association querying is usually done by dot separated properties which have to be added manually in [MongoDB](../../api/databases/mongodb.md#querying) and [SQL](../../api/databases/knex.md#associations).
-
-
diff --git a/docs/guides/cli/service.shared.md b/docs/guides/cli/service.shared.md
deleted file mode 100644
index 258e382785..0000000000
--- a/docs/guides/cli/service.shared.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-outline: deep
----
-
-# Service Shared
-
-The `.shared` file contains variables and type declarations that are shared between the [client](./client.md) and the [server application](./app.md). It can also be used for shared utility functions or schemas (e.g. for client side validation).
-
-## Variables
-
-By default two shared variables are exported:
-
-- `Path` - The path of the service. Changing this will change the path for the service in all places like the application, the client and types
-- `Methods` - The list of service methods available to the client. This can be updated with service and custom methods a client should be able to use.
-
-## Client setup
-
-This file also includes the client side service registration which will be included in the [client](./client.md). It will register a client side service based on the shared path and methods.
diff --git a/docs/guides/cli/service.test.md b/docs/guides/cli/service.test.md
deleted file mode 100644
index c8a0e45801..0000000000
--- a/docs/guides/cli/service.test.md
+++ /dev/null
@@ -1,76 +0,0 @@
----
-outline: deep
----
-
-# Service tests
-
-The `.test` file contains tests for a specific service. By default it just checks if the service has been registered.
-
-## Testing the service
-
-Services can be tested by using the [application](./app.md) object through Feathers standard APIs:
-
-```ts
-// For more information about this file see https://dove.feathersjs.com/guides/cli/service.test.html
-import assert from 'assert'
-import { app } from '../../../src/app'
-
-describe('users service', () => {
- it('registered the service', () => {
- const service = app.service('users')
-
- assert.ok(service, 'Registered the service')
- })
-
- it('finds all users', async () => {
- const users = await app.service('users').find({
- paginate: false
- })
-
- assert.ok(Array.isArray(users))
- })
-})
-```
-
-## Authenticated tests
-
-To test service internals that require a logged in user, it is not necessary to go through the full authentication flow. Instead a test user can be created and then passed as `params.user` just like it would when authenticated:
-
-```ts
-// For more information about this file see https://dove.feathersjs.com/guides/cli/service.test.html
-import assert from 'assert'
-import { app } from '../../../src/app'
-
-describe('messages service', () => {
- it('registered the service', () => {
- const service = app.service('messages')
-
- assert.ok(service, 'Registered the service')
- })
-
- it('can create a new message for a user', async () => {
- const user = await app.service('users').create({
- email: 'test@feathersjs.com',
- password: 'supersecret'
- })
-
- const message = await app.service('messages').create(
- {
- text: 'Hello world'
- },
- { user }
- )
-
- assert.strictEqual(message.userId, user.id)
-
- await app.service('messages').remove(message.id)
- await app.service('users').remove(user.id)
- })
-})
-```
-
-
-
-If you want to test the full authentication and external access flow the [client.test](./client.test.md) can be used.
-
-
diff --git a/docs/guides/cli/tsconfig.md b/docs/guides/cli/tsconfig.md
deleted file mode 100644
index f612bb2378..0000000000
--- a/docs/guides/cli/tsconfig.md
+++ /dev/null
@@ -1 +0,0 @@
-# tsconfig.json
diff --git a/docs/guides/cli/validators.md b/docs/guides/cli/validators.md
deleted file mode 100644
index 2f6b729879..0000000000
--- a/docs/guides/cli/validators.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-outline: deep
----
-
-# Validators
-
-For all currently supported schema types, AJV is used as the default validator. See the [validators API documentation](../../api/schema/validators.md) for more information.
-
-## AJV validators
-
-The `src/validators.ts` file sets up two Ajv instances for data and querys (for which string types will be coerced automatically). It also sets up a collection of additional formats using [ajv-formats](https://ajv.js.org/packages/ajv-formats.html). The validators in this file can be customized according to the [Ajv documentation](https://ajv.js.org/) and [its plugins](https://ajv.js.org/packages/). You can find the available Ajv options in the [Ajs class API docs](https://ajv.js.org/options.html).
-
-```ts
-import { Ajv, addFormats } from '@feathersjs/schema'
-import type { FormatsPluginOptions } from '@feathersjs/schema'
-
-const formats: FormatsPluginOptions = [
- 'date-time',
- 'time',
- 'date',
- 'email',
- 'hostname',
- 'ipv4',
- 'ipv6',
- 'uri',
- 'uri-reference',
- 'uuid',
- 'uri-template',
- 'json-pointer',
- 'relative-json-pointer',
- 'regex'
-]
-
-export const dataValidator = addFormats(new Ajv({}), formats)
-
-export const queryValidator = addFormats(
- new Ajv({
- coerceTypes: true
- }),
- formats
-)
-```
-
-## MongoDB ObjectIds
-
-When choosing MongoDB, the validators file will also register the [`objectid` keyword](../../api/databases/mongodb.md#ajv-keyword) to convert strings to MongoDB Object ids.
diff --git a/docs/index.md b/docs/index.md
deleted file mode 100644
index d2bc3e02d7..0000000000
--- a/docs/index.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-layout: page
-sidebar: false
-
-title: Feathers
-titleTemplate: The API and Real-time Application Framework
----
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/package.json b/docs/package.json
deleted file mode 100644
index c74a961288..0000000000
--- a/docs/package.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "name": "docs",
- "private": true,
- "type": "module",
- "scripts": {
- "dev": "vitepress --port 3333 --open",
- "build": "vitepress build",
- "serve": "vitepress serve",
- "preview-https": "pnpm run build && serve .vitepress/dist",
- "prefetch": "esno .vitepress/scripts/fetch-avatars.ts",
- "start": "npm run dev"
- },
- "dependencies": {
- "@vueuse/core": "^13.6.0",
- "date-fns": "^4.1.0",
- "element-plus": "^2.10.5",
- "query-string": "^9.2.2",
- "shiki": "^3.9.1",
- "vue": "^3.5.18"
- },
- "devDependencies": {
- "@feathersjs/generators": "^5.0.34",
- "@iconify-json/carbon": "^1.2.11",
- "@types/node": "^24.1.0",
- "@unocss/preset-typography": "^66.3.3",
- "@unocss/reset": "^66.3.3",
- "@unocss/transformer-directives": "^66.3.3",
- "@vitejs/plugin-vue": "^6.0.1",
- "esno": "^4.8.0",
- "fast-glob": "^3.3.3",
- "flexsearch": "^0.8.205",
- "https-localhost": "^4.7.1",
- "markdown-it": "^14.1.0",
- "sass": "^1.89.2",
- "sitemap": "^8.0.0",
- "unocss": "^66.3.3",
- "unplugin-auto-import": "^19.3.0",
- "unplugin-vue-components": "^28.8.0",
- "vite-plugin-pwa": "^1.0.2",
- "vitepress": "^1.6.3",
- "vitepress-plugin-google-analytics": "^1.0.2",
- "vitepress-plugin-search": "^1.0.4-alpha.22",
- "workbox-window": "^7.3.0"
- }
-}
diff --git a/docs/public/_headers b/docs/public/_headers
deleted file mode 100644
index c40df339f3..0000000000
--- a/docs/public/_headers
+++ /dev/null
@@ -1,28 +0,0 @@
-/
- X-Frame-Options: DENY
- X-XSS-Protection: 1; mode=block
-
-/api/
- X-Frame-Options: DENY
- X-XSS-Protection: 1; mode=block
-
-/config/
- X-Frame-Options: DENY
- X-XSS-Protection: 1; mode=block
-
-/guide/
- X-Frame-Options: DENY
- X-XSS-Protection: 1; mode=block
-
-/*.html
- X-Frame-Options: DENY
- X-XSS-Protection: 1; mode=block
-
-/*
- X-Content-Type-Options: nosniff
- Referrer-Policy: no-referrer
- Strict-Transport-Security: max-age=31536000; includeSubDomains
-
-/assets/*
- cache-control: max-age=31536000
- cache-control: immutable
diff --git a/docs/public/_redirects b/docs/public/_redirects
deleted file mode 100644
index 8cd93f873c..0000000000
--- a/docs/public/_redirects
+++ /dev/null
@@ -1,26 +0,0 @@
-# Crow Redirects
-
-/migrating.html /guides/migrating.html
-/security.html /guides/security.html
-/help/readme.html /help/
-/faq/readme.html /help/faq.html
-
-/api/authentication/oauth1.html /api/authentication/oauth.html
-/api/authentication/oauth2.html /api/authentication/oauth.html
-/api/authentication/server.html /api/authentication/
-
-/guides/frameworks/readme.html /guides/frameworks.html
-/guides/basics/readme.html /guides/
-/guides/basics/clients.html /guides/basics/starting.html
-/guides/basics/databases.html /guides/basics/services.html
-/guides/basics/real-time.html /guides/basics/services.html
-
-/guides/chat/readme.html /guides/
-/guides/chat/authentication.html /guides/basics/authentication.html
-/guides/chat/creating.html /guides/basics/generator.html
-/guides/chat/frontend.html /guides/basics/frontend.html
-/guides/chat/processing.html /guides/basics/hooks.html
-/guides/chat/service.html /guides/basics/services.html
-/guides/chat/testing.html /guides/basics/testing.html
-
-/*/readme.html /:splat 301!
diff --git a/docs/public/apple-touch-icon.png b/docs/public/apple-touch-icon.png
deleted file mode 100644
index c9fd6f7ad8..0000000000
Binary files a/docs/public/apple-touch-icon.png and /dev/null differ
diff --git a/docs/public/bg.png b/docs/public/bg.png
deleted file mode 100644
index c9fd6f7ad8..0000000000
Binary files a/docs/public/bg.png and /dev/null differ
diff --git a/docs/public/favicon.ico b/docs/public/favicon.ico
deleted file mode 100644
index 8677578a86..0000000000
Binary files a/docs/public/favicon.ico and /dev/null differ
diff --git a/docs/public/feathers-chat.css b/docs/public/feathers-chat.css
deleted file mode 100644
index b7ee616ad0..0000000000
--- a/docs/public/feathers-chat.css
+++ /dev/null
@@ -1,484 +0,0 @@
-:root {
- font-synthesis: none;
- text-rendering: optimizeLegibility;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- -webkit-text-size-adjust: 100%;
-}
-
-body,
-#app {
- height: 100vh;
- width: 100vw;
- margin: 0;
- padding: 0;
-}
-
-/* layer: preflights */
-*,
-::before,
-::after {
- --un-rotate: 0;
- --un-rotate-x: 0;
- --un-rotate-y: 0;
- --un-rotate-z: 0;
- --un-scale-x: 1;
- --un-scale-y: 1;
- --un-scale-z: 1;
- --un-skew-x: 0;
- --un-skew-y: 0;
- --un-translate-x: 0;
- --un-translate-y: 0;
- --un-translate-z: 0;
- --un-pan-x: ;
- --un-pan-y: ;
- --un-pinch-zoom: ;
- --un-scroll-snap-strictness: proximity;
- --un-ordinal: ;
- --un-slashed-zero: ;
- --un-numeric-figure: ;
- --un-numeric-spacing: ;
- --un-numeric-fraction: ;
- --un-border-spacing-x: 0;
- --un-border-spacing-y: 0;
- --un-ring-offset-shadow: 0 0 rgba(0, 0, 0, 0);
- --un-ring-shadow: 0 0 rgba(0, 0, 0, 0);
- --un-shadow-inset: ;
- --un-shadow: 0 0 rgba(0, 0, 0, 0);
- --un-ring-inset: ;
- --un-ring-offset-width: 0px;
- --un-ring-offset-color: #fff;
- --un-ring-width: 0px;
- --un-ring-color: rgba(147, 197, 253, 0.5);
- --un-blur: ;
- --un-brightness: ;
- --un-contrast: ;
- --un-drop-shadow: ;
- --un-grayscale: ;
- --un-hue-rotate: ;
- --un-invert: ;
- --un-saturate: ;
- --un-sepia: ;
- --un-backdrop-blur: ;
- --un-backdrop-brightness: ;
- --un-backdrop-contrast: ;
- --un-backdrop-grayscale: ;
- --un-backdrop-hue-rotate: ;
- --un-backdrop-invert: ;
- --un-backdrop-opacity: ;
- --un-backdrop-saturate: ;
- --un-backdrop-sepia: ;
-}
-
-::backdrop {
- --un-rotate: 0;
- --un-rotate-x: 0;
- --un-rotate-y: 0;
- --un-rotate-z: 0;
- --un-scale-x: 1;
- --un-scale-y: 1;
- --un-scale-z: 1;
- --un-skew-x: 0;
- --un-skew-y: 0;
- --un-translate-x: 0;
- --un-translate-y: 0;
- --un-translate-z: 0;
- --un-pan-x: ;
- --un-pan-y: ;
- --un-pinch-zoom: ;
- --un-scroll-snap-strictness: proximity;
- --un-ordinal: ;
- --un-slashed-zero: ;
- --un-numeric-figure: ;
- --un-numeric-spacing: ;
- --un-numeric-fraction: ;
- --un-border-spacing-x: 0;
- --un-border-spacing-y: 0;
- --un-ring-offset-shadow: 0 0 rgba(0, 0, 0, 0);
- --un-ring-shadow: 0 0 rgba(0, 0, 0, 0);
- --un-shadow-inset: ;
- --un-shadow: 0 0 rgba(0, 0, 0, 0);
- --un-ring-inset: ;
- --un-ring-offset-width: 0px;
- --un-ring-offset-color: #fff;
- --un-ring-width: 0px;
- --un-ring-color: rgba(147, 197, 253, 0.5);
- --un-blur: ;
- --un-brightness: ;
- --un-contrast: ;
- --un-drop-shadow: ;
- --un-grayscale: ;
- --un-hue-rotate: ;
- --un-invert: ;
- --un-saturate: ;
- --un-sepia: ;
- --un-backdrop-blur: ;
- --un-backdrop-brightness: ;
- --un-backdrop-contrast: ;
- --un-backdrop-grayscale: ;
- --un-backdrop-hue-rotate: ;
- --un-backdrop-invert: ;
- --un-backdrop-opacity: ;
- --un-backdrop-saturate: ;
- --un-backdrop-sepia: ;
-}
-
-/* layer: icons */
-.i-feather-alert-triangle {
- --un-icon: url("data:image/svg+xml;utf8,%3Csvg preserveAspectRatio='xMidYMid meet' viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0zM12 9v4m0 4h.01'/%3E%3C/svg%3E");
- mask: var(--un-icon) no-repeat;
- mask-size: 100% 100%;
- -webkit-mask: var(--un-icon) no-repeat;
- -webkit-mask-size: 100% 100%;
- background-color: currentColor;
- width: 1em;
- height: 1em;
-}
-
-.i-feather-hash {
- --un-icon: url("data:image/svg+xml;utf8,%3Csvg preserveAspectRatio='xMidYMid meet' viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 9h16M4 15h16M10 3L8 21m8-18l-2 18'/%3E%3C/svg%3E");
- mask: var(--un-icon) no-repeat;
- mask-size: 100% 100%;
- -webkit-mask: var(--un-icon) no-repeat;
- -webkit-mask-size: 100% 100%;
- background-color: currentColor;
- width: 1em;
- height: 1em;
-}
-
-.i-feather-log-out {
- --un-icon: url("data:image/svg+xml;utf8,%3Csvg preserveAspectRatio='xMidYMid meet' viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4m7 14l5-5l-5-5m5 5H9'/%3E%3C/svg%3E");
- mask: var(--un-icon) no-repeat;
- mask-size: 100% 100%;
- -webkit-mask: var(--un-icon) no-repeat;
- -webkit-mask-size: 100% 100%;
- background-color: currentColor;
- width: 1em;
- height: 1em;
-}
-
-.i-feather-menu {
- --un-icon: url("data:image/svg+xml;utf8,%3Csvg preserveAspectRatio='xMidYMid meet' viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 12h18M3 6h18M3 18h18'/%3E%3C/svg%3E");
- mask: var(--un-icon) no-repeat;
- mask-size: 100% 100%;
- -webkit-mask: var(--un-icon) no-repeat;
- -webkit-mask-size: 100% 100%;
- background-color: currentColor;
- width: 1em;
- height: 1em;
-}
-
-.i-feather-x {
- --un-icon: url("data:image/svg+xml;utf8,%3Csvg preserveAspectRatio='xMidYMid meet' viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E");
- mask: var(--un-icon) no-repeat;
- mask-size: 100% 100%;
- -webkit-mask: var(--un-icon) no-repeat;
- -webkit-mask-size: 100% 100%;
- background-color: currentColor;
- width: 1em;
- height: 1em;
-}
-
-.i-logos-feathersjs {
- background: url("data:image/svg+xml;utf8,%3Csvg preserveAspectRatio='xMidYMid meet' viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='%23333' d='M128 9.102c65.665 0 118.898 53.233 118.898 118.898c0 65.665-53.233 118.898-118.898 118.898C62.335 246.898 9.102 193.665 9.102 128C9.102 62.335 62.335 9.102 128 9.102M128 0C57.421 0 0 57.421 0 128c0 70.579 57.421 128 128 128c70.579 0 128-57.421 128-128C256 57.421 198.579 0 128 0m20.83 25.524c-10.43-1.896-35.651 36.409-43.994 59.734c-.634 1.769-2.086 8.249-2.086 9.955c0 0 6.531 14.055 8.343 17.351c-3.034-1.58-9.323-13.756-9.323-13.756c-3.034 5.784-5.942 32.34-4.994 37.271c0 0 6.762 10.062 9.387 12.578c-3.603-1.201-9.671-9.355-9.671-9.355c-1.138 3.508-.916 10.807-.379 13.274c4.551 6.637 10.619 7.396 10.619 7.396s-6.637 66.181 3.413 71.111c6.258-1.327 7.775-73.956 7.775-73.956s7.585.569 9.292-1.327c3.856-2.655 12.826-30.224 12.958-34.202c0 0-10.41 1.952-15.487 3.924c3.826-3.8 16.049-6.352 16.049-6.352c3.315-3.979 10.291-31.047 10.994-39.391c.176-2.093.583-4.657.268-8.398c0 0-9.941 2.177-12.014 1.424c2.104-.237 12.263-4.14 12.263-4.14c1.801-16.213 2.358-42.091-3.413-43.141Zm-36.38 171.691c-.795 19.496-1.294 25.004-2.115 29.601c-.379.857-.758.997-1.138-.095c-3.477-15.992-3.224-136.438 36.409-191.241c-23.05 42.092-33.535 122.861-33.156 161.735Z'/%3E%3C/svg%3E") no-repeat;
- background-size: 100% 100%;
- background-color: transparent;
- width: 1em;
- height: 1em;
-}
-
-/* layer: default */
-.relative {
- position: relative;
-}
-
-.mx-auto {
- margin-left: auto;
- margin-right: auto;
-}
-
-.my-5 {
- margin-top: 1.25rem;
- margin-bottom: 1.25rem;
-}
-
-.ml-2 {
- margin-left: 0.5rem;
-}
-
-.mt-0 {
- margin-top: 0rem;
-}
-
-.mt-6 {
- margin-top: 1.5rem;
-}
-
-.block {
- display: block;
-}
-
-.h-10 {
- height: 2.5rem;
-}
-
-.h-2\.2 {
- height: 0.55rem;
-}
-
-.h-32 {
- height: 8rem;
-}
-
-.h-full {
- height: 100%;
-}
-
-.max-w-sm {
- max-width: 24rem;
-}
-
-.min-h-screen {
- min-height: 100vh;
-}
-
-.w-10 {
- width: 2.5rem;
-}
-
-.w-2\.2 {
- width: 0.55rem;
-}
-
-.w-32 {
- width: 8rem;
-}
-
-.w-4 {
- width: 1rem;
-}
-
-.w-6 {
- width: 1.5rem;
-}
-
-.w-60 {
- width: 15rem;
-}
-
-.w-full {
- width: 100%;
-}
-
-.flex {
- display: flex;
-}
-
-.flex-grow {
- flex-grow: 1;
-}
-
-.flex-row {
- flex-direction: row;
-}
-
-.flex-col {
- flex-direction: column;
-}
-
-.cursor-pointer {
- cursor: pointer;
-}
-
-.items-center {
- align-items: center;
-}
-
-.justify-start {
- justify-content: flex-start;
-}
-
-.justify-center {
- justify-content: center;
-}
-
-.overflow-hidden {
- overflow: hidden;
-}
-
-.overflow-y-auto {
- overflow-y: auto;
-}
-
-.border-2 {
- border-width: 2px;
- border-style: solid;
-}
-
-.border-neutral {
- border-color: hsla(var(--n));
-}
-
-.rounded {
- border-radius: 0.25rem;
-}
-
-.bg-neutral {
- background-color: hsla(var(--n));
-}
-
-.from-orange-500 {
- --un-gradient-from: rgba(249, 115, 22, var(--un-from-opacity, 1));
- --un-gradient-to: rgba(249, 115, 22, 0);
- --un-gradient-stops: var(--un-gradient-from), var(--un-gradient-to);
-}
-
-.to-red-900 {
- --un-gradient-to: rgba(127, 29, 29, var(--un-to-opacity, 1));
-}
-
-.bg-gradient-to-br {
- --un-gradient-shape: to bottom right;
- --un-gradient: var(--un-gradient-shape), var(--un-gradient-stops);
- background-image: linear-gradient(var(--un-gradient));
-}
-
-.bg-clip-text {
- -webkit-background-clip: text;
- background-clip: text;
-}
-
-.p-0 {
- padding: 0rem;
-}
-
-.p-2 {
- padding: 0.5rem;
-}
-
-.px-3 {
- padding-left: 0.75rem;
- padding-right: 0.75rem;
-}
-
-.px-4 {
- padding-left: 1rem;
- padding-right: 1rem;
-}
-
-.py-2 {
- padding-top: 0.5rem;
- padding-bottom: 0.5rem;
-}
-
-.py-8 {
- padding-top: 2rem;
- padding-bottom: 2rem;
-}
-
-.pb-3 {
- padding-bottom: 0.75rem;
-}
-
-.pt-2 {
- padding-top: 0.5rem;
-}
-
-.text-center {
- text-align: center;
-}
-
-.text-5xl {
- font-size: 3rem;
- line-height: 1;
-}
-
-.text-lg {
- font-size: 1.125rem;
- line-height: 1.75rem;
-}
-
-.text-sm {
- font-size: 0.875rem;
- line-height: 1.25rem;
-}
-
-.text-xl {
- font-size: 1.25rem;
- line-height: 1.75rem;
-}
-
-.text-xs {
- font-size: 0.75rem;
- line-height: 1rem;
-}
-
-.font-bold {
- font-weight: 700;
-}
-
-.font-light {
- font-weight: 300;
-}
-
-.leading-4 {
- line-height: 1rem;
-}
-
-.tracking-tight {
- letter-spacing: -0.025em;
-}
-
-.text-error {
- color: hsla(var(--er));
-}
-
-.text-transparent {
- color: transparent;
-}
-
-.shadow-xl {
- --un-shadow: var(--un-shadow-inset) 0 20px 25px -5px var(--un-shadow-color, rgba(0, 0, 0, 0.1)), var(--un-shadow-inset) 0 8px 10px -6px var(--un-shadow-color, rgba(0, 0, 0, 0.1));
- box-shadow: var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);
-}
-
-.invert {
- --un-invert: invert(1);
- filter: var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);
-}
-
-.transition-colors {
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
- transition-duration: 150ms;
-}
-
-.duration-300 {
- transition-duration: 300ms;
-}
-
-@media (min-width: 640px) {
- .sm\:mt-1\.5 {
- margin-top: 0.375rem;
- }
-
- .sm\:h-12 {
- height: 3rem;
- }
-
- .sm\:w-12 {
- width: 3rem;
- }
-}
-
-@media (min-width: 768px) {
- .md\:leading-5 {
- line-height: 1.25rem;
- }
-}
-
-@media (min-width: 1024px) {
- .lg\:hidden {
- display: none;
- }
-}
diff --git a/docs/public/feathersjs-colored.svg b/docs/public/feathersjs-colored.svg
deleted file mode 100644
index 648f77f33d..0000000000
--- a/docs/public/feathersjs-colored.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/public/img/favicon.ico b/docs/public/img/favicon.ico
deleted file mode 100644
index 7ed25a60b0..0000000000
Binary files a/docs/public/img/favicon.ico and /dev/null differ
diff --git a/docs/public/img/favicon.png b/docs/public/img/favicon.png
deleted file mode 100644
index 38606ecb3d..0000000000
Binary files a/docs/public/img/favicon.png and /dev/null differ
diff --git a/docs/public/logo-shadow.svg b/docs/public/logo-shadow.svg
deleted file mode 100644
index e5b59bb822..0000000000
--- a/docs/public/logo-shadow.svg
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/public/netlify.svg b/docs/public/netlify.svg
deleted file mode 100644
index 231c6bc9ee..0000000000
--- a/docs/public/netlify.svg
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/public/og.png b/docs/public/og.png
deleted file mode 100644
index ae138bdf08..0000000000
Binary files a/docs/public/og.png and /dev/null differ
diff --git a/docs/public/pwa-192x192.png b/docs/public/pwa-192x192.png
deleted file mode 100644
index db8171f57a..0000000000
Binary files a/docs/public/pwa-192x192.png and /dev/null differ
diff --git a/docs/public/pwa-512x512.png b/docs/public/pwa-512x512.png
deleted file mode 100644
index d0c4437ffa..0000000000
Binary files a/docs/public/pwa-512x512.png and /dev/null differ
diff --git a/docs/public/robots.txt b/docs/public/robots.txt
deleted file mode 100644
index c2a49f4fb8..0000000000
--- a/docs/public/robots.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-User-agent: *
-Allow: /
diff --git a/docs/tsconfig.json b/docs/tsconfig.json
deleted file mode 100644
index 82476f9122..0000000000
--- a/docs/tsconfig.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "compilerOptions": {
- "target": "esnext",
- "module": "esnext",
- "lib": ["esnext", "dom"],
- "moduleResolution": "node",
- "esModuleInterop": true,
- "strict": true,
- "strictNullChecks": true,
- "resolveJsonModule": true,
- "skipDefaultLibCheck": true,
- "skipLibCheck": true,
- "outDir": "./dist",
- "declaration": true,
- "inlineSourceMap": true,
- "paths": {
- "@vitest/ws-client": ["./packages/ws-client/src/index.ts"],
- "@vitest/ui": ["./packages/ui/node/index.ts"],
- "#types": ["./packages/vitest/src/index.ts"],
- "~/*": ["./packages/ui/client/*"],
- "vitest": ["./packages/vitest/src/index.ts"],
- "vitest/globals": ["./packages/vitest/globals.d.ts"],
- "vitest/node": ["./packages/vitest/src/node/index.ts"],
- "vitest/config": ["./packages/vitest/src/config.ts"],
- "vite-node": ["./packages/vite-node/src/index.ts"],
- "vite-node/client": ["./packages/vite-node/src/client.ts"],
- "vite-node/server": ["./packages/vite-node/src/server.ts"],
- "vite-node/utils": ["./packages/vite-node/src/utils.ts"]
- },
- "types": [
- "vite/client"
- ]
- },
- "exclude": [
- "**/dist/**",
- "./packages/vitest/dist/**",
- "./packages/ui/client/**",
- "./examples/**/*.*",
- "./bench/**"
- ]
-}
diff --git a/docs/vite.config.ts b/docs/vite.config.ts
deleted file mode 100644
index c1bdb6bde8..0000000000
--- a/docs/vite.config.ts
+++ /dev/null
@@ -1,150 +0,0 @@
-import fs from 'fs'
-import type { Plugin } from 'vite'
-import { defineConfig } from 'vite'
-import AutoImport from 'unplugin-auto-import/vite'
-import Components from 'unplugin-vue-components/vite'
-import Unocss from 'unocss/vite'
-import transformerDirective from '@unocss/transformer-directives'
-import { presetAttributify, presetIcons, presetUno, presetTypography } from 'unocss'
-import { resolve } from 'pathe'
-import type { VitePluginPWAAPI } from 'vite-plugin-pwa'
-import { VitePWA } from 'vite-plugin-pwa'
-import fg from 'fast-glob'
-import {
- pwaFontStylesRegex,
- pwaFontsRegex,
- feathersDescription,
- feathersName,
- feathersShortName
-} from './.vitepress/meta'
-import { optimizePages } from './.vitepress/scripts/assets'
-import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
-import { SearchPlugin } from 'vitepress-plugin-search'
-
-const PWA = VitePWA({
- outDir: '.vitepress/dist',
- registerType: 'autoUpdate',
- // include all static assets under public/
- includeAssets: fg.sync('**/*.{png,svg,ico,txt}', { cwd: resolve(__dirname, 'public') }),
- manifest: {
- id: '/',
- name: feathersName,
- short_name: feathersShortName,
- description: feathersDescription,
- theme_color: '#ffffff',
- icons: [
- {
- src: 'pwa-192x192.png',
- sizes: '192x192',
- type: 'image/png'
- },
- {
- src: 'pwa-512x512.png',
- sizes: '512x512',
- type: 'image/png'
- },
- {
- src: 'logo.svg',
- sizes: '165x165',
- type: 'image/svg',
- purpose: 'any maskable'
- }
- ]
- },
- workbox: {
- navigateFallbackDenylist: [/^\/new$/],
- runtimeCaching: [
- {
- urlPattern: pwaFontsRegex,
- handler: 'CacheFirst',
- options: {
- cacheName: 'google-fonts-cache',
- expiration: {
- maxEntries: 10,
- maxAgeSeconds: 60 * 60 * 24 * 365 // <== 365 days
- },
- cacheableResponse: {
- statuses: [0, 200]
- }
- }
- },
- {
- urlPattern: pwaFontStylesRegex,
- handler: 'CacheFirst',
- options: {
- cacheName: 'gstatic-fonts-cache',
- expiration: {
- maxEntries: 10,
- maxAgeSeconds: 60 * 60 * 24 * 365 // <== 365 days
- },
- cacheableResponse: {
- statuses: [0, 200]
- }
- }
- }
- ]
- }
-})
-
-export default defineConfig({
- plugins: [
- SearchPlugin(),
- AutoImport({
- resolvers: [ElementPlusResolver()]
- }),
- Components({
- include: [/\.vue/, /\.md/],
- dirs: '.vitepress/components',
- dts: '.vitepress/components.d.ts',
- resolvers: [ElementPlusResolver({ ssr: false })]
- }),
- Unocss({
- shortcuts: [
- [
- 'btn',
- 'px-4 py-1 rounded inline-flex justify-center gap-2 text-white leading-30px children:mya !no-underline cursor-pointer disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50'
- ]
- ],
- presets: [
- presetUno({
- dark: 'media'
- }),
- presetAttributify(),
- presetIcons({
- scale: 1.2
- }),
- presetTypography()
- ],
- transformers: [transformerDirective()]
- }),
- IncludesPlugin(),
- PWA,
- {
- name: 'pwa:post',
- enforce: 'post',
- async buildEnd() {
- const pwaPlugin: VitePluginPWAAPI = PWA.find((i) => i.name === 'vite-plugin-pwa')?.api
- const pwa = pwaPlugin && !pwaPlugin.disabled
- await optimizePages(pwa)
- if (pwa) await pwaPlugin.generateSW()
- }
- }
- ],
- ssr: { noExternal: ['element-plus'] }
-})
-
-function IncludesPlugin(): Plugin {
- return {
- name: 'include-plugin',
- enforce: 'pre',
- transform(code, id) {
- let changed = false
- code = code.replace(/\[@@include\]\((.*?)\)/, (_, url) => {
- changed = true
- const full = resolve(id, url)
- return fs.readFileSync(full, 'utf-8')
- })
- if (changed) return code
- }
- }
-}
diff --git a/generators/package.ts b/generators/package.ts
deleted file mode 100644
index 1d351338a0..0000000000
--- a/generators/package.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import type { Callable, PinionContext } from '@featherscloud/pinion'
-import { generator, install, prompt, runGenerators, toFile } from '@featherscloud/pinion'
-
-export interface ModuleContext extends PinionContext {
- name: string
- uppername: string
- description: string
- moduleName: string
- packagePath: Callable
-}
-
-export const generate = (context: ModuleContext) =>
- generator(context)
- .then(
- prompt([
- {
- type: 'input',
- name: 'name',
- message: 'What is the name of the module?'
- },
- {
- type: 'input',
- name: 'description',
- message: 'Write a short description'
- }
- ])
- )
- .then((ctx) => {
- return {
- ...ctx,
- moduleName: `@feathersjs/${ctx.name}`,
- uppername: ctx.name.charAt(0).toUpperCase() + ctx.name.slice(1),
- packagePath: toFile('packages', ctx.name)
- }
- })
- .then(runGenerators(__dirname, 'package'))
- .then(
- install(
- ['@types/node', 'shx', 'ts-node', 'typescript', 'mocha'],
- true,
- (context) => `npm --workspace packages/${context.name}`
- )
- )
diff --git a/generators/package/index.tpl.ts b/generators/package/index.tpl.ts
deleted file mode 100644
index 06b063adcc..0000000000
--- a/generators/package/index.tpl.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { generator, renderTemplate, toFile } from '@featherscloud/pinion'
-import { ModuleContext } from '../package'
-
-interface Context extends ModuleContext {}
-
-const template = ({ name }: Context) => `
-export function ${name}() {
- return 'Hello from ${name}'
-}
-`
-
-export const generate = (context: Context) =>
- generator(context).then(renderTemplate(template, toFile(context.packagePath, 'src', 'index.ts')))
diff --git a/generators/package/license.tpl.ts b/generators/package/license.tpl.ts
deleted file mode 100644
index bf9eda7666..0000000000
--- a/generators/package/license.tpl.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { generator, renderTemplate, toFile } from '@featherscloud/pinion'
-import { ModuleContext } from '../package'
-
-interface Context extends ModuleContext {}
-
-export const generate = (context: Context) =>
- generator(context).then(
- renderTemplate(
- `The MIT License (MIT)
-
-Copyright (c) ${new Date().getFullYear()} Feathers Contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
- `,
- toFile(context.packagePath, 'LICENSE')
- )
- )
diff --git a/generators/package/package.json.tpl.ts b/generators/package/package.json.tpl.ts
deleted file mode 100644
index 1a27515aef..0000000000
--- a/generators/package/package.json.tpl.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import { generator, toFile, writeJSON } from '@featherscloud/pinion'
-import { ModuleContext } from '../package'
-
-interface Context extends ModuleContext {}
-
-export const generate = (context: Context) =>
- generator(context).then(
- writeJSON(
- ({ moduleName, description, name }) => ({
- name: moduleName,
- description,
- version: '0.0.0',
- homepage: 'https://feathersjs.com',
- keywords: ['feathers'],
- license: 'MIT',
- repository: {
- type: 'git',
- url: 'git://github.com/feathersjs/feathers.git',
- directory: `packages/${name}`
- },
- author: {
- name: 'Feathers contributor',
- email: 'hello@feathersjs.com',
- url: 'https://feathersjs.com'
- },
- contributors: [],
- bugs: {
- url: 'https://github.com/feathersjs/feathers/issues'
- },
- engines: {
- node: '>= 20'
- },
- files: ['CHANGELOG.md', 'LICENSE', 'README.md', 'src/**', 'lib/**', 'esm/**'],
- // module: './esm/index.js',
- main: './lib/index.js',
- types: './src/index.ts',
- exports: {
- '.': {
- // import: './esm/index.js',
- require: './lib/index.js',
- types: './src/index.ts'
- }
- },
- scripts: {
- prepublish: 'npm run compile',
- pack: 'npm pack --pack-destination ../generators/test/build',
- compile: 'shx rm -rf lib/ && tsc && npm run pack',
- test: 'mocha --config ../../.mocharc.json --recursive test/**.test.ts test/**/*.test.ts'
- },
- publishConfig: {
- access: 'public'
- },
- dependencies: {},
- devDependencies: {}
- }),
- toFile('packages', context.name, 'package.json')
- )
- )
diff --git a/generators/package/readme.md.tpl.ts b/generators/package/readme.md.tpl.ts
deleted file mode 100644
index f4495d2756..0000000000
--- a/generators/package/readme.md.tpl.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import { generator, renderTemplate, toFile } from '@featherscloud/pinion'
-import { ModuleContext } from '../package'
-
-const template = ({ description, moduleName }: ModuleContext) => `# ${moduleName}
-
-[](https://github.com/feathersjs/feathers/actions?query=workflow%3ACI)
-[](https://www.npmjs.com/package/${moduleName})
-[](https://discord.gg/qa8kez8QBx)
-
-> ${description}
-
-## Installation
-
-\`\`\`
-npm install ${moduleName} --save
-\`\`\`
-
-## Documentation
-
-Refer to the [Feathers API documentation](https://feathersjs.com/api) for more details.
-
-## License
-
-Copyright (c) ${new Date().getFullYear()} [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
-
-Licensed under the [MIT license](LICENSE).
-`
-
-export const generate = (context: ModuleContext) =>
- generator(context).then(renderTemplate(template, toFile(context.packagePath, 'README.md')))
diff --git a/generators/package/test.tpl.ts b/generators/package/test.tpl.ts
deleted file mode 100644
index 25f5b7d468..0000000000
--- a/generators/package/test.tpl.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { generator, renderTemplate, toFile } from '@featherscloud/pinion'
-import { ModuleContext } from '../package'
-
-interface Context extends ModuleContext {}
-
-const template = ({ moduleName, name }: Context) => /** ts */ `import { strict as assert } from 'assert'
-import { ${name} } from '../src/index'
-
-describe('${moduleName}', () => {
- it('initializes', () => {
- assert.equal(${name}(), 'Hello from ${name}')
- })
-})
-`
-
-export const generate = (context: Context) =>
- generator(context).then(
- renderTemplate(template, toFile(context.packagePath, 'test', 'index.test.ts'))
- )
diff --git a/generators/package/tsconfig.json.tpl.ts b/generators/package/tsconfig.json.tpl.ts
deleted file mode 100644
index 875f9f4902..0000000000
--- a/generators/package/tsconfig.json.tpl.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { generator, toFile, writeJSON } from '@featherscloud/pinion'
-import { ModuleContext } from '../package'
-
-export const generate = (context: ModuleContext) =>
- generator(context).then(
- writeJSON(
- {
- extends: '../../tsconfig',
- include: ['src/**/*.ts'],
- compilerOptions: {
- outDir: 'lib'
- }
- },
- toFile(context.packagePath, 'tsconfig.json')
- )
- )
diff --git a/lerna.json b/lerna.json
index 4c7a1b2eef..c27b99bb1e 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,13 +1,13 @@
{
"ci": false,
"packages": ["packages/*"],
- "version": "5.0.34",
+ "version": "6.0.0-pre.11",
"command": {
"bootstrap": {
"hoist": true
},
"publish": {
- "allowBranch": ["crow", "dove"],
+ "allowBranch": ["crow", "dove", "v6"],
"message": "chore(release): publish %s",
"conventionalCommits": true,
"createRelease": "github"
diff --git a/package-lock.json b/package-lock.json
index ba8dbe46cb..747ec2d383 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,19233 +1,6279 @@
{
- "name": "@feathersjs/feathers",
+ "name": "feathers",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
- "name": "@feathersjs/feathers",
+ "name": "feathers",
"license": "MIT",
"workspaces": [
- "docs",
"packages/*"
],
"devDependencies": {
- "@featherscloud/pinion": "^0.5.4",
- "@typescript-eslint/eslint-plugin": "^7.8.0",
- "@typescript-eslint/parser": "^7.8.0",
- "c8": "^9.1.0",
- "eslint": "^8.57.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-prettier": "^5.1.3",
- "lerna": "^8.1.2",
- "npm-check-updates": "^16.14.20",
- "prettier": "^3.2.5",
- "typescript": "^5.4.5"
+ "@featherscloud/pinion": "^0.5.5",
+ "@typescript-eslint/eslint-plugin": "^8.38.0",
+ "@typescript-eslint/parser": "^8.38.0",
+ "@vitest/coverage-v8": "^3.2.4",
+ "eslint": "^9.32.0",
+ "eslint-config-prettier": "^10.1.8",
+ "eslint-plugin-prettier": "^5.5.3",
+ "lerna": "^8.2.3",
+ "npm-check-updates": "^18.0.2",
+ "prettier": "^3.6.2",
+ "typescript": "^5.8.0",
+ "vitest": "^3.2.4"
},
"engines": {
- "node": ">= 20"
+ "node": ">= 22"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/daffl"
}
},
- "docs": {
- "dependencies": {
- "@vueuse/core": "^13.6.0",
- "date-fns": "^4.1.0",
- "element-plus": "^2.10.5",
- "query-string": "^9.2.2",
- "shiki": "^3.9.1",
- "vue": "^3.5.18"
- },
- "devDependencies": {
- "@feathersjs/generators": "^5.0.34",
- "@iconify-json/carbon": "^1.2.11",
- "@types/node": "^24.1.0",
- "@unocss/preset-typography": "^66.3.3",
- "@unocss/reset": "^66.3.3",
- "@unocss/transformer-directives": "^66.3.3",
- "@vitejs/plugin-vue": "^6.0.1",
- "esno": "^4.8.0",
- "fast-glob": "^3.3.3",
- "flexsearch": "^0.8.205",
- "https-localhost": "^4.7.1",
- "markdown-it": "^14.1.0",
- "sass": "^1.89.2",
- "sitemap": "^8.0.0",
- "unocss": "^66.3.3",
- "unplugin-auto-import": "^19.3.0",
- "unplugin-vue-components": "^28.8.0",
- "vite-plugin-pwa": "^1.0.2",
- "vitepress": "^1.6.3",
- "vitepress-plugin-google-analytics": "^1.0.2",
- "vitepress-plugin-search": "^1.0.4-alpha.22",
- "workbox-window": "^7.3.0"
- }
- },
- "docs/node_modules/@vitejs/plugin-vue": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.1.tgz",
- "integrity": "sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==",
+ "node_modules/@ampproject/remapping": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
"dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"dependencies": {
- "@rolldown/pluginutils": "1.0.0-beta.29"
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "peerDependencies": {
- "vite": "^5.0.0 || ^6.0.0 || ^7.0.0",
- "vue": "^3.2.25"
+ "node": ">=6.0.0"
}
},
- "docs/node_modules/@vueuse/core": {
- "version": "13.6.0",
- "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-13.6.0.tgz",
- "integrity": "sha512-DJbD5fV86muVmBgS9QQPddVX7d9hWYswzlf4bIyUD2dj8GC46R1uNClZhVAmsdVts4xb2jwp1PbpuiA50Qee1A==",
+ "node_modules/@babel/code-frame": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@types/web-bluetooth": "^0.0.21",
- "@vueuse/metadata": "13.6.0",
- "@vueuse/shared": "13.6.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "vue": "^3.5.0"
- }
- },
- "docs/node_modules/@vueuse/metadata": {
- "version": "13.6.0",
- "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-13.6.0.tgz",
- "integrity": "sha512-rnIH7JvU7NjrpexTsl2Iwv0V0yAx9cw7+clymjKuLSXG0QMcLD0LDgdNmXic+qL0SGvgSVPEpM9IDO/wqo1vkQ==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "docs/node_modules/@vueuse/shared": {
- "version": "13.6.0",
- "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-13.6.0.tgz",
- "integrity": "sha512-pDykCSoS2T3fsQrYqf9SyF0QXWHmcGPQ+qiOVjlYSzlWd9dgppB2bFSM1GgKKkt7uzn0BBMV3IbJsUfHG2+BCg==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
},
- "peerDependencies": {
- "vue": "^3.5.0"
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "docs/node_modules/flexsearch": {
- "version": "0.8.205",
- "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.8.205.tgz",
- "integrity": "sha512-REFjMqy86DKkCTJ4gIE42c9MVm9t1vUWfEub/8taixYuhvyu4jd4XmFALk5VuKW4GH4VLav8A4BJboTsslHF1w==",
+ "node_modules/@babel/code-frame/node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/ts-thomas"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/flexsearch"
- },
- {
- "type": "patreon",
- "url": "https://patreon.com/user?u=96245532"
- },
- {
- "type": "liberapay",
- "url": "https://liberapay.com/ts-thomas"
- },
- {
- "type": "paypal",
- "url": "https://www.paypal.com/donate/?hosted_button_id=GEVR88FC9BWRW"
- },
- {
- "type": "bountysource",
- "url": "https://salt.bountysource.com/teams/ts-thomas"
- }
- ],
- "license": "Apache-2.0"
+ "license": "MIT"
},
- "node_modules/@algolia/autocomplete-core": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz",
- "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==",
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
"dev": true,
- "dependencies": {
- "@algolia/autocomplete-plugin-algolia-insights": "1.17.7",
- "@algolia/autocomplete-shared": "1.17.7"
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "node_modules/@algolia/autocomplete-plugin-algolia-insights": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz",
- "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==",
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
"dev": true,
- "dependencies": {
- "@algolia/autocomplete-shared": "1.17.7"
- },
- "peerDependencies": {
- "search-insights": ">= 1 < 3"
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "node_modules/@algolia/autocomplete-preset-algolia": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz",
- "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==",
+ "node_modules/@babel/parser": {
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz",
+ "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@algolia/autocomplete-shared": "1.17.7"
+ "@babel/types": "^7.29.0"
},
- "peerDependencies": {
- "@algolia/client-search": ">= 4.9.1 < 6",
- "algoliasearch": ">= 4.9.1 < 6"
- }
- },
- "node_modules/@algolia/autocomplete-shared": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz",
- "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==",
- "dev": true,
- "peerDependencies": {
- "@algolia/client-search": ">= 4.9.1 < 6",
- "algoliasearch": ">= 4.9.1 < 6"
- }
- },
- "node_modules/@algolia/client-abtesting": {
- "version": "5.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.24.0.tgz",
- "integrity": "sha512-pNTIB5YqVVwu6UogvdX8TqsRZENaflqMMjdY7/XIPMNGrBoNH9tewINLI7+qc9tIaOLcAp3ZldqoEwAihZZ3ig==",
- "dev": true,
- "dependencies": {
- "@algolia/client-common": "5.24.0",
- "@algolia/requester-browser-xhr": "5.24.0",
- "@algolia/requester-fetch": "5.24.0",
- "@algolia/requester-node-http": "5.24.0"
+ "bin": {
+ "parser": "bin/babel-parser.js"
},
"engines": {
- "node": ">= 14.0.0"
+ "node": ">=6.0.0"
}
},
- "node_modules/@algolia/client-analytics": {
- "version": "5.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.24.0.tgz",
- "integrity": "sha512-IF+r9RRQsIf0ylIBNFxo7c6hDxxuhIfIbffhBXEF1HD13rjhP5AVfiaea9RzbsAZoySkm318plDpH/nlGIjbRA==",
+ "node_modules/@babel/types": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+ "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.24.0",
- "@algolia/requester-browser-xhr": "5.24.0",
- "@algolia/requester-fetch": "5.24.0",
- "@algolia/requester-node-http": "5.24.0"
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5"
},
"engines": {
- "node": ">= 14.0.0"
+ "node": ">=6.9.0"
}
},
- "node_modules/@algolia/client-common": {
- "version": "5.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.24.0.tgz",
- "integrity": "sha512-p8K6tiXQTebRBxbrzWIfGCvfkT+Umml+2lzI92acZjHsvl6KYH6igOfVstKqXJRei9pvRzEEvVDNDLXDVleGTA==",
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz",
+ "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 14.0.0"
+ "node": ">=18"
}
},
- "node_modules/@algolia/client-insights": {
- "version": "5.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.24.0.tgz",
- "integrity": "sha512-jOHF0+tixR3IZJMhZPquFNdCVPzwzzXoiqVsbTvfKojeaY6ZXybgUiTSB8JNX+YpsUT8Ebhu3UvRy4mw2PbEzw==",
+ "node_modules/@emnapi/core": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz",
+ "integrity": "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.24.0",
- "@algolia/requester-browser-xhr": "5.24.0",
- "@algolia/requester-fetch": "5.24.0",
- "@algolia/requester-node-http": "5.24.0"
- },
- "engines": {
- "node": ">= 14.0.0"
+ "@emnapi/wasi-threads": "1.2.0",
+ "tslib": "^2.4.0"
}
},
- "node_modules/@algolia/client-personalization": {
- "version": "5.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.24.0.tgz",
- "integrity": "sha512-Fx/Fp6d8UmDBHecTt0XYF8C9TAaA3qeCQortfGSZzWp4gVmtrUCFNZ1SUwb8ULREnO9DanVrM5hGE8R8C4zZTQ==",
+ "node_modules/@emnapi/runtime": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz",
+ "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.24.0",
- "@algolia/requester-browser-xhr": "5.24.0",
- "@algolia/requester-fetch": "5.24.0",
- "@algolia/requester-node-http": "5.24.0"
- },
- "engines": {
- "node": ">= 14.0.0"
+ "tslib": "^2.4.0"
}
},
- "node_modules/@algolia/client-query-suggestions": {
- "version": "5.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.24.0.tgz",
- "integrity": "sha512-F8ypOedSMhz6W7zuT5O1SXXsdXSOVhY2U6GkRbYk/mzrhs3jWFR3uQIfeQVWmsJjUwIGZmPoAr9E+T/Zm2M4wA==",
+ "node_modules/@emnapi/wasi-threads": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz",
+ "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@algolia/client-common": "5.24.0",
- "@algolia/requester-browser-xhr": "5.24.0",
- "@algolia/requester-fetch": "5.24.0",
- "@algolia/requester-node-http": "5.24.0"
- },
- "engines": {
- "node": ">= 14.0.0"
+ "tslib": "^2.4.0"
}
},
- "node_modules/@algolia/client-search": {
- "version": "5.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.24.0.tgz",
- "integrity": "sha512-k+nuciQuq7WERNNE+hsx3DX636zIy+9R4xdtvW3PANT2a2BDGOv3fv2mta8+QUMcVTVcGe/Mo3QCb4pc1HNoxA==",
- "dev": true,
- "dependencies": {
- "@algolia/client-common": "5.24.0",
- "@algolia/requester-browser-xhr": "5.24.0",
- "@algolia/requester-fetch": "5.24.0",
- "@algolia/requester-node-http": "5.24.0"
- },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz",
+ "integrity": "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
"engines": {
- "node": ">= 14.0.0"
+ "node": ">=18"
}
},
- "node_modules/@algolia/ingestion": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.24.0.tgz",
- "integrity": "sha512-/lqVxmrvwoA+OyVK4XLMdz/PJaCTW4qYchX1AZ+98fdnH3K6XM/kMydQLfP0bUNGBQbmVrF88MqhqZRnZEn/MA==",
- "dev": true,
- "dependencies": {
- "@algolia/client-common": "5.24.0",
- "@algolia/requester-browser-xhr": "5.24.0",
- "@algolia/requester-fetch": "5.24.0",
- "@algolia/requester-node-http": "5.24.0"
- },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz",
+ "integrity": "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">= 14.0.0"
+ "node": ">=18"
}
},
- "node_modules/@algolia/monitoring": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.24.0.tgz",
- "integrity": "sha512-cRisDXQJhvfZCXL4hD22qca2CmW52TniOx6L7pvkaBDx0oQk1k9o+3w11fgfcCG+47OndMeNx5CMpu+K+COMzg==",
- "dev": true,
- "dependencies": {
- "@algolia/client-common": "5.24.0",
- "@algolia/requester-browser-xhr": "5.24.0",
- "@algolia/requester-fetch": "5.24.0",
- "@algolia/requester-node-http": "5.24.0"
- },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz",
+ "integrity": "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">= 14.0.0"
+ "node": ">=18"
}
},
- "node_modules/@algolia/recommend": {
- "version": "5.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.24.0.tgz",
- "integrity": "sha512-JTMz0JqN2gidvKa2QCF/rMe8LNtdHaght03px2cluZaZfBRYy8TgHgkCeBspKKvV/abWJwl7J0FzWThCshqT3w==",
- "dev": true,
- "dependencies": {
- "@algolia/client-common": "5.24.0",
- "@algolia/requester-browser-xhr": "5.24.0",
- "@algolia/requester-fetch": "5.24.0",
- "@algolia/requester-node-http": "5.24.0"
- },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz",
+ "integrity": "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">= 14.0.0"
+ "node": ">=18"
}
},
- "node_modules/@algolia/requester-browser-xhr": {
- "version": "5.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.24.0.tgz",
- "integrity": "sha512-B2Gc+iSxct1WSza5CF6AgfNgmLvVb61d5bqmIWUZixtJIhyAC6lSQZuF+nvt+lmKhQwuY2gYjGGClil8onQvKQ==",
- "dev": true,
- "dependencies": {
- "@algolia/client-common": "5.24.0"
- },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz",
+ "integrity": "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">= 14.0.0"
+ "node": ">=18"
}
},
- "node_modules/@algolia/requester-fetch": {
- "version": "5.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.24.0.tgz",
- "integrity": "sha512-6E5+hliqGc5w8ZbyTAQ+C3IGLZ/GiX623Jl2bgHA974RPyFWzVSj4rKqkboUAxQmrFY7Z02ybJWVZS5OhPQocA==",
- "dev": true,
- "dependencies": {
- "@algolia/client-common": "5.24.0"
- },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz",
+ "integrity": "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">= 14.0.0"
+ "node": ">=18"
}
},
- "node_modules/@algolia/requester-node-http": {
- "version": "5.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.24.0.tgz",
- "integrity": "sha512-zM+nnqZpiQj20PyAh6uvgdSz+hD7Rj7UfAZwizqNP+bLvcbGXZwABERobuilkCQqyDBBH4uv0yqIcPRl8dSBEg==",
- "dev": true,
- "dependencies": {
- "@algolia/client-common": "5.24.0"
- },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz",
+ "integrity": "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
"engines": {
- "node": ">= 14.0.0"
+ "node": ">=18"
}
},
- "node_modules/@ampproject/remapping": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
- "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
- "dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz",
+ "integrity": "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
"engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@ampproject/remapping/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
+ "node": ">=18"
}
},
- "node_modules/@antfu/install-pkg": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz",
- "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==",
- "dev": true,
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz",
+ "integrity": "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==",
+ "cpu": [
+ "arm"
+ ],
"license": "MIT",
- "dependencies": {
- "package-manager-detector": "^1.3.0",
- "tinyexec": "^1.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@antfu/utils": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz",
- "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz",
+ "integrity": "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@azure/abort-controller": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz",
- "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.6.2"
- },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz",
+ "integrity": "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@azure/core-auth": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.9.0.tgz",
- "integrity": "sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==",
- "dev": true,
- "dependencies": {
- "@azure/abort-controller": "^2.0.0",
- "@azure/core-util": "^1.11.0",
- "tslib": "^2.6.2"
- },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz",
+ "integrity": "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==",
+ "cpu": [
+ "loong64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@azure/core-client": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.9.4.tgz",
- "integrity": "sha512-f7IxTD15Qdux30s2qFARH+JxgwxWLG2Rlr4oSkPGuLWm+1p5y1+C04XGLA0vmX6EtqfutmjvpNmAfgwVIS5hpw==",
- "dev": true,
- "dependencies": {
- "@azure/abort-controller": "^2.0.0",
- "@azure/core-auth": "^1.4.0",
- "@azure/core-rest-pipeline": "^1.20.0",
- "@azure/core-tracing": "^1.0.0",
- "@azure/core-util": "^1.6.1",
- "@azure/logger": "^1.0.0",
- "tslib": "^2.6.2"
- },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz",
+ "integrity": "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==",
+ "cpu": [
+ "mips64el"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@azure/core-http-compat": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@azure/core-http-compat/-/core-http-compat-2.3.0.tgz",
- "integrity": "sha512-qLQujmUypBBG0gxHd0j6/Jdmul6ttl24c8WGiLXIk7IHXdBlfoBqW27hyz3Xn6xbfdyVSarl1Ttbk0AwnZBYCw==",
- "dev": true,
- "dependencies": {
- "@azure/abort-controller": "^2.0.0",
- "@azure/core-client": "^1.3.0",
- "@azure/core-rest-pipeline": "^1.20.0"
- },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz",
+ "integrity": "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@azure/core-lro": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.7.2.tgz",
- "integrity": "sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==",
- "dev": true,
- "dependencies": {
- "@azure/abort-controller": "^2.0.0",
- "@azure/core-util": "^1.2.0",
- "@azure/logger": "^1.0.0",
- "tslib": "^2.6.2"
- },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz",
+ "integrity": "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@azure/core-paging": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.6.2.tgz",
- "integrity": "sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.6.2"
- },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz",
+ "integrity": "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@azure/core-rest-pipeline": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.20.0.tgz",
- "integrity": "sha512-ASoP8uqZBS3H/8N8at/XwFr6vYrRP3syTK0EUjDXQy0Y1/AUS+QeIRThKmTNJO2RggvBBxaXDPM7YoIwDGeA0g==",
- "dev": true,
- "dependencies": {
- "@azure/abort-controller": "^2.0.0",
- "@azure/core-auth": "^1.8.0",
- "@azure/core-tracing": "^1.0.1",
- "@azure/core-util": "^1.11.0",
- "@azure/logger": "^1.0.0",
- "@typespec/ts-http-runtime": "^0.2.2",
- "tslib": "^2.6.2"
- },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz",
+ "integrity": "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@azure/core-tracing": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.2.0.tgz",
- "integrity": "sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.6.2"
- },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz",
+ "integrity": "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@azure/core-util": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.12.0.tgz",
- "integrity": "sha512-13IyjTQgABPARvG90+N2dXpC+hwp466XCdQXPCRlbWHgd3SJd5Q1VvaBGv6k1BIa4MQm6hAF1UBU1m8QUxV8sQ==",
- "dev": true,
- "dependencies": {
- "@azure/abort-controller": "^2.0.0",
- "@typespec/ts-http-runtime": "^0.2.2",
- "tslib": "^2.6.2"
- },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz",
+ "integrity": "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@azure/identity": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.9.1.tgz",
- "integrity": "sha512-986D7Cf1AOwYqSDtO/FnMAyk/Jc8qpftkGsxuehoh4F85MhQ4fICBGX/44+X1y78lN4Sqib3Bsoaoh/FvOGgmg==",
- "dev": true,
- "dependencies": {
- "@azure/abort-controller": "^2.0.0",
- "@azure/core-auth": "^1.9.0",
- "@azure/core-client": "^1.9.2",
- "@azure/core-rest-pipeline": "^1.17.0",
- "@azure/core-tracing": "^1.0.0",
- "@azure/core-util": "^1.11.0",
- "@azure/logger": "^1.0.0",
- "@azure/msal-browser": "^4.2.0",
- "@azure/msal-node": "^3.5.0",
- "open": "^10.1.0",
- "tslib": "^2.2.0"
- },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz",
+ "integrity": "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@azure/identity/node_modules/define-lazy-prop": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
- "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
- "dev": true,
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz",
+ "integrity": "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=18"
}
},
- "node_modules/@azure/identity/node_modules/is-wsl": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz",
- "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
- "dev": true,
- "dependencies": {
- "is-inside-container": "^1.0.0"
- },
+ "node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz",
+ "integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
"engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=18"
}
},
- "node_modules/@azure/identity/node_modules/open": {
- "version": "10.1.2",
- "resolved": "https://registry.npmjs.org/open/-/open-10.1.2.tgz",
- "integrity": "sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==",
- "dev": true,
- "dependencies": {
- "default-browser": "^5.2.1",
- "define-lazy-prop": "^3.0.0",
- "is-inside-container": "^1.0.0",
- "is-wsl": "^3.1.0"
- },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz",
+ "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
"engines": {
"node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@azure/keyvault-common": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@azure/keyvault-common/-/keyvault-common-2.0.0.tgz",
- "integrity": "sha512-wRLVaroQtOqfg60cxkzUkGKrKMsCP6uYXAOomOIysSMyt1/YM0eUn9LqieAWM8DLcU4+07Fio2YGpPeqUbpP9w==",
- "dev": true,
- "dependencies": {
- "@azure/abort-controller": "^2.0.0",
- "@azure/core-auth": "^1.3.0",
- "@azure/core-client": "^1.5.0",
- "@azure/core-rest-pipeline": "^1.8.0",
- "@azure/core-tracing": "^1.0.0",
- "@azure/core-util": "^1.10.0",
- "@azure/logger": "^1.1.4",
- "tslib": "^2.2.0"
- },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz",
+ "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@azure/keyvault-keys": {
- "version": "4.9.0",
- "resolved": "https://registry.npmjs.org/@azure/keyvault-keys/-/keyvault-keys-4.9.0.tgz",
- "integrity": "sha512-ZBP07+K4Pj3kS4TF4XdkqFcspWwBHry3vJSOFM5k5ZABvf7JfiMonvaFk2nBF6xjlEbMpz5PE1g45iTMme0raQ==",
- "dev": true,
- "dependencies": {
- "@azure/abort-controller": "^2.0.0",
- "@azure/core-auth": "^1.3.0",
- "@azure/core-client": "^1.5.0",
- "@azure/core-http-compat": "^2.0.1",
- "@azure/core-lro": "^2.2.0",
- "@azure/core-paging": "^1.1.1",
- "@azure/core-rest-pipeline": "^1.8.1",
- "@azure/core-tracing": "^1.0.0",
- "@azure/core-util": "^1.0.0",
- "@azure/keyvault-common": "^2.0.0",
- "@azure/logger": "^1.0.0",
- "tslib": "^2.2.0"
- },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz",
+ "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@azure/logger": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.2.0.tgz",
- "integrity": "sha512-0hKEzLhpw+ZTAfNJyRrn6s+V0nDWzXk9OjBr2TiGIu0OfMr5s2V4FpKLTAK3Ca5r5OKLbf4hkOGDPyiRjie/jA==",
- "dev": true,
- "dependencies": {
- "@typespec/ts-http-runtime": "^0.2.2",
- "tslib": "^2.6.2"
- },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz",
+ "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/@azure/msal-browser": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-4.11.1.tgz",
- "integrity": "sha512-jPxASelqmP/0R1jZuYW8cboba95M9jpUi2ZqzgftddlAIRZA9KL/YaESuT55zu9+BIPS5Eo2kuhy3q2jjU3whg==",
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
+ "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@azure/msal-common": "15.5.2"
+ "eslint-visitor-keys": "^3.4.3"
},
"engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@azure/msal-common": {
- "version": "15.5.2",
- "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-15.5.2.tgz",
- "integrity": "sha512-+G85T6oA6i4ubzjOw4BpWd8QCG2FunYN4jaz96gw3SUd8+89vwuiqLg6mtnm/lkPC95bayD+CwuwFn9wvhQGow==",
- "dev": true,
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.12.2",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
+ "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.8.0"
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
- "node_modules/@azure/msal-node": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-3.5.2.tgz",
- "integrity": "sha512-mt97ieL+IpD/7Hj7Q6pGTPk3dBgvhkOV1HYyH+PkOakhbOOCEb9flAteDgBfADRXBsYJZT+ZlEbPJa4IDn9HZw==",
+ "node_modules/@eslint/config-array": {
+ "version": "0.21.2",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz",
+ "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@azure/msal-common": "15.5.2",
- "jsonwebtoken": "^9.0.0",
- "uuid": "^8.3.0"
+ "@eslint/object-schema": "^2.1.7",
+ "debug": "^4.3.1",
+ "minimatch": "^3.1.5"
},
"engines": {
- "node": ">=16"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "node_modules/@azure/msal-node/node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "node_modules/@eslint/config-array/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true,
- "bin": {
- "uuid": "dist/bin/uuid"
- }
+ "license": "MIT"
},
- "node_modules/@babel/code-frame": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
- "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
+ "node_modules/@eslint/config-array/node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.27.1",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.1.1"
- },
- "engines": {
- "node": ">=6.9.0"
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
}
},
- "node_modules/@babel/compat-data": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz",
- "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==",
+ "node_modules/@eslint/config-array/node_modules/minimatch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
- "license": "MIT",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
"engines": {
- "node": ">=6.9.0"
+ "node": "*"
}
},
- "node_modules/@babel/core": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz",
- "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==",
+ "node_modules/@eslint/config-helpers": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
+ "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
"dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.27.1",
- "@babel/generator": "^7.28.0",
- "@babel/helper-compilation-targets": "^7.27.2",
- "@babel/helper-module-transforms": "^7.27.3",
- "@babel/helpers": "^7.27.6",
- "@babel/parser": "^7.28.0",
- "@babel/template": "^7.27.2",
- "@babel/traverse": "^7.28.0",
- "@babel/types": "^7.28.0",
- "convert-source-map": "^2.0.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.3",
- "semver": "^6.3.1"
+ "@eslint/core": "^0.17.0"
},
"engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "node_modules/@babel/core/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "node_modules/@eslint/core": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz",
+ "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",
"dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/json-schema": "^7.0.15"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "node_modules/@babel/generator": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz",
- "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==",
+ "node_modules/@eslint/eslintrc": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz",
+ "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/parser": "^7.28.0",
- "@babel/types": "^7.28.0",
- "@jridgewell/gen-mapping": "^0.3.12",
- "@jridgewell/trace-mapping": "^0.3.28",
- "jsesc": "^3.0.2"
+ "ajv": "^6.14.0",
+ "debug": "^4.3.2",
+ "espree": "^10.0.1",
+ "globals": "^14.0.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.1",
+ "minimatch": "^3.1.5",
+ "strip-json-comments": "^3.1.1"
},
"engines": {
- "node": ">=6.9.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.29",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz",
- "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==",
+ "node_modules/@eslint/eslintrc/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
}
},
- "node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.27.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz",
- "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==",
+ "node_modules/@eslint/eslintrc/node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "@babel/types": "^7.27.3"
- },
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 4"
}
},
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.27.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz",
- "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==",
+ "node_modules/@eslint/eslintrc/node_modules/minimatch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
- "license": "MIT",
+ "license": "ISC",
"dependencies": {
- "@babel/compat-data": "^7.27.2",
- "@babel/helper-validator-option": "^7.27.1",
- "browserslist": "^4.24.0",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.1"
+ "brace-expansion": "^1.1.7"
},
"engines": {
- "node": ">=6.9.0"
+ "node": "*"
}
},
- "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "node_modules/@eslint/js": {
+ "version": "9.39.4",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz",
+ "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==",
"dev": true,
- "dependencies": {
- "yallist": "^3.0.2"
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://eslint.org/donate"
}
},
- "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "node_modules/@eslint/object-schema": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz",
+ "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
"dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "node_modules/@babel/helper-compilation-targets/node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
- },
- "node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz",
- "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==",
+ "node_modules/@eslint/plugin-kit": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",
+ "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.1",
- "@babel/helper-member-expression-to-functions": "^7.27.1",
- "@babel/helper-optimise-call-expression": "^7.27.1",
- "@babel/helper-replace-supers": "^7.27.1",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
- "@babel/traverse": "^7.27.1",
- "semver": "^6.3.1"
+ "@eslint/core": "^0.17.0",
+ "levn": "^0.4.1"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz",
- "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==",
- "dev": true,
+ "node_modules/@featherscloud/pinion": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/@featherscloud/pinion/-/pinion-0.5.5.tgz",
+ "integrity": "sha512-YgjX6DglYgaHmpona0lHfY4t92CiPH9xGowYR/dm2A5bghSx/w83SVnVvV9dqeJruXYAVNhzzmLYcVjUgpTwBA==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.1",
- "regexpu-core": "^6.2.0",
- "semver": "^6.3.1"
+ "@types/inquirer": "^9.0.7",
+ "chalk": "^5.3.0",
+ "commander": "^12.1.0",
+ "inquirer": "^9.3.2",
+ "tsx": "^4.19.1"
+ },
+ "bin": {
+ "pinion": "bin/pinion.js"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 20"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/daffl"
}
},
- "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "node_modules/@humanfs/core": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
+ "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
"dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18.0"
}
},
- "node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz",
- "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==",
+ "node_modules/@humanfs/node": {
+ "version": "0.16.7",
+ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz",
+ "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==",
"dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"dependencies": {
- "@babel/helper-compilation-targets": "^7.27.2",
- "@babel/helper-plugin-utils": "^7.27.1",
- "debug": "^4.4.1",
- "lodash.debounce": "^4.0.8",
- "resolve": "^1.22.10"
+ "@humanfs/core": "^0.19.1",
+ "@humanwhocodes/retry": "^0.4.0"
},
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ "engines": {
+ "node": ">=18.18.0"
}
},
- "node_modules/@babel/helper-globals": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
- "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
}
},
- "node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz",
- "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==",
+ "node_modules/@humanwhocodes/retry": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
+ "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
"dev": true,
- "dependencies": {
- "@babel/traverse": "^7.27.1",
- "@babel/types": "^7.27.1"
- },
+ "license": "Apache-2.0",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=18.18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
}
},
- "node_modules/@babel/helper-module-imports": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz",
- "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==",
+ "node_modules/@hutson/parse-repository-url": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz",
+ "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==",
"dev": true,
- "dependencies": {
- "@babel/traverse": "^7.27.1",
- "@babel/types": "^7.27.1"
- },
+ "license": "Apache-2.0",
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.27.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz",
- "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==",
- "dev": true,
+ "node_modules/@inquirer/external-editor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz",
+ "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==",
"license": "MIT",
"dependencies": {
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-validator-identifier": "^7.27.1",
- "@babel/traverse": "^7.27.3"
+ "chardet": "^2.1.1",
+ "iconv-lite": "^0.7.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=18"
},
"peerDependencies": {
- "@babel/core": "^7.0.0"
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
}
},
- "node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz",
- "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==",
+ "node_modules/@inquirer/figures": {
+ "version": "1.0.15",
+ "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz",
+ "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/types": "^7.27.1"
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12"
}
},
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz",
- "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==",
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
- "node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz",
- "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==",
+ "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
"dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.1",
- "@babel/helper-wrap-function": "^7.27.1",
- "@babel/traverse": "^7.27.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@babel/helper-replace-supers": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz",
- "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==",
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-member-expression-to-functions": "^7.27.1",
- "@babel/helper-optimise-call-expression": "^7.27.1",
- "@babel/traverse": "^7.27.1"
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz",
- "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==",
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/traverse": "^7.27.1",
- "@babel/types": "^7.27.1"
+ "ansi-regex": "^6.2.2"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
- "node_modules/@babel/helper-string-parser": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
- "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
- "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
- "engines": {
- "node": ">=6.9.0"
- }
+ "node_modules/@isaacs/string-locale-compare": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz",
+ "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==",
+ "dev": true,
+ "license": "ISC"
},
- "node_modules/@babel/helper-validator-option": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
- "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=8"
}
},
- "node_modules/@babel/helper-wrap-function": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz",
- "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==",
+ "node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/template": "^7.27.1",
- "@babel/traverse": "^7.27.1",
- "@babel/types": "^7.27.1"
+ "@sinclair/typebox": "^0.27.8"
},
"engines": {
- "node": ">=6.9.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@babel/helpers": {
- "version": "7.28.2",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.2.tgz",
- "integrity": "sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==",
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/template": "^7.27.2",
- "@babel/types": "^7.28.2"
- },
- "engines": {
- "node": ">=6.9.0"
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
}
},
- "node_modules/@babel/parser": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz",
- "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==",
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
"license": "MIT",
- "dependencies": {
- "@babel/types": "^7.28.0"
- },
- "bin": {
- "parser": "bin/babel-parser.js"
- },
"engines": {
"node": ">=6.0.0"
}
},
- "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz",
- "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==",
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/traverse": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
- "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz",
- "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==",
+ "node_modules/@lerna/create": {
+ "version": "8.2.4",
+ "resolved": "https://registry.npmjs.org/@lerna/create/-/create-8.2.4.tgz",
+ "integrity": "sha512-A8AlzetnS2WIuhijdAzKUyFpR5YbLLfV3luQ4lzBgIBgRfuoBDZeF+RSZPhra+7A6/zTUlrbhKZIOi/MNhqgvQ==",
+ "deprecated": "This package is an implementation detail of Lerna and is no longer published separately.",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@npmcli/arborist": "7.5.4",
+ "@npmcli/package-json": "5.2.0",
+ "@npmcli/run-script": "8.1.0",
+ "@nx/devkit": ">=17.1.2 < 21",
+ "@octokit/plugin-enterprise-rest": "6.0.1",
+ "@octokit/rest": "20.1.2",
+ "aproba": "2.0.0",
+ "byte-size": "8.1.1",
+ "chalk": "4.1.0",
+ "clone-deep": "4.0.1",
+ "cmd-shim": "6.0.3",
+ "color-support": "1.1.3",
+ "columnify": "1.6.0",
+ "console-control-strings": "^1.1.0",
+ "conventional-changelog-core": "5.0.1",
+ "conventional-recommended-bump": "7.0.1",
+ "cosmiconfig": "9.0.0",
+ "dedent": "1.5.3",
+ "execa": "5.0.0",
+ "fs-extra": "^11.2.0",
+ "get-stream": "6.0.0",
+ "git-url-parse": "14.0.0",
+ "glob-parent": "6.0.2",
+ "graceful-fs": "4.2.11",
+ "has-unicode": "2.0.1",
+ "ini": "^1.3.8",
+ "init-package-json": "6.0.3",
+ "inquirer": "^8.2.4",
+ "is-ci": "3.0.1",
+ "is-stream": "2.0.0",
+ "js-yaml": "4.1.0",
+ "libnpmpublish": "9.0.9",
+ "load-json-file": "6.2.0",
+ "make-dir": "4.0.0",
+ "minimatch": "3.0.5",
+ "multimatch": "5.0.0",
+ "node-fetch": "2.6.7",
+ "npm-package-arg": "11.0.2",
+ "npm-packlist": "8.0.2",
+ "npm-registry-fetch": "^17.1.0",
+ "nx": ">=17.1.2 < 21",
+ "p-map": "4.0.0",
+ "p-map-series": "2.1.0",
+ "p-queue": "6.6.2",
+ "p-reduce": "^2.1.0",
+ "pacote": "^18.0.6",
+ "pify": "5.0.0",
+ "read-cmd-shim": "4.0.0",
+ "resolve-from": "5.0.0",
+ "rimraf": "^4.4.1",
+ "semver": "^7.3.4",
+ "set-blocking": "^2.0.0",
+ "signal-exit": "3.0.7",
+ "slash": "^3.0.0",
+ "ssri": "^10.0.6",
+ "string-width": "^4.2.3",
+ "tar": "6.2.1",
+ "temp-dir": "1.0.0",
+ "through": "2.3.8",
+ "tinyglobby": "0.2.12",
+ "upath": "2.0.1",
+ "uuid": "^10.0.0",
+ "validate-npm-package-license": "^3.0.4",
+ "validate-npm-package-name": "5.0.1",
+ "wide-align": "1.1.5",
+ "write-file-atomic": "5.0.1",
+ "write-pkg": "4.0.0",
+ "yargs": "17.7.2",
+ "yargs-parser": "21.1.1"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz",
- "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==",
+ "node_modules/@lerna/create/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=8"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz",
- "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==",
+ "node_modules/@lerna/create/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@lerna/create/node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
- "@babel/plugin-transform-optional-chaining": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.13.0"
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
}
},
- "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz",
- "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==",
+ "node_modules/@lerna/create/node_modules/chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/traverse": "^7.27.1"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=10"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.21.0-placeholder-for-preset-env.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
- "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+ "node_modules/@lerna/create/node_modules/cli-width": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
+ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz",
- "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==",
+ "node_modules/@lerna/create/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12.0.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
}
},
- "node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz",
- "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==",
+ "node_modules/@lerna/create/node_modules/inquirer": {
+ "version": "8.2.7",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.7.tgz",
+ "integrity": "sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@inquirer/external-editor": "^1.0.0",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.1",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^3.0.0",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.21",
+ "mute-stream": "0.0.8",
+ "ora": "^5.4.1",
+ "run-async": "^2.4.0",
+ "rxjs": "^7.5.5",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "through": "^2.3.6",
+ "wrap-ansi": "^6.0.1"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=12.0.0"
}
},
- "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
- "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+ "node_modules/@lerna/create/node_modules/inquirer/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=10"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz",
- "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==",
+ "node_modules/@lerna/create/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
+ "argparse": "^2.0.1"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz",
- "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==",
+ "node_modules/@lerna/create/node_modules/minimatch": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz",
+ "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==",
"dev": true,
- "license": "MIT",
+ "license": "ISC",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-remap-async-to-generator": "^7.27.1",
- "@babel/traverse": "^7.28.0"
+ "brace-expansion": "^1.1.7"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "*"
}
},
- "node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz",
- "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==",
+ "node_modules/@lerna/create/node_modules/mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
"dev": true,
- "dependencies": {
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-remap-async-to-generator": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
+ "license": "ISC"
},
- "node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz",
- "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==",
+ "node_modules/@lerna/create/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz",
- "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==",
+ "node_modules/@lerna/create/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=8"
}
},
- "node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz",
- "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==",
+ "node_modules/@lerna/create/node_modules/run-async": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
"dev": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=0.12.0"
}
},
- "node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz",
- "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==",
+ "node_modules/@lerna/create/node_modules/tinyglobby": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz",
+ "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "fdir": "^6.4.3",
+ "picomatch": "^4.0.2"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.12.0"
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
}
},
- "node_modules/@babel/plugin-transform-classes": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz",
- "integrity": "sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==",
+ "node_modules/@napi-rs/wasm-runtime": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz",
+ "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.3",
- "@babel/helper-compilation-targets": "^7.27.2",
- "@babel/helper-globals": "^7.28.0",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-replace-supers": "^7.27.1",
- "@babel/traverse": "^7.28.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@emnapi/core": "^1.1.0",
+ "@emnapi/runtime": "^1.1.0",
+ "@tybys/wasm-util": "^0.9.0"
}
},
- "node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz",
- "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==",
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/template": "^7.27.1"
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 8"
}
},
- "node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz",
- "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==",
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/traverse": "^7.28.0"
- },
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 8"
}
},
- "node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz",
- "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==",
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 8"
}
},
- "node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz",
- "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==",
+ "node_modules/@npmcli/agent": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz",
+ "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "agent-base": "^7.1.0",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.1",
+ "lru-cache": "^10.0.1",
+ "socks-proxy-agent": "^8.0.3"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz",
- "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==",
+ "node_modules/@npmcli/arborist": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-7.5.4.tgz",
+ "integrity": "sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@isaacs/string-locale-compare": "^1.1.0",
+ "@npmcli/fs": "^3.1.1",
+ "@npmcli/installed-package-contents": "^2.1.0",
+ "@npmcli/map-workspaces": "^3.0.2",
+ "@npmcli/metavuln-calculator": "^7.1.1",
+ "@npmcli/name-from-folder": "^2.0.0",
+ "@npmcli/node-gyp": "^3.0.0",
+ "@npmcli/package-json": "^5.1.0",
+ "@npmcli/query": "^3.1.0",
+ "@npmcli/redact": "^2.0.0",
+ "@npmcli/run-script": "^8.1.0",
+ "bin-links": "^4.0.4",
+ "cacache": "^18.0.3",
+ "common-ancestor-path": "^1.0.1",
+ "hosted-git-info": "^7.0.2",
+ "json-parse-even-better-errors": "^3.0.2",
+ "json-stringify-nice": "^1.1.4",
+ "lru-cache": "^10.2.2",
+ "minimatch": "^9.0.4",
+ "nopt": "^7.2.1",
+ "npm-install-checks": "^6.2.0",
+ "npm-package-arg": "^11.0.2",
+ "npm-pick-manifest": "^9.0.1",
+ "npm-registry-fetch": "^17.0.1",
+ "pacote": "^18.0.6",
+ "parse-conflict-json": "^3.0.0",
+ "proc-log": "^4.2.0",
+ "proggy": "^2.0.0",
+ "promise-all-reject-late": "^1.0.0",
+ "promise-call-limit": "^3.0.1",
+ "read-package-json-fast": "^3.0.2",
+ "semver": "^7.3.7",
+ "ssri": "^10.0.6",
+ "treeverse": "^3.0.0",
+ "walk-up-path": "^3.0.1"
},
- "engines": {
- "node": ">=6.9.0"
+ "bin": {
+ "arborist": "bin/index.js"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-dynamic-import": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz",
- "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==",
+ "node_modules/@npmcli/arborist/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
+ "license": "MIT"
},
- "node_modules/@babel/plugin-transform-explicit-resource-management": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz",
- "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==",
+ "node_modules/@npmcli/arborist/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/plugin-transform-destructuring": "^7.28.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz",
- "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==",
+ "node_modules/@npmcli/arborist/node_modules/minimatch": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "brace-expansion": "^2.0.2"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=16 || 14 >=14.17"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@babel/plugin-transform-export-namespace-from": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz",
- "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==",
+ "node_modules/@npmcli/fs": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz",
+ "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "semver": "^7.3.5"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-for-of": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz",
- "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==",
+ "node_modules/@npmcli/git": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz",
+ "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
+ "@npmcli/promise-spawn": "^7.0.0",
+ "ini": "^4.1.3",
+ "lru-cache": "^10.0.1",
+ "npm-pick-manifest": "^9.0.0",
+ "proc-log": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "promise-retry": "^2.0.1",
+ "semver": "^7.3.5",
+ "which": "^4.0.0"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-function-name": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz",
- "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==",
+ "node_modules/@npmcli/git/node_modules/ini": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz",
+ "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==",
"dev": true,
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/traverse": "^7.27.1"
- },
+ "license": "ISC",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-json-strings": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz",
- "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==",
+ "node_modules/@npmcli/git/node_modules/isexe": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz",
+ "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==",
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "BlueOak-1.0.0",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=18"
}
},
- "node_modules/@babel/plugin-transform-literals": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz",
- "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==",
+ "node_modules/@npmcli/git/node_modules/which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
+ "isexe": "^3.1.1"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz",
- "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "bin": {
+ "node-which": "bin/which.js"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "^16.13.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz",
- "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==",
+ "node_modules/@npmcli/installed-package-contents": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz",
+ "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "npm-bundled": "^3.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
},
- "engines": {
- "node": ">=6.9.0"
+ "bin": {
+ "installed-package-contents": "bin/index.js"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz",
- "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==",
+ "node_modules/@npmcli/map-workspaces": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz",
+ "integrity": "sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-module-transforms": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@npmcli/name-from-folder": "^2.0.0",
+ "glob": "^10.2.2",
+ "minimatch": "^9.0.0",
+ "read-package-json-fast": "^3.0.0"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz",
- "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==",
+ "node_modules/@npmcli/map-workspaces/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true,
- "dependencies": {
- "@babel/helper-module-transforms": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
+ "license": "MIT"
},
- "node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz",
- "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==",
+ "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-validator-identifier": "^7.27.1",
- "@babel/traverse": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz",
- "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==",
+ "node_modules/@npmcli/map-workspaces/node_modules/minimatch": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-module-transforms": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "brace-expansion": "^2.0.2"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=16 || 14 >=14.17"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz",
- "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==",
+ "node_modules/@npmcli/metavuln-calculator": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.1.tgz",
+ "integrity": "sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "cacache": "^18.0.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "pacote": "^18.0.0",
+ "proc-log": "^4.1.0",
+ "semver": "^7.3.5"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-new-target": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz",
- "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==",
+ "node_modules/@npmcli/name-from-folder": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz",
+ "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==",
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "ISC",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz",
- "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==",
+ "node_modules/@npmcli/node-gyp": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz",
+ "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==",
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "ISC",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz",
- "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==",
+ "node_modules/@npmcli/package-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz",
+ "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@npmcli/git": "^5.0.0",
+ "glob": "^10.2.2",
+ "hosted-git-info": "^7.0.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "normalize-package-data": "^6.0.0",
+ "proc-log": "^4.0.0",
+ "semver": "^7.5.3"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz",
- "integrity": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==",
+ "node_modules/@npmcli/promise-spawn": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz",
+ "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==",
"dev": true,
- "license": "MIT",
+ "license": "ISC",
"dependencies": {
- "@babel/helper-compilation-targets": "^7.27.2",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/plugin-transform-destructuring": "^7.28.0",
- "@babel/plugin-transform-parameters": "^7.27.7",
- "@babel/traverse": "^7.28.0"
+ "which": "^4.0.0"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-object-super": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz",
- "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==",
+ "node_modules/@npmcli/promise-spawn/node_modules/isexe": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz",
+ "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==",
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-replace-supers": "^7.27.1"
- },
+ "license": "BlueOak-1.0.0",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=18"
}
},
- "node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz",
- "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==",
+ "node_modules/@npmcli/promise-spawn/node_modules/which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "isexe": "^3.1.1"
},
- "engines": {
- "node": ">=6.9.0"
+ "bin": {
+ "node-which": "bin/which.js"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "engines": {
+ "node": "^16.13.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz",
- "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==",
+ "node_modules/@npmcli/query": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-3.1.0.tgz",
+ "integrity": "sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
+ "postcss-selector-parser": "^6.0.10"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-parameters": {
- "version": "7.27.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz",
- "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==",
+ "node_modules/@npmcli/redact": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz",
+ "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "ISC",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz",
- "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==",
+ "node_modules/@npmcli/run-script": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz",
+ "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@npmcli/node-gyp": "^3.0.0",
+ "@npmcli/package-json": "^5.0.0",
+ "@npmcli/promise-spawn": "^7.0.0",
+ "node-gyp": "^10.0.0",
+ "proc-log": "^4.0.0",
+ "which": "^4.0.0"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz",
- "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==",
+ "node_modules/@npmcli/run-script/node_modules/isexe": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz",
+ "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==",
"dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.1",
- "@babel/helper-create-class-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "BlueOak-1.0.0",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=18"
}
},
- "node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz",
- "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==",
+ "node_modules/@npmcli/run-script/node_modules/which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "isexe": "^3.1.1"
},
- "engines": {
- "node": ">=6.9.0"
+ "bin": {
+ "node-which": "bin/which.js"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "engines": {
+ "node": "^16.13.0 || >=18.0.0"
}
},
- "node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.28.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.1.tgz",
- "integrity": "sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg==",
+ "node_modules/@nx/devkit": {
+ "version": "20.8.4",
+ "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-20.8.4.tgz",
+ "integrity": "sha512-3r+6QmIXXAWL6K7m8vAbW31aniAZmZAZXeMhOhWcJoOAU7ggpCQaM8JP8/kO5ov/Bmhyf0i/SSVXI6kwiR5WNQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
+ "ejs": "^3.1.7",
+ "enquirer": "~2.3.6",
+ "ignore": "^5.0.4",
+ "minimatch": "9.0.3",
+ "semver": "^7.5.3",
+ "tmp": "~0.2.1",
+ "tslib": "^2.3.0",
+ "yargs-parser": "21.1.1"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "nx": ">= 19 <= 21"
}
},
- "node_modules/@babel/plugin-transform-regexp-modifiers": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz",
- "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==",
+ "node_modules/@nx/devkit/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
+ "license": "MIT"
},
- "node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz",
- "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==",
+ "node_modules/@nx/devkit/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz",
- "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==",
+ "node_modules/@nx/devkit/node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 4"
}
},
- "node_modules/@babel/plugin-transform-spread": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz",
- "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==",
+ "node_modules/@nx/devkit/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=16 || 14 >=14.17"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz",
- "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==",
+ "node_modules/@nx/nx-darwin-arm64": {
+ "version": "20.8.4",
+ "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-20.8.4.tgz",
+ "integrity": "sha512-8Y7+4wj1qoZsuDRpnuiHzSIsMt3VqtJ0su8dgd/MyGccvvi4pndan2R5yTiVw/wmbMxtBmZ6PO6Z8dgSIrMVog==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz",
- "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==",
+ "node_modules/@nx/nx-darwin-x64": {
+ "version": "20.8.4",
+ "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-20.8.4.tgz",
+ "integrity": "sha512-2lfuxRc56QWnAysMhcD03tpCPiRzV1+foUq0MhV2sSBIybXmgV4wHLkPZNhlBCl4FNXrWiZiN1OJ2X9AGiOdug==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz",
- "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==",
+ "node_modules/@nx/nx-freebsd-x64": {
+ "version": "20.8.4",
+ "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-20.8.4.tgz",
+ "integrity": "sha512-99vnUXZy+OUBHU+8Yhabre2qafepKg9GKkQkhmXvJGqOmuIsepK7wirUFo2PiVM8YhS6UV2rv6hKAZcQ7skYyg==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz",
- "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==",
+ "node_modules/@nx/nx-linux-arm-gnueabihf": {
+ "version": "20.8.4",
+ "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-20.8.4.tgz",
+ "integrity": "sha512-dht73zpnpzEUEzMHFQs4mfiwZH3WcJgQNWkD5p7WkeJewHq2Yyd0eG5Jg3kB7wnFtwPUV1eNJRM5rephgylkLA==",
+ "cpu": [
+ "arm"
+ ],
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/plugin-transform-unicode-property-regex": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz",
- "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==",
+ "node_modules/@nx/nx-linux-arm64-gnu": {
+ "version": "20.8.4",
+ "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-20.8.4.tgz",
+ "integrity": "sha512-syXxbJZ0yPaqzVmB28QJgUtaarSiW/PQmv/5Z2Ps8rCi7kYylISPVNjP1NNiIOcGDRWbHqoBfM0bEGPfSp0rBQ==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz",
- "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==",
+ "node_modules/@nx/nx-linux-arm64-musl": {
+ "version": "20.8.4",
+ "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-20.8.4.tgz",
+ "integrity": "sha512-AlZZFolS/S0FahRKG7rJ0Z9CgmIkyzHgGaoy3qNEMDEjFhR3jt2ZZSLp90W7zjgrxojOo90ajNMrg2UmtcQRDA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz",
- "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==",
+ "node_modules/@nx/nx-linux-x64-gnu": {
+ "version": "20.8.4",
+ "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.8.4.tgz",
+ "integrity": "sha512-MSu+xVNdR95tuuO+eL/a/ZeMlhfrZ627On5xaCZXnJ+lFxNg/S4nlKZQk0Eq5hYALCd/GKgFGasRdlRdOtvGPg==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1"
- },
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/preset-env": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.0.tgz",
- "integrity": "sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/compat-data": "^7.28.0",
- "@babel/helper-compilation-targets": "^7.27.2",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/helper-validator-option": "^7.27.1",
- "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1",
- "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1",
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1",
- "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
- "@babel/plugin-syntax-import-assertions": "^7.27.1",
- "@babel/plugin-syntax-import-attributes": "^7.27.1",
- "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
- "@babel/plugin-transform-arrow-functions": "^7.27.1",
- "@babel/plugin-transform-async-generator-functions": "^7.28.0",
- "@babel/plugin-transform-async-to-generator": "^7.27.1",
- "@babel/plugin-transform-block-scoped-functions": "^7.27.1",
- "@babel/plugin-transform-block-scoping": "^7.28.0",
- "@babel/plugin-transform-class-properties": "^7.27.1",
- "@babel/plugin-transform-class-static-block": "^7.27.1",
- "@babel/plugin-transform-classes": "^7.28.0",
- "@babel/plugin-transform-computed-properties": "^7.27.1",
- "@babel/plugin-transform-destructuring": "^7.28.0",
- "@babel/plugin-transform-dotall-regex": "^7.27.1",
- "@babel/plugin-transform-duplicate-keys": "^7.27.1",
- "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1",
- "@babel/plugin-transform-dynamic-import": "^7.27.1",
- "@babel/plugin-transform-explicit-resource-management": "^7.28.0",
- "@babel/plugin-transform-exponentiation-operator": "^7.27.1",
- "@babel/plugin-transform-export-namespace-from": "^7.27.1",
- "@babel/plugin-transform-for-of": "^7.27.1",
- "@babel/plugin-transform-function-name": "^7.27.1",
- "@babel/plugin-transform-json-strings": "^7.27.1",
- "@babel/plugin-transform-literals": "^7.27.1",
- "@babel/plugin-transform-logical-assignment-operators": "^7.27.1",
- "@babel/plugin-transform-member-expression-literals": "^7.27.1",
- "@babel/plugin-transform-modules-amd": "^7.27.1",
- "@babel/plugin-transform-modules-commonjs": "^7.27.1",
- "@babel/plugin-transform-modules-systemjs": "^7.27.1",
- "@babel/plugin-transform-modules-umd": "^7.27.1",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1",
- "@babel/plugin-transform-new-target": "^7.27.1",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1",
- "@babel/plugin-transform-numeric-separator": "^7.27.1",
- "@babel/plugin-transform-object-rest-spread": "^7.28.0",
- "@babel/plugin-transform-object-super": "^7.27.1",
- "@babel/plugin-transform-optional-catch-binding": "^7.27.1",
- "@babel/plugin-transform-optional-chaining": "^7.27.1",
- "@babel/plugin-transform-parameters": "^7.27.7",
- "@babel/plugin-transform-private-methods": "^7.27.1",
- "@babel/plugin-transform-private-property-in-object": "^7.27.1",
- "@babel/plugin-transform-property-literals": "^7.27.1",
- "@babel/plugin-transform-regenerator": "^7.28.0",
- "@babel/plugin-transform-regexp-modifiers": "^7.27.1",
- "@babel/plugin-transform-reserved-words": "^7.27.1",
- "@babel/plugin-transform-shorthand-properties": "^7.27.1",
- "@babel/plugin-transform-spread": "^7.27.1",
- "@babel/plugin-transform-sticky-regex": "^7.27.1",
- "@babel/plugin-transform-template-literals": "^7.27.1",
- "@babel/plugin-transform-typeof-symbol": "^7.27.1",
- "@babel/plugin-transform-unicode-escapes": "^7.27.1",
- "@babel/plugin-transform-unicode-property-regex": "^7.27.1",
- "@babel/plugin-transform-unicode-regex": "^7.27.1",
- "@babel/plugin-transform-unicode-sets-regex": "^7.27.1",
- "@babel/preset-modules": "0.1.6-no-external-plugins",
- "babel-plugin-polyfill-corejs2": "^0.4.14",
- "babel-plugin-polyfill-corejs3": "^0.13.0",
- "babel-plugin-polyfill-regenerator": "^0.6.5",
- "core-js-compat": "^3.43.0",
- "semver": "^6.3.1"
- },
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nx/nx-linux-x64-musl": {
+ "version": "20.8.4",
+ "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-20.8.4.tgz",
+ "integrity": "sha512-KxpQpyLCgIIHWZ4iRSUN9ohCwn1ZSDASbuFCdG3mohryzCy8WrPkuPcb+68J3wuQhmA5w//Xpp/dL0hHoit9zQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/preset-env/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "node_modules/@nx/nx-win32-arm64-msvc": {
+ "version": "20.8.4",
+ "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-20.8.4.tgz",
+ "integrity": "sha512-ffLBrxM9ibk+eWSY995kiFFRTSRb9HkD5T1s/uZyxV6jfxYPaZDBAWAETDneyBXps7WtaOMu+kVZlXQ3X+TfIA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
}
},
- "node_modules/@babel/preset-modules": {
- "version": "0.1.6-no-external-plugins",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
- "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+ "node_modules/@nx/nx-win32-x64-msvc": {
+ "version": "20.8.4",
+ "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-20.8.4.tgz",
+ "integrity": "sha512-JxuuZc4h8EBqoYAiRHwskimpTJx70yn4lhIRFBoW5ICkxXW1Rw0yip/1UVsWRHXg/x9BxmH7VVazdfaQWmGu6A==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/types": "^7.4.4",
- "esutils": "^2.0.2"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
}
},
- "node_modules/@babel/runtime": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz",
- "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==",
+ "node_modules/@octokit/auth-token": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
+ "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 18"
}
},
- "node_modules/@babel/template": {
- "version": "7.27.2",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
- "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
+ "node_modules/@octokit/core": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.2.tgz",
+ "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/parser": "^7.27.2",
- "@babel/types": "^7.27.1"
+ "@octokit/auth-token": "^4.0.0",
+ "@octokit/graphql": "^7.1.0",
+ "@octokit/request": "^8.4.1",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.0.0",
+ "before-after-hook": "^2.2.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 18"
}
},
- "node_modules/@babel/traverse": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz",
- "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==",
+ "node_modules/@octokit/endpoint": {
+ "version": "9.0.6",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz",
+ "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/generator": "^7.28.0",
- "@babel/helper-globals": "^7.28.0",
- "@babel/parser": "^7.28.0",
- "@babel/template": "^7.27.2",
- "@babel/types": "^7.28.0",
- "debug": "^4.3.1"
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 18"
}
},
- "node_modules/@babel/types": {
- "version": "7.28.2",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz",
- "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==",
+ "node_modules/@octokit/graphql": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz",
+ "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-string-parser": "^7.27.1",
- "@babel/helper-validator-identifier": "^7.27.1"
+ "@octokit/request": "^8.4.1",
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 18"
}
},
- "node_modules/@bcoe/v8-coverage": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
- "dev": true
+ "node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@colors/colors": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
- "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "node_modules/@octokit/plugin-enterprise-rest": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz",
+ "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==",
"dev": true,
- "optional": true,
- "engines": {
- "node": ">=0.1.90"
- }
+ "license": "MIT"
},
- "node_modules/@cspotcode/source-map-support": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
- "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
+ "node_modules/@octokit/plugin-paginate-rest": {
+ "version": "11.4.4-cjs.2",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz",
+ "integrity": "sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/trace-mapping": "0.3.9"
+ "@octokit/types": "^13.7.0"
},
"engines": {
- "node": ">=12"
- }
- },
- "node_modules/@ctrl/tinycolor": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
- "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==",
- "engines": {
- "node": ">=10"
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": "5"
}
},
- "node_modules/@discoveryjs/json-ext": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz",
- "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==",
+ "node_modules/@octokit/plugin-request-log": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz",
+ "integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=14.17.0"
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": "5"
}
},
- "node_modules/@docsearch/css": {
- "version": "3.8.2",
- "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.2.tgz",
- "integrity": "sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==",
- "dev": true
- },
- "node_modules/@docsearch/js": {
- "version": "3.8.2",
- "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.8.2.tgz",
- "integrity": "sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==",
+ "node_modules/@octokit/plugin-rest-endpoint-methods": {
+ "version": "13.3.2-cjs.1",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.2-cjs.1.tgz",
+ "integrity": "sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@docsearch/react": "3.8.2",
- "preact": "^10.0.0"
+ "@octokit/types": "^13.8.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": "^5"
}
},
- "node_modules/@docsearch/react": {
- "version": "3.8.2",
- "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.2.tgz",
- "integrity": "sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==",
+ "node_modules/@octokit/request": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz",
+ "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@algolia/autocomplete-core": "1.17.7",
- "@algolia/autocomplete-preset-algolia": "1.17.7",
- "@docsearch/css": "3.8.2",
- "algoliasearch": "^5.14.2"
- },
- "peerDependencies": {
- "@types/react": ">= 16.8.0 < 19.0.0",
- "react": ">= 16.8.0 < 19.0.0",
- "react-dom": ">= 16.8.0 < 19.0.0",
- "search-insights": ">= 1 < 3"
+ "@octokit/endpoint": "^9.0.6",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
},
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- },
- "search-insights": {
- "optional": true
- }
- }
- },
- "node_modules/@element-plus/icons-vue": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
- "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
- "peerDependencies": {
- "vue": "^3.2.0"
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@emnapi/core": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz",
- "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==",
+ "node_modules/@octokit/request-error": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
+ "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@emnapi/wasi-threads": "1.0.2",
- "tslib": "^2.4.0"
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
+ },
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@emnapi/runtime": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz",
- "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==",
+ "node_modules/@octokit/rest": {
+ "version": "20.1.2",
+ "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.2.tgz",
+ "integrity": "sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "tslib": "^2.4.0"
+ "@octokit/core": "^5.0.2",
+ "@octokit/plugin-paginate-rest": "11.4.4-cjs.2",
+ "@octokit/plugin-request-log": "^4.0.0",
+ "@octokit/plugin-rest-endpoint-methods": "13.3.2-cjs.1"
+ },
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@emnapi/wasi-threads": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz",
- "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==",
+ "node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "tslib": "^2.4.0"
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz",
- "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==",
- "cpu": [
- "ppc64"
- ],
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "license": "MIT",
"optional": true,
- "os": [
- "aix"
- ],
"engines": {
- "node": ">=18"
+ "node": ">=14"
}
},
- "node_modules/@esbuild/android-arm": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz",
- "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==",
- "cpu": [
- "arm"
- ],
- "optional": true,
- "os": [
- "android"
- ],
+ "node_modules/@pkgr/core": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz",
+ "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=18"
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/pkgr"
}
},
- "node_modules/@esbuild/android-arm64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz",
- "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==",
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz",
+ "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==",
"cpu": [
- "arm64"
+ "arm"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"android"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/android-x64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz",
- "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==",
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz",
+ "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==",
"cpu": [
- "x64"
+ "arm64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"android"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz",
- "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==",
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz",
+ "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==",
"cpu": [
"arm64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz",
- "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==",
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz",
+ "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==",
"cpu": [
"x64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz",
- "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==",
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz",
+ "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==",
"cpu": [
"arm64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz",
- "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==",
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz",
+ "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==",
"cpu": [
"x64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/linux-arm": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz",
- "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==",
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz",
+ "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==",
"cpu": [
"arm"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz",
+ "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==",
+ "cpu": [
+ "arm"
],
- "engines": {
- "node": ">=18"
- }
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz",
- "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==",
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz",
+ "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==",
"cpu": [
"arm64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz",
- "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==",
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz",
+ "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==",
"cpu": [
- "ia32"
+ "arm64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz",
- "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==",
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz",
+ "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==",
"cpu": [
"loong64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz",
- "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==",
+ "node_modules/@rollup/rollup-linux-loong64-musl": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz",
+ "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==",
"cpu": [
- "mips64el"
+ "loong64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz",
- "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==",
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz",
+ "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==",
"cpu": [
"ppc64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz",
- "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==",
+ "node_modules/@rollup/rollup-linux-ppc64-musl": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz",
+ "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==",
"cpu": [
- "riscv64"
+ "ppc64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz",
- "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==",
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz",
+ "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==",
"cpu": [
- "s390x"
+ "riscv64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/linux-x64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz",
- "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==",
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz",
+ "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==",
"cpu": [
- "x64"
+ "riscv64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/netbsd-arm64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz",
- "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==",
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz",
+ "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==",
"cpu": [
- "arm64"
+ "s390x"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
+ "linux"
+ ]
},
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz",
- "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==",
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz",
+ "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==",
"cpu": [
"x64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
+ "linux"
+ ]
},
- "node_modules/@esbuild/openbsd-arm64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz",
- "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==",
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz",
+ "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==",
"cpu": [
- "arm64"
+ "x64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
+ "linux"
+ ]
},
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz",
- "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==",
+ "node_modules/@rollup/rollup-openbsd-x64": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz",
+ "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==",
"cpu": [
"x64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz",
- "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==",
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz",
+ "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==",
"cpu": [
- "x64"
+ "arm64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
- "sunos"
- ],
- "engines": {
- "node": ">=18"
- }
+ "openharmony"
+ ]
},
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz",
- "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==",
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz",
+ "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==",
"cpu": [
"arm64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz",
- "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==",
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz",
+ "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==",
"cpu": [
"ia32"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
- ],
- "engines": {
- "node": ">=18"
- }
+ ]
},
- "node_modules/@esbuild/win32-x64": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz",
- "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==",
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz",
+ "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==",
"cpu": [
"x64"
],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz",
+ "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==",
+ "cpu": [
+ "x64"
],
- "engines": {
- "node": ">=18"
- }
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
},
- "node_modules/@eslint-community/eslint-utils": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
- "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
+ "node_modules/@sigstore/bundle": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz",
+ "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "eslint-visitor-keys": "^3.4.3"
+ "@sigstore/protobuf-specs": "^0.3.2"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@eslint-community/regexpp": {
- "version": "4.12.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
- "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
+ "node_modules/@sigstore/core": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz",
+ "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@eslint/eslintrc": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
- "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
+ "node_modules/@sigstore/protobuf-specs": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz",
+ "integrity": "sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==",
"dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/@sigstore/sign": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz",
+ "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==",
+ "dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.6.0",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
+ "@sigstore/bundle": "^2.3.2",
+ "@sigstore/core": "^1.0.0",
+ "@sigstore/protobuf-specs": "^0.3.2",
+ "make-fetch-happen": "^13.0.1",
+ "proc-log": "^4.2.0",
+ "promise-retry": "^2.0.1"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/@sigstore/tuf": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz",
+ "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "@sigstore/protobuf-specs": "^0.3.2",
+ "tuf-js": "^2.2.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@eslint/eslintrc/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/@sigstore/verify": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz",
+ "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "@sigstore/bundle": "^2.3.2",
+ "@sigstore/core": "^1.1.0",
+ "@sigstore/protobuf-specs": "^0.3.2"
},
"engines": {
- "node": "*"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@eslint/js": {
- "version": "8.57.1",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
- "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.10",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz",
+ "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@standard-schema/spec": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
+ "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tufjs/canonical-json": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz",
+ "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@featherscloud/pinion": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/@featherscloud/pinion/-/pinion-0.5.5.tgz",
- "integrity": "sha512-YgjX6DglYgaHmpona0lHfY4t92CiPH9xGowYR/dm2A5bghSx/w83SVnVvV9dqeJruXYAVNhzzmLYcVjUgpTwBA==",
+ "node_modules/@tufjs/models": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz",
+ "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/inquirer": "^9.0.7",
- "chalk": "^5.3.0",
- "commander": "^12.1.0",
- "inquirer": "^9.3.2",
- "tsx": "^4.19.1"
- },
- "bin": {
- "pinion": "bin/pinion.js"
+ "@tufjs/canonical-json": "2.0.0",
+ "minimatch": "^9.0.4"
},
"engines": {
- "node": ">= 20"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@feathersjs/adapter-commons": {
- "resolved": "packages/adapter-commons",
- "link": true
- },
- "node_modules/@feathersjs/adapter-tests": {
- "resolved": "packages/adapter-tests",
- "link": true
+ "node_modules/@tufjs/models/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@feathersjs/authentication": {
- "resolved": "packages/authentication",
- "link": true
+ "node_modules/@tufjs/models/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
},
- "node_modules/@feathersjs/authentication-client": {
- "resolved": "packages/authentication-client",
- "link": true
- },
- "node_modules/@feathersjs/authentication-local": {
- "resolved": "packages/authentication-local",
- "link": true
- },
- "node_modules/@feathersjs/authentication-oauth": {
- "resolved": "packages/authentication-oauth",
- "link": true
- },
- "node_modules/@feathersjs/cli": {
- "resolved": "packages/cli",
- "link": true
- },
- "node_modules/@feathersjs/client": {
- "resolved": "packages/client",
- "link": true
- },
- "node_modules/@feathersjs/commons": {
- "resolved": "packages/commons",
- "link": true
- },
- "node_modules/@feathersjs/configuration": {
- "resolved": "packages/configuration",
- "link": true
- },
- "node_modules/@feathersjs/errors": {
- "resolved": "packages/errors",
- "link": true
- },
- "node_modules/@feathersjs/express": {
- "resolved": "packages/express",
- "link": true
- },
- "node_modules/@feathersjs/feathers": {
- "resolved": "packages/feathers",
- "link": true
- },
- "node_modules/@feathersjs/generators": {
- "resolved": "packages/generators",
- "link": true
- },
- "node_modules/@feathersjs/hooks": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/@feathersjs/hooks/-/hooks-0.9.0.tgz",
- "integrity": "sha512-kLfWnuhbC25CPkR1/TDcVs0rSiv0JLNxrpUivLwc7FUnkyeciRi5VOmC1SOzL2SOagcozu3+m4VQiONyzgfY7w==",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@feathersjs/knex": {
- "resolved": "packages/knex",
- "link": true
- },
- "node_modules/@feathersjs/koa": {
- "resolved": "packages/koa",
- "link": true
- },
- "node_modules/@feathersjs/memory": {
- "resolved": "packages/memory",
- "link": true
- },
- "node_modules/@feathersjs/mongodb": {
- "resolved": "packages/mongodb",
- "link": true
- },
- "node_modules/@feathersjs/rest-client": {
- "resolved": "packages/rest-client",
- "link": true
- },
- "node_modules/@feathersjs/schema": {
- "resolved": "packages/schema",
- "link": true
- },
- "node_modules/@feathersjs/socketio": {
- "resolved": "packages/socketio",
- "link": true
- },
- "node_modules/@feathersjs/socketio-client": {
- "resolved": "packages/socketio-client",
- "link": true
- },
- "node_modules/@feathersjs/tests": {
- "resolved": "packages/tests",
- "link": true
- },
- "node_modules/@feathersjs/transport-commons": {
- "resolved": "packages/transport-commons",
- "link": true
- },
- "node_modules/@feathersjs/typebox": {
- "resolved": "packages/typebox",
- "link": true
- },
- "node_modules/@floating-ui/core": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.0.tgz",
- "integrity": "sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==",
- "dependencies": {
- "@floating-ui/utils": "^0.2.9"
- }
- },
- "node_modules/@floating-ui/dom": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.0.tgz",
- "integrity": "sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==",
- "dependencies": {
- "@floating-ui/core": "^1.7.0",
- "@floating-ui/utils": "^0.2.9"
- }
- },
- "node_modules/@floating-ui/utils": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz",
- "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg=="
- },
- "node_modules/@gar/promisify": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
- "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
- "dev": true
- },
- "node_modules/@hapi/bourne": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-3.0.0.tgz",
- "integrity": "sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w=="
- },
- "node_modules/@humanwhocodes/config-array": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
- "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
- "deprecated": "Use @eslint/config-array instead",
+ "node_modules/@tufjs/models/node_modules/minimatch": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@humanwhocodes/object-schema": "^2.0.3",
- "debug": "^4.3.1",
- "minimatch": "^3.0.5"
+ "brace-expansion": "^2.0.2"
},
"engines": {
- "node": ">=10.10.0"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/@tybys/wasm-util": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz",
+ "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "tslib": "^2.4.0"
}
},
- "node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/@types/chai": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz",
+ "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
+ "@types/deep-eql": "*",
+ "assertion-error": "^2.0.1"
}
},
- "node_modules/@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "node_modules/@types/deep-eql": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
+ "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
"dev": true,
- "engines": {
- "node": ">=12.22"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@humanwhocodes/object-schema": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
- "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
- "deprecated": "Use @eslint/object-schema instead",
- "dev": true
+ "license": "MIT"
},
- "node_modules/@hutson/parse-repository-url": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz",
- "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==",
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
"dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
+ "license": "MIT"
},
- "node_modules/@iconify-json/carbon": {
- "version": "1.2.11",
- "resolved": "https://registry.npmjs.org/@iconify-json/carbon/-/carbon-1.2.11.tgz",
- "integrity": "sha512-fWcoR0V4dLGLsgUvgjioBcTmj+l8NlMMEP/aMMUwR9PWAr5mCBg52rsTe/bvOnL1zj9PUCNxaj2M4H27GrnO3g==",
- "dev": true,
- "license": "Apache-2.0",
+ "node_modules/@types/inquirer": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.9.tgz",
+ "integrity": "sha512-/mWx5136gts2Z2e5izdoRCo46lPp5TMs9R15GTSsgg/XnZyxDWVqoVU3R9lWnccKpqwsJLvRoxbCjoJtZB7DSw==",
+ "license": "MIT",
"dependencies": {
- "@iconify/types": "*"
+ "@types/through": "*",
+ "rxjs": "^7.2.0"
}
},
- "node_modules/@iconify-json/simple-icons": {
- "version": "1.2.33",
- "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.33.tgz",
- "integrity": "sha512-nL5/UmI9x5PQ/AHv6bOaL2pH6twEdEz4pI89efB/K7HFn5etQnxMtGx9DFlOg/sRA2/yFpX8KXvc95CSDv5bJA==",
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
"dev": true,
- "dependencies": {
- "@iconify/types": "*"
- }
+ "license": "MIT"
},
- "node_modules/@iconify/types": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
- "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
- "dev": true
+ "node_modules/@types/minimatch": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
+ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@iconify/utils": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz",
- "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==",
+ "node_modules/@types/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz",
+ "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==",
"license": "MIT",
"dependencies": {
- "@antfu/install-pkg": "^1.0.0",
- "@antfu/utils": "^8.1.0",
- "@iconify/types": "^2.0.0",
- "debug": "^4.4.0",
- "globals": "^15.14.0",
- "kolorist": "^1.8.0",
- "local-pkg": "^1.0.0",
- "mlly": "^1.7.4"
+ "undici-types": "~7.18.0"
}
},
- "node_modules/@iconify/utils/node_modules/globals": {
- "version": "15.15.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
- "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
+ "node_modules/@types/normalize-package-data": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
"dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
+ "license": "MIT"
},
- "node_modules/@inquirer/figures": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.11.tgz",
- "integrity": "sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==",
- "engines": {
- "node": ">=18"
+ "node_modules/@types/through": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz",
+ "integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
}
},
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.1.tgz",
+ "integrity": "sha512-Gn3aqnvNl4NGc6x3/Bqk1AOn0thyTU9bqDRhiRnUWezgvr2OnhYCWCgC8zXXRVqBsIL1pSDt7T9nJUe0oM0kDQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ "@eslint-community/regexpp": "^4.12.2",
+ "@typescript-eslint/scope-manager": "8.57.1",
+ "@typescript-eslint/type-utils": "8.57.1",
+ "@typescript-eslint/utils": "8.57.1",
+ "@typescript-eslint/visitor-keys": "8.57.1",
+ "ignore": "^7.0.5",
+ "natural-compare": "^1.4.0",
+ "ts-api-utils": "^2.4.0"
},
"engines": {
- "node": ">=12"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^8.57.1",
+ "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+ "typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "node_modules/@typescript-eslint/parser": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.1.tgz",
+ "integrity": "sha512-k4eNDan0EIMTT/dUKc/g+rsJ6wcHYhNPdY19VoX/EOtaAG8DLtKCykhrUnuHPYvinn5jhAPgD2Qw9hXBwrahsw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "8.57.1",
+ "@typescript-eslint/types": "8.57.1",
+ "@typescript-eslint/typescript-estree": "8.57.1",
+ "@typescript-eslint/visitor-keys": "8.57.1",
+ "debug": "^4.4.3"
+ },
"engines": {
- "node": ">=12"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+ "typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "node_modules/@typescript-eslint/project-service": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.1.tgz",
+ "integrity": "sha512-vx1F37BRO1OftsYlmG9xay1TqnjNVlqALymwWVuYTdo18XuKxtBpCj1QlzNIEHlvlB27osvXFWptYiEWsVdYsg==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/tsconfig-utils": "^8.57.1",
+ "@typescript-eslint/types": "^8.57.1",
+ "debug": "^4.4.3"
+ },
"engines": {
- "node": ">=12"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
- },
- "node_modules/@isaacs/cliui/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.1.tgz",
+ "integrity": "sha512-hs/QcpCwlwT2L5S+3fT6gp0PabyGk4Q0Rv2doJXA0435/OpnSR3VRgvrp8Xdoc3UAYSg9cyUjTeFXZEPg/3OKg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
+ "@typescript-eslint/types": "8.57.1",
+ "@typescript-eslint/visitor-keys": "8.57.1"
},
"engines": {
- "node": ">=12"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "node_modules/@typescript-eslint/tsconfig-utils": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.1.tgz",
+ "integrity": "sha512-0lgOZB8cl19fHO4eI46YUx2EceQqhgkPSuCGLlGi79L2jwYY1cxeYc1Nae8Aw1xjgW3PKVDLlr3YJ6Bxx8HkWg==",
"dev": true,
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=12"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.1.tgz",
+ "integrity": "sha512-+Bwwm0ScukFdyoJsh2u6pp4S9ktegF98pYUU0hkphOOqdMB+1sNQhIz8y5E9+4pOioZijrkfNO/HUJVAFFfPKA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
+ "@typescript-eslint/types": "8.57.1",
+ "@typescript-eslint/typescript-estree": "8.57.1",
+ "@typescript-eslint/utils": "8.57.1",
+ "debug": "^4.4.3",
+ "ts-api-utils": "^2.4.0"
},
"engines": {
- "node": ">=12"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+ "typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/@isaacs/string-locale-compare": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz",
- "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==",
- "dev": true
- },
- "node_modules/@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "node_modules/@typescript-eslint/types": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.1.tgz",
+ "integrity": "sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@jest/schemas": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.1.tgz",
+ "integrity": "sha512-ybe2hS9G6pXpqGtPli9Gx9quNV0TWLOmh58ADlmZe9DguLq0tiAKVjirSbtM1szG6+QH6rVXyU6GTLQbWnMY+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@sinclair/typebox": "^0.27.8"
+ "@typescript-eslint/project-service": "8.57.1",
+ "@typescript-eslint/tsconfig-utils": "8.57.1",
+ "@typescript-eslint/types": "8.57.1",
+ "@typescript-eslint/visitor-keys": "8.57.1",
+ "debug": "^4.4.3",
+ "minimatch": "^10.2.2",
+ "semver": "^7.7.3",
+ "tinyglobby": "^0.2.15",
+ "ts-api-utils": "^2.4.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.12",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz",
- "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==",
+ "node_modules/@typescript-eslint/utils": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.1.tgz",
+ "integrity": "sha512-XUNSJ/lEVFttPMMoDVA2r2bwrl8/oPx8cURtczkSEswY5T3AeLmCy+EKWQNdL4u0MmAHOjcWrqJp2cdvgjn8dQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0",
- "@jridgewell/trace-mapping": "^0.3.24"
+ "@eslint-community/eslint-utils": "^4.9.1",
+ "@typescript-eslint/scope-manager": "8.57.1",
+ "@typescript-eslint/types": "8.57.1",
+ "@typescript-eslint/typescript-estree": "8.57.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
+ "typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.1.tgz",
+ "integrity": "sha512-YWnmJkXbofiz9KbnbbwuA2rpGkFPLbAIetcCNO6mJ8gdhdZ/v7WDXsoGFAJuM6ikUFKTlSQnjWnVO4ux+UzS6A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
+ "@typescript-eslint/types": "8.57.1",
+ "eslint-visitor-keys": "^5.0.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+ "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
- "node": ">=6.0.0"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/@jridgewell/source-map": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
- "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
+ "node_modules/@vitest/coverage-v8": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz",
+ "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.25"
+ "@ampproject/remapping": "^2.3.0",
+ "@bcoe/v8-coverage": "^1.0.2",
+ "ast-v8-to-istanbul": "^0.3.3",
+ "debug": "^4.4.1",
+ "istanbul-lib-coverage": "^3.2.2",
+ "istanbul-lib-report": "^3.0.1",
+ "istanbul-lib-source-maps": "^5.0.6",
+ "istanbul-reports": "^3.1.7",
+ "magic-string": "^0.30.17",
+ "magicast": "^0.3.5",
+ "std-env": "^3.9.0",
+ "test-exclude": "^7.0.1",
+ "tinyrainbow": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "@vitest/browser": "3.2.4",
+ "vitest": "3.2.4"
+ },
+ "peerDependenciesMeta": {
+ "@vitest/browser": {
+ "optional": true
+ }
}
},
- "node_modules/@jridgewell/source-map/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "node_modules/@vitest/expect": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz",
+ "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
+ "@types/chai": "^5.2.2",
+ "@vitest/spy": "3.2.4",
+ "@vitest/utils": "3.2.4",
+ "chai": "^5.2.0",
+ "tinyrainbow": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+ "node_modules/@vitest/mocker": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz",
+ "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
+ "@vitest/spy": "3.2.4",
+ "estree-walker": "^3.0.3",
+ "magic-string": "^0.30.17"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "msw": "^2.4.9",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "msw": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ }
}
},
- "node_modules/@js-joda/core": {
- "version": "5.6.5",
- "resolved": "https://registry.npmjs.org/@js-joda/core/-/core-5.6.5.tgz",
- "integrity": "sha512-3zwefSMwHpu8iVUW8YYz227sIv6UFqO31p1Bf1ZH/Vom7CmNyUsXjDBlnNzcuhmOL1XfxZ3nvND42kR23XlbcQ==",
- "dev": true
- },
- "node_modules/@koa/cors": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@koa/cors/-/cors-5.0.0.tgz",
- "integrity": "sha512-x/iUDjcS90W69PryLDIMgFyV21YLTnG9zOpPXS7Bkt2b8AsY3zZsIpOLBkYr9fBcF3HbkKaER5hOBZLfpLgYNw==",
+ "node_modules/@vitest/pretty-format": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz",
+ "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "vary": "^1.1.2"
+ "tinyrainbow": "^2.0.0"
},
- "engines": {
- "node": ">= 14.0.0"
+ "funding": {
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/@lerna/create": {
- "version": "8.2.2",
- "resolved": "https://registry.npmjs.org/@lerna/create/-/create-8.2.2.tgz",
- "integrity": "sha512-1yn1MvWn2Yz0SFgTTQnef2m1YedF7KwqLLVIOrGkgQrkVHzsveAIk1A1RcRa2yyUh+siKI1YcJ7lUZIEt+qQ3Q==",
+ "node_modules/@vitest/runner": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz",
+ "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@npmcli/arborist": "7.5.4",
- "@npmcli/package-json": "5.2.0",
- "@npmcli/run-script": "8.1.0",
- "@nx/devkit": ">=17.1.2 < 21",
- "@octokit/plugin-enterprise-rest": "6.0.1",
- "@octokit/rest": "20.1.2",
- "aproba": "2.0.0",
- "byte-size": "8.1.1",
- "chalk": "4.1.0",
- "clone-deep": "4.0.1",
- "cmd-shim": "6.0.3",
- "color-support": "1.1.3",
- "columnify": "1.6.0",
- "console-control-strings": "^1.1.0",
- "conventional-changelog-core": "5.0.1",
- "conventional-recommended-bump": "7.0.1",
- "cosmiconfig": "9.0.0",
- "dedent": "1.5.3",
- "execa": "5.0.0",
- "fs-extra": "^11.2.0",
- "get-stream": "6.0.0",
- "git-url-parse": "14.0.0",
- "glob-parent": "6.0.2",
- "globby": "11.1.0",
- "graceful-fs": "4.2.11",
- "has-unicode": "2.0.1",
- "ini": "^1.3.8",
- "init-package-json": "6.0.3",
- "inquirer": "^8.2.4",
- "is-ci": "3.0.1",
- "is-stream": "2.0.0",
- "js-yaml": "4.1.0",
- "libnpmpublish": "9.0.9",
- "load-json-file": "6.2.0",
- "lodash": "^4.17.21",
- "make-dir": "4.0.0",
- "minimatch": "3.0.5",
- "multimatch": "5.0.0",
- "node-fetch": "2.6.7",
- "npm-package-arg": "11.0.2",
- "npm-packlist": "8.0.2",
- "npm-registry-fetch": "^17.1.0",
- "nx": ">=17.1.2 < 21",
- "p-map": "4.0.0",
- "p-map-series": "2.1.0",
- "p-queue": "6.6.2",
- "p-reduce": "^2.1.0",
- "pacote": "^18.0.6",
- "pify": "5.0.0",
- "read-cmd-shim": "4.0.0",
- "resolve-from": "5.0.0",
- "rimraf": "^4.4.1",
- "semver": "^7.3.4",
- "set-blocking": "^2.0.0",
- "signal-exit": "3.0.7",
- "slash": "^3.0.0",
- "ssri": "^10.0.6",
- "string-width": "^4.2.3",
- "strong-log-transformer": "2.1.0",
- "tar": "6.2.1",
- "temp-dir": "1.0.0",
- "upath": "2.0.1",
- "uuid": "^10.0.0",
- "validate-npm-package-license": "^3.0.4",
- "validate-npm-package-name": "5.0.1",
- "wide-align": "1.1.5",
- "write-file-atomic": "5.0.1",
- "write-pkg": "4.0.0",
- "yargs": "17.7.2",
- "yargs-parser": "21.1.1"
+ "@vitest/utils": "3.2.4",
+ "pathe": "^2.0.3",
+ "strip-literal": "^3.0.0"
},
- "engines": {
- "node": ">=18.0.0"
+ "funding": {
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/@lerna/create/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "node_modules/@vitest/snapshot": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz",
+ "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
+ "@vitest/pretty-format": "3.2.4",
+ "magic-string": "^0.30.17",
+ "pathe": "^2.0.3"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/@lerna/create/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/@vitest/spy": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz",
+ "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "tinyspy": "^4.0.3"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/@lerna/create/node_modules/chalk": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
- "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "node_modules/@vitest/utils": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz",
+ "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
+ "@vitest/pretty-format": "3.2.4",
+ "loupe": "^3.1.4",
+ "tinyrainbow": "^2.0.0"
},
"funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/@lerna/create/node_modules/cli-width": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
- "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
+ "node_modules/@yarnpkg/lockfile": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
+ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
"dev": true,
- "engines": {
- "node": ">= 10"
- }
+ "license": "BSD-2-Clause"
},
- "node_modules/@lerna/create/node_modules/glob": {
- "version": "9.3.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz",
- "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==",
+ "node_modules/@yarnpkg/parsers": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.2.tgz",
+ "integrity": "sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "fs.realpath": "^1.0.0",
- "minimatch": "^8.0.2",
- "minipass": "^4.2.4",
- "path-scurry": "^1.6.1"
+ "js-yaml": "^3.10.0",
+ "tslib": "^2.4.0"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": ">=18.12.0"
}
},
- "node_modules/@lerna/create/node_modules/glob/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "node_modules/@yarnpkg/parsers/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0"
+ "sprintf-js": "~1.0.2"
}
},
- "node_modules/@lerna/create/node_modules/glob/node_modules/minimatch": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz",
- "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==",
+ "node_modules/@yarnpkg/parsers/node_modules/js-yaml": {
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/@lerna/create/node_modules/inquirer": {
- "version": "8.2.6",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz",
- "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==",
+ "node_modules/@zkochan/js-yaml": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz",
+ "integrity": "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.1.1",
- "cli-cursor": "^3.1.0",
- "cli-width": "^3.0.0",
- "external-editor": "^3.0.3",
- "figures": "^3.0.0",
- "lodash": "^4.17.21",
- "mute-stream": "0.0.8",
- "ora": "^5.4.1",
- "run-async": "^2.4.0",
- "rxjs": "^7.5.5",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "through": "^2.3.6",
- "wrap-ansi": "^6.0.1"
+ "argparse": "^2.0.1"
},
- "engines": {
- "node": ">=12.0.0"
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/@lerna/create/node_modules/inquirer/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/abbrev": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
+ "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
"dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
+ "license": "ISC",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@lerna/create/node_modules/minimatch": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz",
- "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==",
+ "node_modules/acorn": {
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
+ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
},
"engines": {
- "node": "*"
+ "node": ">=0.4.0"
}
},
- "node_modules/@lerna/create/node_modules/minipass": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
- "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/@lerna/create/node_modules/mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
- "dev": true
+ "node_modules/add-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz",
+ "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@lerna/create/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "node_modules/agent-base": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">= 14"
}
},
- "node_modules/@lerna/create/node_modules/rimraf": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz",
- "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==",
+ "node_modules/aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "glob": "^9.2.0"
- },
- "bin": {
- "rimraf": "dist/cjs/src/bin.js"
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=8"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/@lerna/create/node_modules/run-async": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
- "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+ "node_modules/ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.12.0"
+ "node": ">=6"
}
},
- "node_modules/@lerna/create/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "node_modules/@mongodb-js/saslprep": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.2.2.tgz",
- "integrity": "sha512-EB0O3SCSNRUFk66iRCpI+cXzIjdswfCs7F6nOC3RAGJ7xr5YhaicvsRwJ9eyzYvYRlCSDUO/c7g4yNulxKC1WA==",
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "license": "MIT",
"dependencies": {
- "sparse-bitfield": "^3.0.3"
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@napi-rs/wasm-runtime": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz",
- "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==",
- "dev": true,
- "dependencies": {
- "@emnapi/core": "^1.1.0",
- "@emnapi/runtime": "^1.1.0",
- "@tybys/wasm-util": "^0.9.0"
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/@noble/hashes": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
- "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
+ "node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": "^14.21.3 || >=16"
+ "node": ">=10"
},
"funding": {
- "url": "https://paulmillr.com/funding/"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "node_modules/aproba": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
+ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
"dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
+ "license": "ISC"
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/array-differ": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
+ "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 8"
+ "node": ">=8"
}
},
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "node_modules/array-ify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
+ "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 8"
+ "node": ">=8"
}
},
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "node_modules/arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
"dev": true,
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 8"
+ "node": ">=0.10.0"
}
},
- "node_modules/@npmcli/agent": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz",
- "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==",
+ "node_modules/assertion-error": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
+ "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
"dev": true,
- "dependencies": {
- "agent-base": "^7.1.0",
- "http-proxy-agent": "^7.0.0",
- "https-proxy-agent": "^7.0.1",
- "lru-cache": "^10.0.1",
- "socks-proxy-agent": "^8.0.3"
- },
+ "license": "MIT",
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": ">=12"
}
},
- "node_modules/@npmcli/arborist": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-7.5.4.tgz",
- "integrity": "sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==",
- "dev": true,
- "dependencies": {
- "@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/fs": "^3.1.1",
- "@npmcli/installed-package-contents": "^2.1.0",
- "@npmcli/map-workspaces": "^3.0.2",
- "@npmcli/metavuln-calculator": "^7.1.1",
- "@npmcli/name-from-folder": "^2.0.0",
- "@npmcli/node-gyp": "^3.0.0",
- "@npmcli/package-json": "^5.1.0",
- "@npmcli/query": "^3.1.0",
- "@npmcli/redact": "^2.0.0",
- "@npmcli/run-script": "^8.1.0",
- "bin-links": "^4.0.4",
- "cacache": "^18.0.3",
- "common-ancestor-path": "^1.0.1",
- "hosted-git-info": "^7.0.2",
- "json-parse-even-better-errors": "^3.0.2",
- "json-stringify-nice": "^1.1.4",
- "lru-cache": "^10.2.2",
- "minimatch": "^9.0.4",
- "nopt": "^7.2.1",
- "npm-install-checks": "^6.2.0",
- "npm-package-arg": "^11.0.2",
- "npm-pick-manifest": "^9.0.1",
- "npm-registry-fetch": "^17.0.1",
- "pacote": "^18.0.6",
- "parse-conflict-json": "^3.0.0",
- "proc-log": "^4.2.0",
- "proggy": "^2.0.0",
- "promise-all-reject-late": "^1.0.0",
- "promise-call-limit": "^3.0.1",
- "read-package-json-fast": "^3.0.2",
- "semver": "^7.3.7",
- "ssri": "^10.0.6",
- "treeverse": "^3.0.0",
- "walk-up-path": "^3.0.1"
- },
- "bin": {
- "arborist": "bin/index.js"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/fs": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz",
- "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==",
- "dev": true,
- "dependencies": {
- "semver": "^7.3.5"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/git": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz",
- "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==",
- "dev": true,
- "dependencies": {
- "@npmcli/promise-spawn": "^7.0.0",
- "ini": "^4.1.3",
- "lru-cache": "^10.0.1",
- "npm-pick-manifest": "^9.0.0",
- "proc-log": "^4.0.0",
- "promise-inflight": "^1.0.1",
- "promise-retry": "^2.0.1",
- "semver": "^7.3.5",
- "which": "^4.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/git/node_modules/ini": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz",
- "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==",
- "dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/git/node_modules/isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
- "dev": true,
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@npmcli/git/node_modules/which": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
- "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
- "dev": true,
- "dependencies": {
- "isexe": "^3.1.1"
- },
- "bin": {
- "node-which": "bin/which.js"
- },
- "engines": {
- "node": "^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/installed-package-contents": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz",
- "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==",
- "dev": true,
- "dependencies": {
- "npm-bundled": "^3.0.0",
- "npm-normalize-package-bin": "^3.0.0"
- },
- "bin": {
- "installed-package-contents": "bin/index.js"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/map-workspaces": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz",
- "integrity": "sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==",
- "dev": true,
- "dependencies": {
- "@npmcli/name-from-folder": "^2.0.0",
- "glob": "^10.2.2",
- "minimatch": "^9.0.0",
- "read-package-json-fast": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/metavuln-calculator": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.1.tgz",
- "integrity": "sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==",
- "dev": true,
- "dependencies": {
- "cacache": "^18.0.0",
- "json-parse-even-better-errors": "^3.0.0",
- "pacote": "^18.0.0",
- "proc-log": "^4.1.0",
- "semver": "^7.3.5"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/move-file": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz",
- "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==",
- "deprecated": "This functionality has been moved to @npmcli/fs",
- "dev": true,
- "dependencies": {
- "mkdirp": "^1.0.4",
- "rimraf": "^3.0.2"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/@npmcli/name-from-folder": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz",
- "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==",
- "dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/node-gyp": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz",
- "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==",
- "dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/package-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz",
- "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==",
- "dev": true,
- "dependencies": {
- "@npmcli/git": "^5.0.0",
- "glob": "^10.2.2",
- "hosted-git-info": "^7.0.0",
- "json-parse-even-better-errors": "^3.0.0",
- "normalize-package-data": "^6.0.0",
- "proc-log": "^4.0.0",
- "semver": "^7.5.3"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/promise-spawn": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz",
- "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==",
- "dev": true,
- "dependencies": {
- "which": "^4.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/promise-spawn/node_modules/isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
- "dev": true,
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@npmcli/promise-spawn/node_modules/which": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
- "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
- "dev": true,
- "dependencies": {
- "isexe": "^3.1.1"
- },
- "bin": {
- "node-which": "bin/which.js"
- },
- "engines": {
- "node": "^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/query": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-3.1.0.tgz",
- "integrity": "sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.10"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/redact": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz",
- "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==",
- "dev": true,
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/run-script": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz",
- "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==",
- "dev": true,
- "dependencies": {
- "@npmcli/node-gyp": "^3.0.0",
- "@npmcli/package-json": "^5.0.0",
- "@npmcli/promise-spawn": "^7.0.0",
- "node-gyp": "^10.0.0",
- "proc-log": "^4.0.0",
- "which": "^4.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@npmcli/run-script/node_modules/isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
- "dev": true,
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@npmcli/run-script/node_modules/which": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
- "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
- "dev": true,
- "dependencies": {
- "isexe": "^3.1.1"
- },
- "bin": {
- "node-which": "bin/which.js"
- },
- "engines": {
- "node": "^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/@nx/devkit": {
- "version": "20.8.1",
- "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-20.8.1.tgz",
- "integrity": "sha512-N3nwIg/7RIZeB76iuVo29q+l9WyTtvuBSgDFM2msiIK6Q928ilzoeNPZ/p7w/TE3Gqs5XVhq9ExMvDAOTxdmXA==",
- "dev": true,
- "dependencies": {
- "ejs": "^3.1.7",
- "enquirer": "~2.3.6",
- "ignore": "^5.0.4",
- "minimatch": "9.0.3",
- "semver": "^7.5.3",
- "tmp": "~0.2.1",
- "tslib": "^2.3.0",
- "yargs-parser": "21.1.1"
- },
- "peerDependencies": {
- "nx": ">= 19 <= 21"
- }
- },
- "node_modules/@nx/devkit/node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@nx/devkit/node_modules/tmp": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
- "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
- "dev": true,
- "engines": {
- "node": ">=14.14"
- }
- },
- "node_modules/@nx/nx-darwin-arm64": {
- "version": "20.8.1",
- "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-20.8.1.tgz",
- "integrity": "sha512-Gat4Io66cV70Oa1CjrMJPsEx5ICpAGayv9hejOtBUEDb6XjR12L2e4wV+4EHliF0UbEcuZAr8/lTROEPk0RGWQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-darwin-x64": {
- "version": "20.8.1",
- "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-20.8.1.tgz",
- "integrity": "sha512-TB9mZk7neGFKgBr2wSBgY6c4kFF9vvChNSp3TrEeXR3FppFcYG5eK4AaKfzWCpYb0wMtseAm7NMX1Lu74utClQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-freebsd-x64": {
- "version": "20.8.1",
- "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-20.8.1.tgz",
- "integrity": "sha512-7UQu0/Afna5Af2GagEQ6rbKfUh75NfUn+g66wsoQoUGBvDW0U7B8P3Ph5Bk4Urub0BSfMVcNg2X7CgfypLFN/g==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-linux-arm-gnueabihf": {
- "version": "20.8.1",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-20.8.1.tgz",
- "integrity": "sha512-Tjh8JkTP+x1jSrzx+ofx1pKpkhIbXd7bi0bPdpYt6NI1lZz2HB/dv8vtdzP80jXEDztHf0AeGnEJVgJKsgI6yg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-linux-arm64-gnu": {
- "version": "20.8.1",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-20.8.1.tgz",
- "integrity": "sha512-2+qPIwav2vrytH6pe7fukBe8+yN5JGbEDCnDO8wKQsHeeZMLAQJiZ7EJH/+vynRkI7oWf87mihIKNQME19+w6A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-linux-arm64-musl": {
- "version": "20.8.1",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-20.8.1.tgz",
- "integrity": "sha512-DsKc+DiMsuHqpBWchUUUg6zv4OaexRqpFXys6auZlrpFpn80kSqLQ3S4zZ5AUu+26wxZqEVJs+uxHGwFbhEssQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-linux-x64-gnu": {
- "version": "20.8.1",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.8.1.tgz",
- "integrity": "sha512-Kzru44beVKAmSG84ShuMIIfyu2Uu5r8gsHdtiQPBIOGkZa0Z/e6YtUxcN3w1UZ7yvvzoQ4pQLvqU6UZRSWZtEg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-linux-x64-musl": {
- "version": "20.8.1",
- "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-20.8.1.tgz",
- "integrity": "sha512-cSVVb7DVMhrxCaj/n55okBZS6lZoP5a5vynOBGIV4z3/OJLev+xI9A+3imn/aXnBl8iS69HogYyrW0YTXv4Xaw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-win32-arm64-msvc": {
- "version": "20.8.1",
- "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-20.8.1.tgz",
- "integrity": "sha512-gte5HcvI24CN6b9I6IYTXh/A0CtRfnlAFaJomPpfT8Wcq637aOZzS0arAEZVoU8QZty1350hj6sfu+wSIjoP7A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nx/nx-win32-x64-msvc": {
- "version": "20.8.1",
- "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-20.8.1.tgz",
- "integrity": "sha512-6c2fVEPdPwJdnRbckBatRDF/g6JAp6p3Mfl90DpuaEF2DZC5pmCXKOsXE0aSIZ+gODom2JIchM++2KmDZPJUoA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@octokit/auth-token": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
- "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
- "dev": true,
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/@octokit/core": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.1.tgz",
- "integrity": "sha512-dKYCMuPO1bmrpuogcjQ8z7ICCH3FP6WmxpwC03yjzGfZhj9fTJg6+bS1+UAplekbN2C+M61UNllGOOoAfGCrdQ==",
- "dev": true,
- "dependencies": {
- "@octokit/auth-token": "^4.0.0",
- "@octokit/graphql": "^7.1.0",
- "@octokit/request": "^8.4.1",
- "@octokit/request-error": "^5.1.1",
- "@octokit/types": "^13.0.0",
- "before-after-hook": "^2.2.0",
- "universal-user-agent": "^6.0.0"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/@octokit/endpoint": {
- "version": "9.0.6",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz",
- "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==",
- "dev": true,
- "dependencies": {
- "@octokit/types": "^13.1.0",
- "universal-user-agent": "^6.0.0"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/@octokit/graphql": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz",
- "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==",
- "dev": true,
- "dependencies": {
- "@octokit/request": "^8.4.1",
- "@octokit/types": "^13.0.0",
- "universal-user-agent": "^6.0.0"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/@octokit/openapi-types": {
- "version": "24.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
- "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
- "dev": true
- },
- "node_modules/@octokit/plugin-enterprise-rest": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz",
- "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==",
- "dev": true
- },
- "node_modules/@octokit/plugin-paginate-rest": {
- "version": "11.4.4-cjs.2",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz",
- "integrity": "sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==",
- "dev": true,
- "dependencies": {
- "@octokit/types": "^13.7.0"
- },
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "@octokit/core": "5"
- }
- },
- "node_modules/@octokit/plugin-request-log": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz",
- "integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==",
- "dev": true,
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "@octokit/core": "5"
- }
- },
- "node_modules/@octokit/plugin-rest-endpoint-methods": {
- "version": "13.3.2-cjs.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.2-cjs.1.tgz",
- "integrity": "sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==",
- "dev": true,
- "dependencies": {
- "@octokit/types": "^13.8.0"
- },
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "@octokit/core": "^5"
- }
- },
- "node_modules/@octokit/request": {
- "version": "8.4.1",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz",
- "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==",
- "dev": true,
- "dependencies": {
- "@octokit/endpoint": "^9.0.6",
- "@octokit/request-error": "^5.1.1",
- "@octokit/types": "^13.1.0",
- "universal-user-agent": "^6.0.0"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/@octokit/request-error": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
- "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
- "dev": true,
- "dependencies": {
- "@octokit/types": "^13.1.0",
- "deprecation": "^2.0.0",
- "once": "^1.4.0"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/@octokit/rest": {
- "version": "20.1.2",
- "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.2.tgz",
- "integrity": "sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==",
- "dev": true,
- "dependencies": {
- "@octokit/core": "^5.0.2",
- "@octokit/plugin-paginate-rest": "11.4.4-cjs.2",
- "@octokit/plugin-request-log": "^4.0.0",
- "@octokit/plugin-rest-endpoint-methods": "13.3.2-cjs.1"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/@octokit/types": {
- "version": "13.10.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
- "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
- "dev": true,
- "dependencies": {
- "@octokit/openapi-types": "^24.2.0"
- }
- },
- "node_modules/@paralleldrive/cuid2": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz",
- "integrity": "sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==",
- "dependencies": {
- "@noble/hashes": "^1.1.5"
- }
- },
- "node_modules/@parcel/watcher": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
- "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "dependencies": {
- "detect-libc": "^1.0.3",
- "is-glob": "^4.0.3",
- "micromatch": "^4.0.5",
- "node-addon-api": "^7.0.0"
- },
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "@parcel/watcher-android-arm64": "2.5.1",
- "@parcel/watcher-darwin-arm64": "2.5.1",
- "@parcel/watcher-darwin-x64": "2.5.1",
- "@parcel/watcher-freebsd-x64": "2.5.1",
- "@parcel/watcher-linux-arm-glibc": "2.5.1",
- "@parcel/watcher-linux-arm-musl": "2.5.1",
- "@parcel/watcher-linux-arm64-glibc": "2.5.1",
- "@parcel/watcher-linux-arm64-musl": "2.5.1",
- "@parcel/watcher-linux-x64-glibc": "2.5.1",
- "@parcel/watcher-linux-x64-musl": "2.5.1",
- "@parcel/watcher-win32-arm64": "2.5.1",
- "@parcel/watcher-win32-ia32": "2.5.1",
- "@parcel/watcher-win32-x64": "2.5.1"
- }
- },
- "node_modules/@parcel/watcher-android-arm64": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
- "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-darwin-arm64": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
- "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-darwin-x64": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
- "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-freebsd-x64": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
- "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm-glibc": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
- "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm-musl": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
- "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm64-glibc": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
- "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm64-musl": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
- "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-x64-glibc": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
- "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-x64-musl": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
- "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-win32-arm64": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
- "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-win32-ia32": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
- "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-win32-x64": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
- "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dev": true,
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@pkgr/core": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.4.tgz",
- "integrity": "sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/pkgr"
- }
- },
- "node_modules/@pnpm/config.env-replace": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz",
- "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==",
- "dev": true,
- "engines": {
- "node": ">=12.22.0"
- }
- },
- "node_modules/@pnpm/network.ca-file": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz",
- "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "4.2.10"
- },
- "engines": {
- "node": ">=12.22.0"
- }
- },
- "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
- "dev": true
- },
- "node_modules/@pnpm/npm-conf": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz",
- "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==",
- "dev": true,
- "dependencies": {
- "@pnpm/config.env-replace": "^1.1.0",
- "@pnpm/network.ca-file": "^1.0.1",
- "config-chain": "^1.1.11"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@polka/url": {
- "version": "1.0.0-next.29",
- "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz",
- "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@popperjs/core": {
- "name": "@sxzz/popperjs-es",
- "version": "2.11.7",
- "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
- "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/popperjs"
- }
- },
- "node_modules/@quansync/fs": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@quansync/fs/-/fs-0.1.3.tgz",
- "integrity": "sha512-G0OnZbMWEs5LhDyqy2UL17vGhSVHkQIfVojMtEWVenvj0V5S84VBgy86kJIuNsGDp2p7sTKlpSIpBUWdC35OKg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "quansync": "^0.2.10"
- },
- "engines": {
- "node": ">=20.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sxzz"
- }
- },
- "node_modules/@rolldown/pluginutils": {
- "version": "1.0.0-beta.29",
- "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.29.tgz",
- "integrity": "sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@rollup/plugin-node-resolve": {
- "version": "15.3.1",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz",
- "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==",
- "dev": true,
- "dependencies": {
- "@rollup/pluginutils": "^5.0.1",
- "@types/resolve": "1.20.2",
- "deepmerge": "^4.2.2",
- "is-module": "^1.0.0",
- "resolve": "^1.22.1"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^2.78.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/plugin-terser": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz",
- "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==",
- "dev": true,
- "dependencies": {
- "serialize-javascript": "^6.0.1",
- "smob": "^1.0.0",
- "terser": "^5.17.4"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^2.0.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/pluginutils": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz",
- "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==",
- "dev": true,
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-walker": "^2.0.2",
- "picomatch": "^4.0.2"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/pluginutils/node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "dev": true
- },
- "node_modules/@rollup/pluginutils/node_modules/picomatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
- "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz",
- "integrity": "sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz",
- "integrity": "sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz",
- "integrity": "sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz",
- "integrity": "sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz",
- "integrity": "sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz",
- "integrity": "sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz",
- "integrity": "sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz",
- "integrity": "sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz",
- "integrity": "sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz",
- "integrity": "sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz",
- "integrity": "sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz",
- "integrity": "sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz",
- "integrity": "sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz",
- "integrity": "sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz",
- "integrity": "sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz",
- "integrity": "sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz",
- "integrity": "sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz",
- "integrity": "sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz",
- "integrity": "sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz",
- "integrity": "sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@shikijs/core": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.9.1.tgz",
- "integrity": "sha512-W5Vwen0KJCtR7KFRo+3JLGAqLUPsfW7e+wZ4yaRBGIogwI9ZlnkpRm9ZV8JtfzMxOkIwZwMmmN0hNErLtm3AYg==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "3.9.1",
- "@shikijs/vscode-textmate": "^10.0.2",
- "@types/hast": "^3.0.4",
- "hast-util-to-html": "^9.0.5"
- }
- },
- "node_modules/@shikijs/engine-javascript": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.9.1.tgz",
- "integrity": "sha512-4hGenxYpAmtALryKsdli2K58F0s7RBYpj/RSDcAAGfRM6eTEGI5cZnt86mr+d9/4BaZ5sH5s4p3VU5irIdhj9Q==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "3.9.1",
- "@shikijs/vscode-textmate": "^10.0.2",
- "oniguruma-to-es": "^4.3.3"
- }
- },
- "node_modules/@shikijs/engine-oniguruma": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.9.1.tgz",
- "integrity": "sha512-WPlL/xqviwS3te4unSGGGfflKsuHLMI6tPdNYvgz/IygcBT6UiwDFSzjBKyebwi5GGSlXsjjdoJLIBnAplmEZw==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "3.9.1",
- "@shikijs/vscode-textmate": "^10.0.2"
- }
- },
- "node_modules/@shikijs/langs": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.9.1.tgz",
- "integrity": "sha512-Vyy2Yv9PP3Veh3VSsIvNncOR+O93wFsNYgN2B6cCCJlS7H9SKFYc55edsqernsg8WT/zam1cfB6llJsQWLnVhA==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "3.9.1"
- }
- },
- "node_modules/@shikijs/themes": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.9.1.tgz",
- "integrity": "sha512-zAykkGECNICCMXpKeVvq04yqwaSuAIvrf8MjsU5bzskfg4XreU+O0B5wdNCYRixoB9snd3YlZ373WV5E/g5T9A==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "3.9.1"
- }
- },
- "node_modules/@shikijs/transformers": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-2.5.0.tgz",
- "integrity": "sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==",
- "dev": true,
- "dependencies": {
- "@shikijs/core": "2.5.0",
- "@shikijs/types": "2.5.0"
- }
- },
- "node_modules/@shikijs/transformers/node_modules/@shikijs/core": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-2.5.0.tgz",
- "integrity": "sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==",
- "dev": true,
- "dependencies": {
- "@shikijs/engine-javascript": "2.5.0",
- "@shikijs/engine-oniguruma": "2.5.0",
- "@shikijs/types": "2.5.0",
- "@shikijs/vscode-textmate": "^10.0.2",
- "@types/hast": "^3.0.4",
- "hast-util-to-html": "^9.0.4"
- }
- },
- "node_modules/@shikijs/transformers/node_modules/@shikijs/engine-javascript": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-2.5.0.tgz",
- "integrity": "sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==",
- "dev": true,
- "dependencies": {
- "@shikijs/types": "2.5.0",
- "@shikijs/vscode-textmate": "^10.0.2",
- "oniguruma-to-es": "^3.1.0"
- }
- },
- "node_modules/@shikijs/transformers/node_modules/@shikijs/engine-oniguruma": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-2.5.0.tgz",
- "integrity": "sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==",
- "dev": true,
- "dependencies": {
- "@shikijs/types": "2.5.0",
- "@shikijs/vscode-textmate": "^10.0.2"
- }
- },
- "node_modules/@shikijs/transformers/node_modules/@shikijs/types": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-2.5.0.tgz",
- "integrity": "sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==",
- "dev": true,
- "dependencies": {
- "@shikijs/vscode-textmate": "^10.0.2",
- "@types/hast": "^3.0.4"
- }
- },
- "node_modules/@shikijs/transformers/node_modules/oniguruma-to-es": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz",
- "integrity": "sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==",
- "dev": true,
- "dependencies": {
- "emoji-regex-xs": "^1.0.0",
- "regex": "^6.0.1",
- "regex-recursion": "^6.0.2"
- }
- },
- "node_modules/@shikijs/types": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.9.1.tgz",
- "integrity": "sha512-rqM3T7a0iM1oPKz9iaH/cVgNX9Vz1HERcUcXJ94/fulgVdwqfnhXzGxO4bLrAnh/o5CPLy3IcYedogfV+Ns0Qg==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/vscode-textmate": "^10.0.2",
- "@types/hast": "^3.0.4"
- }
- },
- "node_modules/@shikijs/vscode-textmate": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz",
- "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="
- },
- "node_modules/@sigstore/bundle": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz",
- "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==",
- "dev": true,
- "dependencies": {
- "@sigstore/protobuf-specs": "^0.3.2"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@sigstore/core": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz",
- "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==",
- "dev": true,
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@sigstore/protobuf-specs": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz",
- "integrity": "sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==",
- "dev": true,
- "engines": {
- "node": "^18.17.0 || >=20.5.0"
- }
- },
- "node_modules/@sigstore/sign": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz",
- "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==",
- "dev": true,
- "dependencies": {
- "@sigstore/bundle": "^2.3.2",
- "@sigstore/core": "^1.0.0",
- "@sigstore/protobuf-specs": "^0.3.2",
- "make-fetch-happen": "^13.0.1",
- "proc-log": "^4.2.0",
- "promise-retry": "^2.0.1"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@sigstore/tuf": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz",
- "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==",
- "dev": true,
- "dependencies": {
- "@sigstore/protobuf-specs": "^0.3.2",
- "tuf-js": "^2.2.1"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@sigstore/verify": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz",
- "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==",
- "dev": true,
- "dependencies": {
- "@sigstore/bundle": "^2.3.2",
- "@sigstore/core": "^1.1.0",
- "@sigstore/protobuf-specs": "^0.3.2"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@sinclair/typebox": {
- "version": "0.27.8",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
- "dev": true
- },
- "node_modules/@sindresorhus/is": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz",
- "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==",
- "dev": true,
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/is?sponsor=1"
- }
- },
- "node_modules/@socket.io/component-emitter": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
- "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA=="
- },
- "node_modules/@surma/rollup-plugin-off-main-thread": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz",
- "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==",
- "dev": true,
- "dependencies": {
- "ejs": "^3.1.6",
- "json5": "^2.2.0",
- "magic-string": "^0.25.0",
- "string.prototype.matchall": "^4.0.6"
- }
- },
- "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/magic-string": {
- "version": "0.25.9",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
- "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
- "dev": true,
- "dependencies": {
- "sourcemap-codec": "^1.4.8"
- }
- },
- "node_modules/@szmarczak/http-timer": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
- "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
- "dev": true,
- "dependencies": {
- "defer-to-connect": "^2.0.1"
- },
- "engines": {
- "node": ">=14.16"
- }
- },
- "node_modules/@tediousjs/connection-string": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/@tediousjs/connection-string/-/connection-string-0.5.0.tgz",
- "integrity": "sha512-7qSgZbincDDDFyRweCIEvZULFAw5iz/DeunhvuxpL31nfntX3P4Yd4HkHBRg9H8CdqY1e5WFN1PZIz/REL9MVQ==",
- "dev": true
- },
- "node_modules/@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
- "dev": true,
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tsconfig/node10": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
- "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
- "dev": true
- },
- "node_modules/@tsconfig/node12": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
- "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "dev": true
- },
- "node_modules/@tsconfig/node14": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
- "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "dev": true
- },
- "node_modules/@tsconfig/node16": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
- "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
- "dev": true
- },
- "node_modules/@tufjs/canonical-json": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz",
- "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==",
- "dev": true,
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@tufjs/models": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz",
- "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==",
- "dev": true,
- "dependencies": {
- "@tufjs/canonical-json": "2.0.0",
- "minimatch": "^9.0.4"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/@tybys/wasm-util": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz",
- "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@types/accepts": {
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz",
- "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/bcryptjs": {
- "version": "2.4.6",
- "resolved": "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.6.tgz",
- "integrity": "sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==",
- "dev": true
- },
- "node_modules/@types/body-parser": {
- "version": "1.19.5",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
- "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
- "dependencies": {
- "@types/connect": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/co-body": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.3.tgz",
- "integrity": "sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==",
- "dependencies": {
- "@types/node": "*",
- "@types/qs": "*"
- }
- },
- "node_modules/@types/compression": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@types/compression/-/compression-1.8.1.tgz",
- "integrity": "sha512-kCFuWS0ebDbmxs0AXYn6e2r2nrGAb5KwQhknjSPSPgJcGd8+HVSILlUyFhGqML2gk39HcG7D1ydW9/qpYkN00Q==",
- "license": "MIT",
- "dependencies": {
- "@types/express": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/config": {
- "version": "3.3.5",
- "resolved": "https://registry.npmjs.org/@types/config/-/config-3.3.5.tgz",
- "integrity": "sha512-itq2HtXQBrNUKwMNZnb9mBRE3T99VYCdl1gjST9rq+9kFaB1iMMGuDeZnP88qid73DnpAMKH9ZolqDpS1Lz7+w=="
- },
- "node_modules/@types/connect": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
- "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/content-disposition": {
- "version": "0.5.8",
- "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.8.tgz",
- "integrity": "sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg=="
- },
- "node_modules/@types/cookie-session": {
- "version": "2.0.49",
- "resolved": "https://registry.npmjs.org/@types/cookie-session/-/cookie-session-2.0.49.tgz",
- "integrity": "sha512-4E/bBjlqLhU5l4iGPR+NkVJH593hpNsT4dC3DJDr+ODm6Qpe13kZQVkezRIb+TYDXaBMemS3yLQ+0leba3jlkQ==",
- "dev": true,
- "dependencies": {
- "@types/express": "*",
- "@types/keygrip": "*"
- }
- },
- "node_modules/@types/cookiejar": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz",
- "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q=="
- },
- "node_modules/@types/cookies": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.9.0.tgz",
- "integrity": "sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==",
- "dependencies": {
- "@types/connect": "*",
- "@types/express": "*",
- "@types/keygrip": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/cors": {
- "version": "2.8.19",
- "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz",
- "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/encodeurl": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@types/encodeurl/-/encodeurl-1.0.3.tgz",
- "integrity": "sha512-s10aRcePnVw+iUr5GtTQdzf1GC2jQqkLef2bBUFSX3E52RYnuQ4a7KFHifCFdi4QECiSbyFj7eO9CvZeCnvVkA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/eslint": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
- "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
- "dev": true,
- "dependencies": {
- "@types/estree": "*",
- "@types/json-schema": "*"
- }
- },
- "node_modules/@types/eslint-scope": {
- "version": "3.7.7",
- "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
- "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
- "dev": true,
- "dependencies": {
- "@types/eslint": "*",
- "@types/estree": "*"
- }
- },
- "node_modules/@types/estree": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
- "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
- "dev": true
- },
- "node_modules/@types/express": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
- "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
- "dependencies": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.33",
- "@types/qs": "*",
- "@types/serve-static": "*"
- }
- },
- "node_modules/@types/express-serve-static-core": {
- "version": "4.19.6",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz",
- "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==",
- "dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*",
- "@types/send": "*"
- }
- },
- "node_modules/@types/flexsearch": {
- "version": "0.7.42",
- "resolved": "https://registry.npmjs.org/@types/flexsearch/-/flexsearch-0.7.42.tgz",
- "integrity": "sha512-FdKaw3dPgcCvqU9w8SGgqx8PrxFF2EKySRhEj1nc45HNe/2cBLff3pF52C67hzeUbNhq49t7XRIIibBd41vcIg==",
- "deprecated": "This is a stub types definition. flexsearch provides its own type definitions, so you do not need this installed.",
- "dev": true,
- "dependencies": {
- "flexsearch": "*"
- }
- },
- "node_modules/@types/formidable": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@types/formidable/-/formidable-2.0.6.tgz",
- "integrity": "sha512-L4HcrA05IgQyNYJj6kItuIkXrInJvsXTPC5B1i64FggWKKqSL+4hgt7asiSNva75AoLQjq29oPxFfU4GAQ6Z2w==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/hast": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
- "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
- "dependencies": {
- "@types/unist": "*"
- }
- },
- "node_modules/@types/http-assert": {
- "version": "1.5.6",
- "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.6.tgz",
- "integrity": "sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw=="
- },
- "node_modules/@types/http-cache-semantics": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
- "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==",
- "dev": true
- },
- "node_modules/@types/http-errors": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
- "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA=="
- },
- "node_modules/@types/inquirer": {
- "version": "9.0.7",
- "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.7.tgz",
- "integrity": "sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g==",
- "dependencies": {
- "@types/through": "*",
- "rxjs": "^7.2.0"
- }
- },
- "node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
- "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
- "dev": true
- },
- "node_modules/@types/json-schema": {
- "version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
- },
- "node_modules/@types/jsonwebtoken": {
- "version": "9.0.10",
- "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz",
- "integrity": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==",
- "license": "MIT",
- "dependencies": {
- "@types/ms": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/keygrip": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.6.tgz",
- "integrity": "sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ=="
- },
- "node_modules/@types/koa": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.15.0.tgz",
- "integrity": "sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==",
- "dependencies": {
- "@types/accepts": "*",
- "@types/content-disposition": "*",
- "@types/cookies": "*",
- "@types/http-assert": "*",
- "@types/http-errors": "*",
- "@types/keygrip": "*",
- "@types/koa-compose": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/koa__cors": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@types/koa__cors/-/koa__cors-5.0.0.tgz",
- "integrity": "sha512-LCk/n25Obq5qlernGOK/2LUwa/2YJb2lxHUkkvYFDOpLXlVI6tKcdfCHRBQnOY4LwH6el5WOLs6PD/a8Uzau6g==",
- "dependencies": {
- "@types/koa": "*"
- }
- },
- "node_modules/@types/koa-compose": {
- "version": "3.2.8",
- "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.8.tgz",
- "integrity": "sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==",
- "dependencies": {
- "@types/koa": "*"
- }
- },
- "node_modules/@types/koa-qs": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@types/koa-qs/-/koa-qs-2.0.3.tgz",
- "integrity": "sha512-HS4oAQaUKUZJPHggg3DeHiuUwSSotieNRuS2ZlUZO14216Fhf7QDNx8mjR/ZwXaSBr/R46KFtE0OAvsF3yP44A==",
- "dependencies": {
- "@types/koa": "*"
- }
- },
- "node_modules/@types/koa-send": {
- "version": "4.1.6",
- "resolved": "https://registry.npmjs.org/@types/koa-send/-/koa-send-4.1.6.tgz",
- "integrity": "sha512-vgnNGoOJkx7FrF0Jl6rbK1f8bBecqAchKpXtKuXzqIEdXTDO6dsSTjr+eZ5m7ltSjH4K/E7auNJEQCAd0McUPA==",
- "dependencies": {
- "@types/koa": "*"
- }
- },
- "node_modules/@types/koa-session": {
- "version": "6.4.5",
- "resolved": "https://registry.npmjs.org/@types/koa-session/-/koa-session-6.4.5.tgz",
- "integrity": "sha512-Vc6+fslnPuMH2v9y80WYeo39UMo8mweuNNthKCwYU2ZE6l5vnRrzRU3BRvexKwsoI5sxsRl5CxDsBlLI8kY/XA==",
- "dev": true,
- "dependencies": {
- "@types/cookies": "*",
- "@types/koa": "*"
- }
- },
- "node_modules/@types/koa-static": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@types/koa-static/-/koa-static-4.0.4.tgz",
- "integrity": "sha512-j1AUzzl7eJYEk9g01hNTlhmipFh8RFbOQmaMNLvLcNNAkPw0bdTs3XTa3V045XFlrWN0QYnblbDJv2RzawTn6A==",
- "dependencies": {
- "@types/koa": "*",
- "@types/koa-send": "*"
- }
- },
- "node_modules/@types/linkify-it": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz",
- "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==",
- "dev": true
- },
- "node_modules/@types/lodash": {
- "version": "4.17.20",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz",
- "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==",
- "license": "MIT"
- },
- "node_modules/@types/lodash-es": {
- "version": "4.17.12",
- "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz",
- "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==",
- "dependencies": {
- "@types/lodash": "*"
- }
- },
- "node_modules/@types/markdown-it": {
- "version": "14.1.2",
- "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz",
- "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==",
- "dev": true,
- "dependencies": {
- "@types/linkify-it": "^5",
- "@types/mdurl": "^2"
- }
- },
- "node_modules/@types/mdast": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
- "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
- "dependencies": {
- "@types/unist": "*"
- }
- },
- "node_modules/@types/mdurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz",
- "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==",
- "dev": true
- },
- "node_modules/@types/methods": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz",
- "integrity": "sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ=="
- },
- "node_modules/@types/mime": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
- "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
- },
- "node_modules/@types/minimatch": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
- "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
- "dev": true
- },
- "node_modules/@types/minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
- "dev": true
- },
- "node_modules/@types/mocha": {
- "version": "10.0.10",
- "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz",
- "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==",
- "dev": true
- },
- "node_modules/@types/mongodb": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-4.0.7.tgz",
- "integrity": "sha512-lPUYPpzA43baXqnd36cZ9xxorprybxXDzteVKCPAdp14ppHtFJHnXYvNpmBvtMUTb5fKXVv6sVbzo1LHkWhJlw==",
- "deprecated": "mongodb provides its own types. @types/mongodb is no longer needed.",
- "dev": true,
- "dependencies": {
- "mongodb": "*"
- }
- },
- "node_modules/@types/ms": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
- "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="
- },
- "node_modules/@types/node": {
- "version": "24.1.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz",
- "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==",
- "license": "MIT",
- "dependencies": {
- "undici-types": "~7.8.0"
- }
- },
- "node_modules/@types/node-fetch": {
- "version": "2.6.13",
- "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.13.tgz",
- "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "form-data": "^4.0.4"
- }
- },
- "node_modules/@types/normalize-package-data": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
- "dev": true
- },
- "node_modules/@types/prettier": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
- "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==",
- "dev": true
- },
- "node_modules/@types/qs": {
- "version": "6.14.0",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz",
- "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==",
- "license": "MIT"
- },
- "node_modules/@types/range-parser": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
- "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
- },
- "node_modules/@types/readable-stream": {
- "version": "4.0.18",
- "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.18.tgz",
- "integrity": "sha512-21jK/1j+Wg+7jVw1xnSwy/2Q1VgVjWuFssbYGTREPUBeZ+rqVFl2udq0IkxzPC0ZhOzVceUbyIACFZKLqKEBlA==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "safe-buffer": "~5.1.1"
- }
- },
- "node_modules/@types/readable-stream/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/@types/resolve": {
- "version": "1.20.2",
- "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
- "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
- "dev": true
- },
- "node_modules/@types/sax": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz",
- "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/semver-utils": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@types/semver-utils/-/semver-utils-1.1.3.tgz",
- "integrity": "sha512-T+YwkslhsM+CeuhYUxyAjWm7mJ5am/K10UX40RuA6k6Lc7eGtq8iY2xOzy7Vq0GOqhl/xZl5l2FwURZMTPTUww==",
- "dev": true
- },
- "node_modules/@types/send": {
- "version": "0.17.4",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
- "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
- "dependencies": {
- "@types/mime": "^1",
- "@types/node": "*"
- }
- },
- "node_modules/@types/serve-static": {
- "version": "1.15.7",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
- "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
- "dependencies": {
- "@types/http-errors": "*",
- "@types/node": "*",
- "@types/send": "*"
- }
- },
- "node_modules/@types/superagent": {
- "version": "8.1.9",
- "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.9.tgz",
- "integrity": "sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==",
- "dependencies": {
- "@types/cookiejar": "^2.1.5",
- "@types/methods": "^1.1.4",
- "@types/node": "*",
- "form-data": "^4.0.0"
- }
- },
- "node_modules/@types/through": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz",
- "integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/tough-cookie": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
- "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
- "dev": true
- },
- "node_modules/@types/trusted-types": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
- "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
- "dev": true
- },
- "node_modules/@types/unist": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
- "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="
- },
- "node_modules/@types/uuid": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz",
- "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==",
- "dev": true
- },
- "node_modules/@types/web-bluetooth": {
- "version": "0.0.21",
- "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz",
- "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA=="
- },
- "node_modules/@types/webidl-conversions": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz",
- "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA=="
- },
- "node_modules/@types/whatwg-url": {
- "version": "11.0.5",
- "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz",
- "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==",
- "dependencies": {
- "@types/webidl-conversions": "*"
- }
- },
- "node_modules/@typescript-eslint/eslint-plugin": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz",
- "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==",
- "dev": true,
- "dependencies": {
- "@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "7.18.0",
- "@typescript-eslint/type-utils": "7.18.0",
- "@typescript-eslint/utils": "7.18.0",
- "@typescript-eslint/visitor-keys": "7.18.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.3.1",
- "natural-compare": "^1.4.0",
- "ts-api-utils": "^1.3.0"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "@typescript-eslint/parser": "^7.0.0",
- "eslint": "^8.56.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/parser": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz",
- "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/scope-manager": "7.18.0",
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/typescript-estree": "7.18.0",
- "@typescript-eslint/visitor-keys": "7.18.0",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.56.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz",
- "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/visitor-keys": "7.18.0"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/type-utils": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz",
- "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/typescript-estree": "7.18.0",
- "@typescript-eslint/utils": "7.18.0",
- "debug": "^4.3.4",
- "ts-api-utils": "^1.3.0"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.56.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/types": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz",
- "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==",
- "dev": true,
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz",
- "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/visitor-keys": "7.18.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/utils": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz",
- "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==",
- "dev": true,
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "7.18.0",
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/typescript-estree": "7.18.0"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.56.0"
- }
- },
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz",
- "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/types": "7.18.0",
- "eslint-visitor-keys": "^3.4.3"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typespec/ts-http-runtime": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.2.2.tgz",
- "integrity": "sha512-Gz/Sm64+Sq/vklJu1tt9t+4R2lvnud8NbTD/ZfpZtMiUX7YeVpCA8j6NSW8ptwcoLL+NmYANwqP8DV0q/bwl2w==",
- "dev": true,
- "dependencies": {
- "http-proxy-agent": "^7.0.0",
- "https-proxy-agent": "^7.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@ungap/structured-clone": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
- "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="
- },
- "node_modules/@unocss/astro": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/astro/-/astro-66.3.3.tgz",
- "integrity": "sha512-q26EfadSMmEXZpWDKsJF9anBCfhYDmWljVpDZ2Wo8K48IbZMUXrWfiAiUc6ijE/A/rADfHk8bp3a3GE01t3I9A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3",
- "@unocss/reset": "66.3.3",
- "@unocss/vite": "66.3.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0"
- },
- "peerDependenciesMeta": {
- "vite": {
- "optional": true
- }
- }
- },
- "node_modules/@unocss/cli": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/cli/-/cli-66.3.3.tgz",
- "integrity": "sha512-U0HoDcwi/DetqP5zDT3dfxG94pC3TI0PfxmpdTfPY7xEylIdLbV89fb70CvJVysDSQJIuw6TYwqS1ZlHoYNKTA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@ampproject/remapping": "^2.3.0",
- "@unocss/config": "66.3.3",
- "@unocss/core": "66.3.3",
- "@unocss/preset-uno": "66.3.3",
- "cac": "^6.7.14",
- "chokidar": "^3.6.0",
- "colorette": "^2.0.20",
- "consola": "^3.4.2",
- "magic-string": "^0.30.17",
- "pathe": "^2.0.3",
- "perfect-debounce": "^1.0.0",
- "tinyglobby": "^0.2.14",
- "unplugin-utils": "^0.2.4"
- },
- "bin": {
- "unocss": "bin/unocss.mjs"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/cli/node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/@unocss/cli/node_modules/colorette": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
- "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@unocss/cli/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/@unocss/cli/node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/@unocss/config": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/config/-/config-66.3.3.tgz",
- "integrity": "sha512-D/UxnAmkabapqWU4tF85dWWhNfCUyNutWmd4AD2VsQRZOykufJedLV74r3Z3XhoPJn4IGr3BKZm5/rflf5viDg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3",
- "unconfig": "^7.3.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/core": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/core/-/core-66.3.3.tgz",
- "integrity": "sha512-6WFLd92TJelVQARtCGaF+EgEoHKIVe43gkGXVoWILu0HUDRWdhv+cpcyX0RTJV22Y976AxeneU7/zmhAh+CXNg==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/extractor-arbitrary-variants": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/extractor-arbitrary-variants/-/extractor-arbitrary-variants-66.3.3.tgz",
- "integrity": "sha512-TXzjH6FcITQ8V2x7ETHgVOlAHf3ll/ysxL+W4fMROm8jP/o7jvsg36tRfOwU0sDGo/qoCPux82ix9e6/JW0oqQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/inspector": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/inspector/-/inspector-66.3.3.tgz",
- "integrity": "sha512-NsK1WRWez2Mzk4+ophtBdXel8nGaPkIDa9lYSFMdKLF/1jNW23txeEL8CsD6/CK8K0BsR11rhLKhUrzyrjfBSQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3",
- "@unocss/rule-utils": "66.3.3",
- "colorette": "^2.0.20",
- "gzip-size": "^6.0.0",
- "sirv": "^3.0.1",
- "vue-flow-layout": "^0.1.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/inspector/node_modules/colorette": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
- "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@unocss/postcss": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/postcss/-/postcss-66.3.3.tgz",
- "integrity": "sha512-VKq+BtfPIZbLeAeZFprtKZJAyFBOqA8qpQm+vmWBiBia70JzkwfF2SMNIHiGt022yRo9ZmjnI9uRTxSzqXUsUQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/config": "66.3.3",
- "@unocss/core": "66.3.3",
- "@unocss/rule-utils": "66.3.3",
- "css-tree": "^3.1.0",
- "postcss": "^8.5.6",
- "tinyglobby": "^0.2.14"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "postcss": "^8.4.21"
- }
- },
- "node_modules/@unocss/preset-attributify": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/preset-attributify/-/preset-attributify-66.3.3.tgz",
- "integrity": "sha512-22+0Cqqu09q+xHfZ3Wk8Coxe5m6PmpgWz4U5xrEC8056UfG3Q1KEqoCxy2wySJIq8SqxQ30Nlll7oMa31B8Krw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/preset-icons": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/preset-icons/-/preset-icons-66.3.3.tgz",
- "integrity": "sha512-Bmhiev05BN/horlgnyZ8gzQWZKd7oVpUBWD66X7U/dgkLdO6B5GIIsdO5Fi7JLeMDmyXm6vlYk0YQhiTbx8l9w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@iconify/utils": "^2.3.0",
- "@unocss/core": "66.3.3",
- "ofetch": "^1.4.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/preset-mini": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/preset-mini/-/preset-mini-66.3.3.tgz",
- "integrity": "sha512-pz8rgvHRYS/6fsZNtG7iArLzwANnLy5GkHY/lbuqkWhO2S2Nf7kpJCbR/uV/XeuFsLnYcZW3NLOmelfvZvJamA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3",
- "@unocss/extractor-arbitrary-variants": "66.3.3",
- "@unocss/rule-utils": "66.3.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/preset-tagify": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/preset-tagify/-/preset-tagify-66.3.3.tgz",
- "integrity": "sha512-L1Ez7Y4uBaW+wiv1BOQygpfhseSt3EZ53jqkl7fxl1EKVsJy6SuZgJxlXEHUYp9xYdSp6EHq2CfL8UevaR+loA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/preset-typography": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/preset-typography/-/preset-typography-66.3.3.tgz",
- "integrity": "sha512-aQXiGCObvWD9grfUpm0d5nzN+Cpvag0rHP39UjUKb0xSTzY09VzwDrua4kWVO5wJLNK6/L70osyhEgmC3qToxA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3",
- "@unocss/preset-mini": "66.3.3",
- "@unocss/rule-utils": "66.3.3"
- }
- },
- "node_modules/@unocss/preset-uno": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/preset-uno/-/preset-uno-66.3.3.tgz",
- "integrity": "sha512-Tiho4LidpuMHrB19GHTU6XrL0A5eFELHk9ebQ/3WeTy+K/9a6Hn5zsHJe5UCtOsEcUdKB33oZx0hXUp93hb/YQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3",
- "@unocss/preset-wind3": "66.3.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/preset-web-fonts": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/preset-web-fonts/-/preset-web-fonts-66.3.3.tgz",
- "integrity": "sha512-ysKZeC7TXxRiqnNL9GxZFGMKFAHXrcaqozPaEOIJ40dvzbJt8IMLyFndZkcFMcgDCV0pFh/y37mGxxxARO9+pQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3",
- "ofetch": "^1.4.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/preset-wind": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/preset-wind/-/preset-wind-66.3.3.tgz",
- "integrity": "sha512-3Mxl/TDPcv8nNKdFe3WKdlXE6de+lCaaizEH86BILW3ZeyPU9aKzWcZIoxohla0a6zMxDQ2+Gf+7EwaOvpqo7Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3",
- "@unocss/preset-wind3": "66.3.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/preset-wind3": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/preset-wind3/-/preset-wind3-66.3.3.tgz",
- "integrity": "sha512-iXmjvPqvmPTo4z7epQDqHxzlGRsbLJEgfETqTrRJeagvFG7Gs+ajS8cQhbf6wL01dSRHjvhVXi3MsIvqfHHXOw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3",
- "@unocss/preset-mini": "66.3.3",
- "@unocss/rule-utils": "66.3.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/preset-wind4": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/preset-wind4/-/preset-wind4-66.3.3.tgz",
- "integrity": "sha512-JSJTXVJel6kX+u4Ktt6JGnukYWYhKxmjgORTwclUpokRHgEoD+xsh0Rz4YGJ1fWSnzNslNQhWP9yDRByVPHWwA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3",
- "@unocss/extractor-arbitrary-variants": "66.3.3",
- "@unocss/rule-utils": "66.3.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/reset": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/reset/-/reset-66.3.3.tgz",
- "integrity": "sha512-VIeR/mIcCL89/1uA1KM1QCYca4aeIGqEHMTJL1nCD4v+7wk6XhNXhsp5gMIHo+V804SUSmATWaeHTiKpiFu7AQ==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/rule-utils": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/rule-utils/-/rule-utils-66.3.3.tgz",
- "integrity": "sha512-QKgVGV5nRRnK44/reUKFLAc5UGyl98vz3hrfk8JI8pVza58vmQWTdAB2rIpNJ5a5j+EkWfDOUlGQaOrIeYGLdg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "^66.3.3",
- "magic-string": "^0.30.17"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/transformer-attributify-jsx": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/transformer-attributify-jsx/-/transformer-attributify-jsx-66.3.3.tgz",
- "integrity": "sha512-ENNYFk5wrI4jlxn0tWGeR9QGxflAfZue3X2ABg0KSVOiYyIOsrHqtdoiLYkuCA9idRlBZPQxePJKcPWt1r/tYA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/transformer-compile-class": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/transformer-compile-class/-/transformer-compile-class-66.3.3.tgz",
- "integrity": "sha512-VTEFuwp3iajGWyEFwmO5LRvOjgZM1TK+4rX5Q79xyTAPkLAKgOa03Ne8+kU8oG0TQEa4mXVw6ul9McM7UBJh1w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/transformer-directives": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/transformer-directives/-/transformer-directives-66.3.3.tgz",
- "integrity": "sha512-11T7fmYk/XZcqFDn4qiIvs04mJhUtAoha5Y99bVE+L3byWa6BT4jb5aSAKk+24q5aynwgB++4RgfQxarj69WTw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3",
- "@unocss/rule-utils": "66.3.3",
- "css-tree": "^3.1.0"
- }
- },
- "node_modules/@unocss/transformer-variant-group": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/transformer-variant-group/-/transformer-variant-group-66.3.3.tgz",
- "integrity": "sha512-uhK81pbJfXJFYaXxOoIFVEG8/Kx1iaAkTwRB6c+WNUfl9GiKyYQcrI7bETgCPPbg230Z68jVICBgBATeLJ31vQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@unocss/core": "66.3.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@unocss/vite": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/@unocss/vite/-/vite-66.3.3.tgz",
- "integrity": "sha512-uu3smeEW6q36ri6vydRx2GiTGF5O/J80Fr4GLmLiwfpt2YnPHraO7XHVR5/mwG2Oz5Kov0uGvxVsdgxZABKRgw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@ampproject/remapping": "^2.3.0",
- "@unocss/config": "66.3.3",
- "@unocss/core": "66.3.3",
- "@unocss/inspector": "66.3.3",
- "chokidar": "^3.6.0",
- "magic-string": "^0.30.17",
- "pathe": "^2.0.3",
- "tinyglobby": "^0.2.14",
- "unplugin-utils": "^0.2.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0"
- }
- },
- "node_modules/@unocss/vite/node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/@unocss/vite/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/@unocss/vite/node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/@vitejs/plugin-vue": {
- "version": "5.2.3",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.3.tgz",
- "integrity": "sha512-IYSLEQj4LgZZuoVpdSUCw3dIynTWQgPlaRP6iAvMle4My0HdYwr5g5wQAfwOeHQBmYwEkqF70nRpSilr6PoUDg==",
- "dev": true,
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "peerDependencies": {
- "vite": "^5.0.0 || ^6.0.0",
- "vue": "^3.2.25"
- }
- },
- "node_modules/@vue/compiler-core": {
- "version": "3.5.18",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.18.tgz",
- "integrity": "sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==",
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.28.0",
- "@vue/shared": "3.5.18",
- "entities": "^4.5.0",
- "estree-walker": "^2.0.2",
- "source-map-js": "^1.2.1"
- }
- },
- "node_modules/@vue/compiler-core/node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "license": "MIT"
- },
- "node_modules/@vue/compiler-dom": {
- "version": "3.5.18",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.18.tgz",
- "integrity": "sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==",
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-core": "3.5.18",
- "@vue/shared": "3.5.18"
- }
- },
- "node_modules/@vue/compiler-sfc": {
- "version": "3.5.18",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.18.tgz",
- "integrity": "sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==",
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.28.0",
- "@vue/compiler-core": "3.5.18",
- "@vue/compiler-dom": "3.5.18",
- "@vue/compiler-ssr": "3.5.18",
- "@vue/shared": "3.5.18",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.17",
- "postcss": "^8.5.6",
- "source-map-js": "^1.2.1"
- }
- },
- "node_modules/@vue/compiler-sfc/node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "license": "MIT"
- },
- "node_modules/@vue/compiler-ssr": {
- "version": "3.5.18",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.18.tgz",
- "integrity": "sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==",
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-dom": "3.5.18",
- "@vue/shared": "3.5.18"
- }
- },
- "node_modules/@vue/devtools-api": {
- "version": "7.7.6",
- "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.6.tgz",
- "integrity": "sha512-b2Xx0KvXZObePpXPYHvBRRJLDQn5nhKjXh7vUhMEtWxz1AYNFOVIsh5+HLP8xDGL7sy+Q7hXeUxPHB/KgbtsPw==",
- "dev": true,
- "dependencies": {
- "@vue/devtools-kit": "^7.7.6"
- }
- },
- "node_modules/@vue/devtools-kit": {
- "version": "7.7.6",
- "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.6.tgz",
- "integrity": "sha512-geu7ds7tem2Y7Wz+WgbnbZ6T5eadOvozHZ23Atk/8tksHMFOFylKi1xgGlQlVn0wlkEf4hu+vd5ctj1G4kFtwA==",
- "dev": true,
- "dependencies": {
- "@vue/devtools-shared": "^7.7.6",
- "birpc": "^2.3.0",
- "hookable": "^5.5.3",
- "mitt": "^3.0.1",
- "perfect-debounce": "^1.0.0",
- "speakingurl": "^14.0.1",
- "superjson": "^2.2.2"
- }
- },
- "node_modules/@vue/devtools-shared": {
- "version": "7.7.6",
- "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.6.tgz",
- "integrity": "sha512-yFEgJZ/WblEsojQQceuyK6FzpFDx4kqrz2ohInxNj5/DnhoX023upTv4OD6lNPLAA5LLkbwPVb10o/7b+Y4FVA==",
- "dev": true,
- "dependencies": {
- "rfdc": "^1.4.1"
- }
- },
- "node_modules/@vue/reactivity": {
- "version": "3.5.18",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.18.tgz",
- "integrity": "sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==",
- "license": "MIT",
- "dependencies": {
- "@vue/shared": "3.5.18"
- }
- },
- "node_modules/@vue/runtime-core": {
- "version": "3.5.18",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.18.tgz",
- "integrity": "sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==",
- "license": "MIT",
- "dependencies": {
- "@vue/reactivity": "3.5.18",
- "@vue/shared": "3.5.18"
- }
- },
- "node_modules/@vue/runtime-dom": {
- "version": "3.5.18",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.18.tgz",
- "integrity": "sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==",
- "license": "MIT",
- "dependencies": {
- "@vue/reactivity": "3.5.18",
- "@vue/runtime-core": "3.5.18",
- "@vue/shared": "3.5.18",
- "csstype": "^3.1.3"
- }
- },
- "node_modules/@vue/server-renderer": {
- "version": "3.5.18",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.18.tgz",
- "integrity": "sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==",
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-ssr": "3.5.18",
- "@vue/shared": "3.5.18"
- },
- "peerDependencies": {
- "vue": "3.5.18"
- }
- },
- "node_modules/@vue/shared": {
- "version": "3.5.18",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.18.tgz",
- "integrity": "sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==",
- "license": "MIT"
- },
- "node_modules/@vueuse/core": {
- "version": "12.8.2",
- "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-12.8.2.tgz",
- "integrity": "sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==",
- "dev": true,
- "dependencies": {
- "@types/web-bluetooth": "^0.0.21",
- "@vueuse/metadata": "12.8.2",
- "@vueuse/shared": "12.8.2",
- "vue": "^3.5.13"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@vueuse/integrations": {
- "version": "12.8.2",
- "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-12.8.2.tgz",
- "integrity": "sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g==",
- "dev": true,
- "dependencies": {
- "@vueuse/core": "12.8.2",
- "@vueuse/shared": "12.8.2",
- "vue": "^3.5.13"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "async-validator": "^4",
- "axios": "^1",
- "change-case": "^5",
- "drauu": "^0.4",
- "focus-trap": "^7",
- "fuse.js": "^7",
- "idb-keyval": "^6",
- "jwt-decode": "^4",
- "nprogress": "^0.2",
- "qrcode": "^1.5",
- "sortablejs": "^1",
- "universal-cookie": "^7"
- },
- "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
- }
- }
- },
- "node_modules/@vueuse/metadata": {
- "version": "12.8.2",
- "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-12.8.2.tgz",
- "integrity": "sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@vueuse/shared": {
- "version": "12.8.2",
- "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-12.8.2.tgz",
- "integrity": "sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==",
- "dev": true,
- "dependencies": {
- "vue": "^3.5.13"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@webassemblyjs/ast": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
- "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/helper-numbers": "1.13.2",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
- }
- },
- "node_modules/@webassemblyjs/floating-point-hex-parser": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
- "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-api-error": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
- "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
- "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-numbers": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
- "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/floating-point-hex-parser": "1.13.2",
- "@webassemblyjs/helper-api-error": "1.13.2",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
- "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
- "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-buffer": "1.14.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/wasm-gen": "1.14.1"
- }
- },
- "node_modules/@webassemblyjs/ieee754": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
- "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
- "dev": true,
- "dependencies": {
- "@xtuc/ieee754": "^1.2.0"
- }
- },
- "node_modules/@webassemblyjs/leb128": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
- "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
- "dev": true,
- "dependencies": {
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/utf8": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
- "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
- "dev": true
- },
- "node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
- "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-buffer": "1.14.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/helper-wasm-section": "1.14.1",
- "@webassemblyjs/wasm-gen": "1.14.1",
- "@webassemblyjs/wasm-opt": "1.14.1",
- "@webassemblyjs/wasm-parser": "1.14.1",
- "@webassemblyjs/wast-printer": "1.14.1"
- }
- },
- "node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
- "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/ieee754": "1.13.2",
- "@webassemblyjs/leb128": "1.13.2",
- "@webassemblyjs/utf8": "1.13.2"
- }
- },
- "node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
- "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-buffer": "1.14.1",
- "@webassemblyjs/wasm-gen": "1.14.1",
- "@webassemblyjs/wasm-parser": "1.14.1"
- }
- },
- "node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
- "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-api-error": "1.13.2",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/ieee754": "1.13.2",
- "@webassemblyjs/leb128": "1.13.2",
- "@webassemblyjs/utf8": "1.13.2"
- }
- },
- "node_modules/@webassemblyjs/wast-printer": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
- "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webpack-cli/configtest": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz",
- "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==",
- "dev": true,
- "engines": {
- "node": ">=18.12.0"
- },
- "peerDependencies": {
- "webpack": "^5.82.0",
- "webpack-cli": "6.x.x"
- }
- },
- "node_modules/@webpack-cli/info": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz",
- "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==",
- "dev": true,
- "engines": {
- "node": ">=18.12.0"
- },
- "peerDependencies": {
- "webpack": "^5.82.0",
- "webpack-cli": "6.x.x"
- }
- },
- "node_modules/@webpack-cli/serve": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz",
- "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==",
- "dev": true,
- "engines": {
- "node": ">=18.12.0"
- },
- "peerDependencies": {
- "webpack": "^5.82.0",
- "webpack-cli": "6.x.x"
- },
- "peerDependenciesMeta": {
- "webpack-dev-server": {
- "optional": true
- }
- }
- },
- "node_modules/@xtuc/ieee754": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
- "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "dev": true
- },
- "node_modules/@xtuc/long": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
- "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
- "dev": true
- },
- "node_modules/@yarnpkg/lockfile": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
- "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
- "dev": true
- },
- "node_modules/@yarnpkg/parsers": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.2.tgz",
- "integrity": "sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==",
- "dev": true,
- "dependencies": {
- "js-yaml": "^3.10.0",
- "tslib": "^2.4.0"
- },
- "engines": {
- "node": ">=18.12.0"
- }
- },
- "node_modules/@yarnpkg/parsers/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/@yarnpkg/parsers/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/@yarnpkg/parsers/node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
- "node_modules/@zkochan/js-yaml": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz",
- "integrity": "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==",
- "dev": true,
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/abbrev": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
- "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
- "dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/abort-controller": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
- "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
- "dev": true,
- "dependencies": {
- "event-target-shim": "^5.0.0"
- },
- "engines": {
- "node": ">=6.5"
- }
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/accepts/node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/acorn": {
- "version": "8.15.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
- "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-import-phases": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz",
- "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10.13.0"
- },
- "peerDependencies": {
- "acorn": "^8.14.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/acorn-walk": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
- "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
- "dev": true,
- "dependencies": {
- "acorn": "^8.11.0"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/add-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz",
- "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==",
- "dev": true
- },
- "node_modules/agent-base": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
- "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
- "dev": true,
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/agentkeepalive": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz",
- "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==",
- "dev": true,
- "dependencies": {
- "humanize-ms": "^1.2.1"
- },
- "engines": {
- "node": ">= 8.0.0"
- }
- },
- "node_modules/aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "dev": true,
- "dependencies": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv-formats": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
- "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
- "dev": true,
- "dependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependenciesMeta": {
- "ajv": {
- "optional": true
- }
- }
- },
- "node_modules/ajv-formats/node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.3",
- "fast-uri": "^3.0.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv-formats/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/algoliasearch": {
- "version": "5.24.0",
- "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.24.0.tgz",
- "integrity": "sha512-CkaUygzZ91Xbw11s0CsHMawrK3tl+Ue57725HGRgRzKgt2Z4wvXVXRCtQfvzh8K7Tp4Zp7f1pyHAtMROtTJHxg==",
- "dev": true,
- "dependencies": {
- "@algolia/client-abtesting": "5.24.0",
- "@algolia/client-analytics": "5.24.0",
- "@algolia/client-common": "5.24.0",
- "@algolia/client-insights": "5.24.0",
- "@algolia/client-personalization": "5.24.0",
- "@algolia/client-query-suggestions": "5.24.0",
- "@algolia/client-search": "5.24.0",
- "@algolia/ingestion": "1.24.0",
- "@algolia/monitoring": "1.24.0",
- "@algolia/recommend": "5.24.0",
- "@algolia/requester-browser-xhr": "5.24.0",
- "@algolia/requester-fetch": "5.24.0",
- "@algolia/requester-node-http": "5.24.0"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/ansi-align": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
- "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.1.0"
- }
- },
- "node_modules/ansi-colors": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
- "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dependencies": {
- "type-fest": "^0.21.3"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-escapes/node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/appdata-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/appdata-path/-/appdata-path-1.0.0.tgz",
- "integrity": "sha512-ZbH3ezXfnT/YE3NdqduIt4lBV+H0ybvA2Qx3K76gIjQvh8gROpDFdDLpx6B1QJtW7zxisCbpTlCLhKqoR8cDBw==",
- "dev": true
- },
- "node_modules/aproba": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
- "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
- "dev": true
- },
- "node_modules/are-we-there-yet": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz",
- "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==",
- "deprecated": "This package is no longer supported.",
- "dev": true,
- "dependencies": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "node_modules/array-buffer-byte-length": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
- "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.3",
- "is-array-buffer": "^3.0.5"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array-differ": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
- "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
- },
- "node_modules/array-ify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
- "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==",
- "dev": true
- },
- "node_modules/array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/arraybuffer.prototype.slice": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
- "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
- "dev": true,
- "dependencies": {
- "array-buffer-byte-length": "^1.0.1",
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.5",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.6",
- "is-array-buffer": "^3.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/arrify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
- },
- "node_modules/asn1.js": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
- "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
- "optional": true,
- "dependencies": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "node_modules/async": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
- "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
- "dev": true
- },
- "node_modules/async-function": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
- "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/async-mutex": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz",
- "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/async-validator": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz",
- "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
- },
- "node_modules/at-least-node": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
- "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
- "dev": true,
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/available-typed-arrays": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
- "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
- "dev": true,
- "dependencies": {
- "possible-typed-array-names": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/axios": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz",
- "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==",
- "license": "MIT",
- "dependencies": {
- "follow-redirects": "^1.15.6",
- "form-data": "^4.0.4",
- "proxy-from-env": "^1.1.0"
- }
- },
- "node_modules/b4a": {
- "version": "1.6.7",
- "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz",
- "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==",
- "dev": true
- },
- "node_modules/babel-loader": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-10.0.0.tgz",
- "integrity": "sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==",
- "dev": true,
- "dependencies": {
- "find-up": "^5.0.0"
- },
- "engines": {
- "node": "^18.20.0 || ^20.10.0 || >=22.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.12.0",
- "webpack": ">=5.61.0"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.4.14",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz",
- "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/compat-data": "^7.27.7",
- "@babel/helper-define-polyfill-provider": "^0.6.5",
- "semver": "^6.3.1"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz",
- "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.5",
- "core-js-compat": "^3.43.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz",
- "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.5"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "node_modules/bare-events": {
- "version": "2.5.4",
- "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz",
- "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==",
- "dev": true,
- "optional": true
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/base64id": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
- "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
- "engines": {
- "node": "^4.5.0 || >= 5.9"
- }
- },
- "node_modules/bcryptjs": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.2.tgz",
- "integrity": "sha512-k38b3XOZKv60C4E2hVsXTolJWfkGRMbILBIe2IBITXciy5bOsTKot5kDrf3ZfufQtQOUN5mXceUEpU1rTl9Uog==",
- "bin": {
- "bcrypt": "bin/bcrypt"
- }
- },
- "node_modules/before-after-hook": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
- "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==",
- "dev": true
- },
- "node_modules/bignumber.js": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz",
- "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/bin-links": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz",
- "integrity": "sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==",
- "dev": true,
- "dependencies": {
- "cmd-shim": "^6.0.0",
- "npm-normalize-package-bin": "^3.0.0",
- "read-cmd-shim": "^4.0.0",
- "write-file-atomic": "^5.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "dev": true,
- "dependencies": {
- "file-uri-to-path": "1.0.0"
- }
- },
- "node_modules/birpc": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.3.0.tgz",
- "integrity": "sha512-ijbtkn/F3Pvzb6jHypHRyve2QApOCZDR25D/VnkY2G/lBNcXCTsnsCxgY4k4PkVB7zfwzYbY3O9Lcqe3xufS5g==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "dependencies": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- }
- },
- "node_modules/bn.js": {
- "version": "4.12.2",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
- "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
- "optional": true
- },
- "node_modules/body-parser": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
- "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.5",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.13.0",
- "raw-body": "2.5.2",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/body-parser/node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
- "dependencies": {
- "side-channel": "^1.0.6"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/boxen": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz",
- "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==",
- "dev": true,
- "dependencies": {
- "ansi-align": "^3.0.1",
- "camelcase": "^7.0.1",
- "chalk": "^5.2.0",
- "cli-boxes": "^3.0.0",
- "string-width": "^5.1.2",
- "type-fest": "^2.13.0",
- "widest-line": "^4.0.1",
- "wrap-ansi": "^8.1.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/boxen/node_modules/ansi-regex": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/boxen/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/boxen/node_modules/camelcase": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz",
- "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==",
- "dev": true,
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/boxen/node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
- },
- "node_modules/boxen/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dev": true,
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/boxen/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/boxen/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
- "dev": true,
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/boxen/node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
- "optional": true
- },
- "node_modules/browser-stdout": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
- "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
- "dev": true
- },
- "node_modules/browserslist": {
- "version": "4.25.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz",
- "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "caniuse-lite": "^1.0.30001726",
- "electron-to-chromium": "^1.5.173",
- "node-releases": "^2.0.19",
- "update-browserslist-db": "^1.1.3"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/bson": {
- "version": "6.10.4",
- "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.4.tgz",
- "integrity": "sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=16.20.1"
- }
- },
- "node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "node_modules/buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/buffer-equal-constant-time": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
- },
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "dev": true
- },
- "node_modules/bundle-name": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
- "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
- "dev": true,
- "dependencies": {
- "run-applescript": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/byte-size": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-8.1.1.tgz",
- "integrity": "sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==",
- "dev": true,
- "engines": {
- "node": ">=12.17"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/c8": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/c8/-/c8-9.1.0.tgz",
- "integrity": "sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==",
- "dev": true,
- "dependencies": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@istanbuljs/schema": "^0.1.3",
- "find-up": "^5.0.0",
- "foreground-child": "^3.1.1",
- "istanbul-lib-coverage": "^3.2.0",
- "istanbul-lib-report": "^3.0.1",
- "istanbul-reports": "^3.1.6",
- "test-exclude": "^6.0.0",
- "v8-to-istanbul": "^9.0.0",
- "yargs": "^17.7.2",
- "yargs-parser": "^21.1.1"
- },
- "bin": {
- "c8": "bin/c8.js"
- },
- "engines": {
- "node": ">=14.14.0"
- }
- },
- "node_modules/cac": {
- "version": "6.7.14",
- "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
- "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cacache": {
- "version": "18.0.4",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz",
- "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==",
- "dev": true,
- "dependencies": {
- "@npmcli/fs": "^3.1.0",
- "fs-minipass": "^3.0.0",
- "glob": "^10.2.2",
- "lru-cache": "^10.0.1",
- "minipass": "^7.0.3",
- "minipass-collect": "^2.0.1",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "p-map": "^4.0.0",
- "ssri": "^10.0.0",
- "tar": "^6.1.11",
- "unique-filename": "^3.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/cacheable-lookup": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz",
- "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==",
- "dev": true,
- "engines": {
- "node": ">=14.16"
- }
- },
- "node_modules/cacheable-request": {
- "version": "10.2.14",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz",
- "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==",
- "dev": true,
- "dependencies": {
- "@types/http-cache-semantics": "^4.0.2",
- "get-stream": "^6.0.1",
- "http-cache-semantics": "^4.1.1",
- "keyv": "^4.5.3",
- "mimic-response": "^4.0.0",
- "normalize-url": "^8.0.0",
- "responselike": "^3.0.0"
- },
- "engines": {
- "node": ">=14.16"
- }
- },
- "node_modules/cacheable-request/node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
- "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
- "dev": true,
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.0",
- "es-define-property": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/call-bind-apply-helpers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/call-bound": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
- "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "get-intrinsic": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase-keys": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
- "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
- "dev": true,
- "dependencies": {
- "camelcase": "^5.3.1",
- "map-obj": "^4.0.0",
- "quick-lru": "^4.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001731",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001731.tgz",
- "integrity": "sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "CC-BY-4.0"
- },
- "node_modules/ccount": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
- "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/chalk": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
- "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
- "engines": {
- "node": "^12.17.0 || ^14.13 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/character-entities-html4": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
- "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-entities-legacy": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
- "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/chardet": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
- "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
- },
- "node_modules/chokidar": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
- "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
- "dev": true,
- "dependencies": {
- "readdirp": "^4.0.1"
- },
- "engines": {
- "node": ">= 14.16.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/chrome-trace-event": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
- "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
- "dev": true,
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/cli-boxes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz",
- "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dependencies": {
- "restore-cursor": "^3.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cli-spinners": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz",
- "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==",
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cli-table3": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz",
- "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0"
- },
- "engines": {
- "node": "10.* || >= 12.*"
- },
- "optionalDependencies": {
- "@colors/colors": "1.5.0"
- }
- },
- "node_modules/cli-width": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz",
- "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/cliui/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/cliui/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/clone-deep": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
- "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
- "dev": true,
- "dependencies": {
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.2",
- "shallow-clone": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/cmd-shim": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz",
- "integrity": "sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==",
- "dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/co-body": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.2.0.tgz",
- "integrity": "sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==",
- "dependencies": {
- "@hapi/bourne": "^3.0.0",
- "inflation": "^2.0.0",
- "qs": "^6.5.2",
- "raw-body": "^2.3.3",
- "type-is": "^1.6.16"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
- "dev": true,
- "bin": {
- "color-support": "bin.js"
- }
- },
- "node_modules/colorette": {
- "version": "2.0.19",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
- "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
- "dev": true
- },
- "node_modules/columnify": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz",
- "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==",
- "dev": true,
- "dependencies": {
- "strip-ansi": "^6.0.1",
- "wcwidth": "^1.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/comma-separated-tokens": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
- "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/commander": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
- "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/common-ancestor-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz",
- "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==",
- "dev": true
- },
- "node_modules/common-tags": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz",
- "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==",
- "dev": true,
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
- },
- "node_modules/compare-func": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz",
- "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
- "dev": true,
- "dependencies": {
- "array-ify": "^1.0.0",
- "dot-prop": "^5.1.0"
- }
- },
- "node_modules/component-emitter": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
- "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/compressible": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
- "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
- "dependencies": {
- "mime-db": ">= 1.43.0 < 2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/compression": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz",
- "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==",
- "license": "MIT",
- "dependencies": {
- "bytes": "3.1.2",
- "compressible": "~2.0.18",
- "debug": "2.6.9",
- "negotiator": "~0.6.4",
- "on-headers": "~1.1.0",
- "safe-buffer": "5.2.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/compression/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/compression/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
- },
- "node_modules/concat-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
- "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
- "dev": true,
- "engines": [
- "node >= 6.0"
- ],
- "dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.0.2",
- "typedarray": "^0.0.6"
- }
- },
- "node_modules/confbox": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz",
- "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==",
- "dev": true
- },
- "node_modules/config": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/config/-/config-4.1.0.tgz",
- "integrity": "sha512-uxu0WQTPXwwkR9ZVNQm3ID3f39lWa9HEmppVC6q2HL6sOZszTBL/HGwIHG1dhnWW8006TkhHwZjX6yvAfkXp6Q==",
- "license": "MIT",
- "dependencies": {
- "json5": "^2.2.3"
- },
- "engines": {
- "node": ">= 20.0.0"
- }
- },
- "node_modules/config-chain": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
- "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
- "dev": true,
- "dependencies": {
- "ini": "^1.3.4",
- "proto-list": "~1.2.1"
- }
- },
- "node_modules/configstore": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz",
- "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==",
- "dev": true,
- "dependencies": {
- "dot-prop": "^6.0.1",
- "graceful-fs": "^4.2.6",
- "unique-string": "^3.0.0",
- "write-file-atomic": "^3.0.3",
- "xdg-basedir": "^5.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/yeoman/configstore?sponsor=1"
- }
- },
- "node_modules/configstore/node_modules/dot-prop": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
- "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
- "dev": true,
- "dependencies": {
- "is-obj": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/configstore/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "node_modules/configstore/node_modules/write-file-atomic": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
- "dev": true,
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
- }
- },
- "node_modules/consola": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz",
- "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^14.18.0 || >=16.10.0"
- }
- },
- "node_modules/console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
- "dev": true
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/conventional-changelog-angular": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz",
- "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==",
- "dev": true,
- "dependencies": {
- "compare-func": "^2.0.0"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/conventional-changelog-core": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.1.tgz",
- "integrity": "sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==",
- "dev": true,
- "dependencies": {
- "add-stream": "^1.0.0",
- "conventional-changelog-writer": "^6.0.0",
- "conventional-commits-parser": "^4.0.0",
- "dateformat": "^3.0.3",
- "get-pkg-repo": "^4.2.1",
- "git-raw-commits": "^3.0.0",
- "git-remote-origin-url": "^2.0.0",
- "git-semver-tags": "^5.0.0",
- "normalize-package-data": "^3.0.3",
- "read-pkg": "^3.0.0",
- "read-pkg-up": "^3.0.0"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/conventional-changelog-core/node_modules/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/conventional-changelog-core/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/conventional-changelog-core/node_modules/normalize-package-data": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
- "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^4.0.1",
- "is-core-module": "^2.5.0",
- "semver": "^7.3.4",
- "validate-npm-package-license": "^3.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/conventional-changelog-preset-loader": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz",
- "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==",
- "dev": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/conventional-changelog-writer": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz",
- "integrity": "sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==",
- "dev": true,
- "dependencies": {
- "conventional-commits-filter": "^3.0.0",
- "dateformat": "^3.0.3",
- "handlebars": "^4.7.7",
- "json-stringify-safe": "^5.0.1",
- "meow": "^8.1.2",
- "semver": "^7.0.0",
- "split": "^1.0.1"
- },
- "bin": {
- "conventional-changelog-writer": "cli.js"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/conventional-commits-filter": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz",
- "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==",
- "dev": true,
- "dependencies": {
- "lodash.ismatch": "^4.4.0",
- "modify-values": "^1.0.1"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/conventional-commits-parser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz",
- "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==",
- "dev": true,
- "dependencies": {
- "is-text-path": "^1.0.1",
- "JSONStream": "^1.3.5",
- "meow": "^8.1.2",
- "split2": "^3.2.2"
- },
- "bin": {
- "conventional-commits-parser": "cli.js"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/conventional-recommended-bump": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz",
- "integrity": "sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==",
- "dev": true,
- "dependencies": {
- "concat-stream": "^2.0.0",
- "conventional-changelog-preset-loader": "^3.0.0",
- "conventional-commits-filter": "^3.0.0",
- "conventional-commits-parser": "^4.0.0",
- "git-raw-commits": "^3.0.0",
- "git-semver-tags": "^5.0.0",
- "meow": "^8.1.2"
- },
- "bin": {
- "conventional-recommended-bump": "cli.js"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
- "dev": true
- },
- "node_modules/cookie": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
- "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-session": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/cookie-session/-/cookie-session-2.1.1.tgz",
- "integrity": "sha512-ji3kym/XZaFVew1+tIZk5ZLp9Z/fLv9rK1aZmpug0FsgE7Cu3ZDrUdRo7FT9vFjMYfNimrrUHJzywDwT7XEFlg==",
- "license": "MIT",
- "dependencies": {
- "cookies": "0.9.1",
- "debug": "3.2.7",
- "on-headers": "~1.1.0",
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/cookie-session/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
- },
- "node_modules/cookiejar": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz",
- "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==",
- "dev": true
- },
- "node_modules/cookies": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz",
- "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==",
- "dependencies": {
- "depd": "~2.0.0",
- "keygrip": "~1.1.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/copy-anything": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz",
- "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==",
- "dev": true,
- "dependencies": {
- "is-what": "^4.1.8"
- },
- "engines": {
- "node": ">=12.13"
- },
- "funding": {
- "url": "https://github.com/sponsors/mesqueeb"
- }
- },
- "node_modules/core-js-compat": {
- "version": "3.44.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.44.0.tgz",
- "integrity": "sha512-JepmAj2zfl6ogy34qfWtcE7nHKAJnKsQFRn++scjVS2bZFllwptzw61BZcZFYBPpUznLfAvh0LGhxKppk04ClA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.25.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
- "dev": true
- },
- "node_modules/cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "dependencies": {
- "object-assign": "^4",
- "vary": "^1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/cosmiconfig": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
- "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
- "dev": true,
- "dependencies": {
- "env-paths": "^2.2.1",
- "import-fresh": "^3.3.0",
- "js-yaml": "^4.1.0",
- "parse-json": "^5.2.0"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- },
- "peerDependencies": {
- "typescript": ">=4.9.5"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/crc": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
- "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==",
- "dependencies": {
- "buffer": "^5.1.0"
- }
- },
- "node_modules/create-feathers": {
- "resolved": "packages/create-feathers",
- "link": true
- },
- "node_modules/create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true
- },
- "node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/crypto-random-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
- "dev": true,
- "dependencies": {
- "type-fest": "^1.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/crypto-random-string/node_modules/type-fest": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/css-tree": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
- "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
- "dev": true,
- "dependencies": {
- "mdn-data": "2.12.2",
- "source-map-js": "^1.0.1"
- },
- "engines": {
- "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
- }
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true,
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/csstype": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
- "license": "MIT"
- },
- "node_modules/dargs": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz",
- "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/data-view-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
- "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.3",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/data-view-byte-length": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
- "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.3",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/inspect-js"
- }
- },
- "node_modules/data-view-byte-offset": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
- "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/date-fns": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
- "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/kossnocorp"
- }
- },
- "node_modules/dateformat": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
- "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/dayjs": {
- "version": "1.11.13",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
- "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
- },
- "node_modules/debug": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
- "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decamelize-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
- "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
- "dev": true,
- "dependencies": {
- "decamelize": "^1.1.0",
- "map-obj": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/decamelize-keys/node_modules/map-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decode-uri-component": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.4.1.tgz",
- "integrity": "sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==",
- "engines": {
- "node": ">=14.16"
- }
- },
- "node_modules/decompress-response": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
- "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
- "dev": true,
- "dependencies": {
- "mimic-response": "^3.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/decompress-response/node_modules/mimic-response": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
- "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/dedent": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz",
- "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==",
- "dev": true,
- "peerDependencies": {
- "babel-plugin-macros": "^3.1.0"
- },
- "peerDependenciesMeta": {
- "babel-plugin-macros": {
- "optional": true
- }
- }
- },
- "node_modules/deep-equal": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
- "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw=="
- },
- "node_modules/deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
- "dev": true,
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
- },
- "node_modules/deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/default-browser": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz",
- "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==",
- "dev": true,
- "dependencies": {
- "bundle-name": "^4.1.0",
- "default-browser-id": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/default-browser-id": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz",
- "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==",
- "dev": true,
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/defaults": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
- "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
- "dependencies": {
- "clone": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/defer-to-connect": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
- "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "dev": true,
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/define-lazy-prop": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
- "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/define-properties": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
- "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
- "dev": true,
- "dependencies": {
- "define-data-property": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/defu": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
- "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/deprecation": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
- "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==",
- "dev": true
- },
- "node_modules/dequal": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
- "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/destr": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz",
- "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/detect-indent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz",
- "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/detect-libc": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
- "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
- "dev": true,
- "optional": true,
- "bin": {
- "detect-libc": "bin/detect-libc.js"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/detect-node": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
- "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
- "dev": true
- },
- "node_modules/devlop": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
- "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
- "dependencies": {
- "dequal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/dezalgo": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
- "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
- "dependencies": {
- "asap": "^2.0.0",
- "wrappy": "1"
- }
- },
- "node_modules/diff": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz",
- "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/diff-sequences": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
- "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
- "dev": true,
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "dependencies": {
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/docs": {
- "resolved": "docs",
- "link": true
- },
- "node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/dot-prop": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
- "dev": true,
- "dependencies": {
- "is-obj": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/dotenv": {
- "version": "16.4.7",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
- "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://dotenvx.com"
- }
- },
- "node_modules/dotenv-expand": {
- "version": "11.0.7",
- "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz",
- "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==",
- "dev": true,
- "dependencies": {
- "dotenv": "^16.4.5"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://dotenvx.com"
- }
- },
- "node_modules/dunder-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
- "es-errors": "^1.3.0",
- "gopd": "^1.2.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/duplexer": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
- "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
- "dev": true
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
- },
- "node_modules/ecdsa-sig-formatter": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
- "node_modules/ejs": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
- "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
- "dev": true,
- "dependencies": {
- "jake": "^10.8.5"
- },
- "bin": {
- "ejs": "bin/cli.js"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/electron-to-chromium": {
- "version": "1.5.194",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.194.tgz",
- "integrity": "sha512-SdnWJwSUot04UR51I2oPD8kuP2VI37/CADR1OHsFOUzZIvfWJBO6q11k5P/uKNyTT3cdOsnyjkrZ+DDShqYqJA==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/element-plus": {
- "version": "2.10.5",
- "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.10.5.tgz",
- "integrity": "sha512-O9wTDu3Tm51ACVByWrThtBhH4Ygefg1HGY5pyAaxnoIrj8uMN0GtZ4IREwR3Yw/6sM2HyxjrsGI/D46iUVP97A==",
- "license": "MIT",
- "dependencies": {
- "@ctrl/tinycolor": "^3.4.1",
- "@element-plus/icons-vue": "^2.3.1",
- "@floating-ui/dom": "^1.0.1",
- "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
- "@types/lodash": "^4.14.182",
- "@types/lodash-es": "^4.17.6",
- "@vueuse/core": "^9.1.0",
- "async-validator": "^4.2.5",
- "dayjs": "^1.11.13",
- "escape-html": "^1.0.3",
- "lodash": "^4.17.21",
- "lodash-es": "^4.17.21",
- "lodash-unified": "^1.0.2",
- "memoize-one": "^6.0.0",
- "normalize-wheel-es": "^1.2.0"
- },
- "peerDependencies": {
- "vue": "^3.2.0"
- }
- },
- "node_modules/element-plus/node_modules/@types/web-bluetooth": {
- "version": "0.0.16",
- "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
- "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
- },
- "node_modules/element-plus/node_modules/@vueuse/core": {
- "version": "9.13.0",
- "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz",
- "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
- "dependencies": {
- "@types/web-bluetooth": "^0.0.16",
- "@vueuse/metadata": "9.13.0",
- "@vueuse/shared": "9.13.0",
- "vue-demi": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/element-plus/node_modules/@vueuse/core/node_modules/vue-demi": {
- "version": "0.14.10",
- "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
- "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
- "hasInstallScript": true,
- "bin": {
- "vue-demi-fix": "bin/vue-demi-fix.js",
- "vue-demi-switch": "bin/vue-demi-switch.js"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@vue/composition-api": "^1.0.0-rc.1",
- "vue": "^3.0.0-0 || ^2.6.0"
- },
- "peerDependenciesMeta": {
- "@vue/composition-api": {
- "optional": true
- }
- }
- },
- "node_modules/element-plus/node_modules/@vueuse/metadata": {
- "version": "9.13.0",
- "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz",
- "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/element-plus/node_modules/@vueuse/shared": {
- "version": "9.13.0",
- "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz",
- "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
- "dependencies": {
- "vue-demi": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/element-plus/node_modules/@vueuse/shared/node_modules/vue-demi": {
- "version": "0.14.10",
- "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
- "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
- "hasInstallScript": true,
- "bin": {
- "vue-demi-fix": "bin/vue-demi-fix.js",
- "vue-demi-switch": "bin/vue-demi-switch.js"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@vue/composition-api": "^1.0.0-rc.1",
- "vue": "^3.0.0-0 || ^2.6.0"
- },
- "peerDependenciesMeta": {
- "@vue/composition-api": {
- "optional": true
- }
- }
- },
- "node_modules/elliptic": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz",
- "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==",
- "optional": true,
- "dependencies": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "node_modules/emoji-regex-xs": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz",
- "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==",
- "dev": true
- },
- "node_modules/encodeurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/encoding": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
- "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "iconv-lite": "^0.6.2"
- }
- },
- "node_modules/encoding/node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "dev": true,
- "dependencies": {
- "once": "^1.4.0"
- }
- },
- "node_modules/engine.io": {
- "version": "6.6.4",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz",
- "integrity": "sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==",
- "dependencies": {
- "@types/cors": "^2.8.12",
- "@types/node": ">=10.0.0",
- "accepts": "~1.3.4",
- "base64id": "2.0.0",
- "cookie": "~0.7.2",
- "cors": "~2.8.5",
- "debug": "~4.3.1",
- "engine.io-parser": "~5.2.1",
- "ws": "~8.17.1"
- },
- "engines": {
- "node": ">=10.2.0"
- }
- },
- "node_modules/engine.io-client": {
- "version": "6.6.3",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.3.tgz",
- "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==",
- "dev": true,
- "dependencies": {
- "@socket.io/component-emitter": "~3.1.0",
- "debug": "~4.3.1",
- "engine.io-parser": "~5.2.1",
- "ws": "~8.17.1",
- "xmlhttprequest-ssl": "~2.1.1"
- }
- },
- "node_modules/engine.io-client/node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/engine.io-parser": {
- "version": "5.2.3",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
- "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/engine.io/node_modules/cookie": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
- "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/engine.io/node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/enhanced-resolve": {
- "version": "5.18.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
- "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/enquirer": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
- "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
- "dev": true,
- "dependencies": {
- "ansi-colors": "^4.1.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/entities": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/env-paths": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
- "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/envinfo": {
- "version": "7.13.0",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz",
- "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==",
- "dev": true,
- "bin": {
- "envinfo": "dist/cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/err-code": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
- "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
- "dev": true
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/es-abstract": {
- "version": "1.23.9",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz",
- "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==",
- "dev": true,
- "dependencies": {
- "array-buffer-byte-length": "^1.0.2",
- "arraybuffer.prototype.slice": "^1.0.4",
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "data-view-buffer": "^1.0.2",
- "data-view-byte-length": "^1.0.2",
- "data-view-byte-offset": "^1.0.1",
- "es-define-property": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-set-tostringtag": "^2.1.0",
- "es-to-primitive": "^1.3.0",
- "function.prototype.name": "^1.1.8",
- "get-intrinsic": "^1.2.7",
- "get-proto": "^1.0.0",
- "get-symbol-description": "^1.1.0",
- "globalthis": "^1.0.4",
- "gopd": "^1.2.0",
- "has-property-descriptors": "^1.0.2",
- "has-proto": "^1.2.0",
- "has-symbols": "^1.1.0",
- "hasown": "^2.0.2",
- "internal-slot": "^1.1.0",
- "is-array-buffer": "^3.0.5",
- "is-callable": "^1.2.7",
- "is-data-view": "^1.0.2",
- "is-regex": "^1.2.1",
- "is-shared-array-buffer": "^1.0.4",
- "is-string": "^1.1.1",
- "is-typed-array": "^1.1.15",
- "is-weakref": "^1.1.0",
- "math-intrinsics": "^1.1.0",
- "object-inspect": "^1.13.3",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.7",
- "own-keys": "^1.0.1",
- "regexp.prototype.flags": "^1.5.3",
- "safe-array-concat": "^1.1.3",
- "safe-push-apply": "^1.0.0",
- "safe-regex-test": "^1.1.0",
- "set-proto": "^1.0.0",
- "string.prototype.trim": "^1.2.10",
- "string.prototype.trimend": "^1.0.9",
- "string.prototype.trimstart": "^1.0.8",
- "typed-array-buffer": "^1.0.3",
- "typed-array-byte-length": "^1.0.3",
- "typed-array-byte-offset": "^1.0.4",
- "typed-array-length": "^1.0.7",
- "unbox-primitive": "^1.1.0",
- "which-typed-array": "^1.1.18"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/es-define-property": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-module-lexer": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
- "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
- "dev": true
- },
- "node_modules/es-object-atoms": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
- "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
- "dependencies": {
- "es-errors": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-set-tostringtag": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
- "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
- "dependencies": {
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.6",
- "has-tostringtag": "^1.0.2",
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-to-primitive": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
- "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
- "dev": true,
- "dependencies": {
- "is-callable": "^1.2.7",
- "is-date-object": "^1.0.5",
- "is-symbol": "^1.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/esbuild": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz",
- "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==",
- "hasInstallScript": true,
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.25.3",
- "@esbuild/android-arm": "0.25.3",
- "@esbuild/android-arm64": "0.25.3",
- "@esbuild/android-x64": "0.25.3",
- "@esbuild/darwin-arm64": "0.25.3",
- "@esbuild/darwin-x64": "0.25.3",
- "@esbuild/freebsd-arm64": "0.25.3",
- "@esbuild/freebsd-x64": "0.25.3",
- "@esbuild/linux-arm": "0.25.3",
- "@esbuild/linux-arm64": "0.25.3",
- "@esbuild/linux-ia32": "0.25.3",
- "@esbuild/linux-loong64": "0.25.3",
- "@esbuild/linux-mips64el": "0.25.3",
- "@esbuild/linux-ppc64": "0.25.3",
- "@esbuild/linux-riscv64": "0.25.3",
- "@esbuild/linux-s390x": "0.25.3",
- "@esbuild/linux-x64": "0.25.3",
- "@esbuild/netbsd-arm64": "0.25.3",
- "@esbuild/netbsd-x64": "0.25.3",
- "@esbuild/openbsd-arm64": "0.25.3",
- "@esbuild/openbsd-x64": "0.25.3",
- "@esbuild/sunos-x64": "0.25.3",
- "@esbuild/win32-arm64": "0.25.3",
- "@esbuild/win32-ia32": "0.25.3",
- "@esbuild/win32-x64": "0.25.3"
- }
- },
- "node_modules/escalade": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
- "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-goat": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz",
- "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
- "node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint": {
- "version": "8.57.1",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
- "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
- "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
- "dev": true,
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.57.1",
- "@humanwhocodes/config-array": "^0.13.0",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "@ungap/structured-clone": "^1.2.0",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.2",
- "eslint-visitor-keys": "^3.4.3",
- "espree": "^9.6.1",
- "esquery": "^1.4.2",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-config-prettier": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
- "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
- "dev": true,
- "bin": {
- "eslint-config-prettier": "bin/cli.js"
- },
- "peerDependencies": {
- "eslint": ">=7.0.0"
- }
- },
- "node_modules/eslint-plugin-prettier": {
- "version": "5.2.6",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.6.tgz",
- "integrity": "sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==",
- "dev": true,
- "dependencies": {
- "prettier-linter-helpers": "^1.0.0",
- "synckit": "^0.11.0"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint-plugin-prettier"
- },
- "peerDependencies": {
- "@types/eslint": ">=8.0.0",
- "eslint": ">=8.0.0",
- "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0",
- "prettier": ">=3.0.0"
- },
- "peerDependenciesMeta": {
- "@types/eslint": {
- "optional": true
- },
- "eslint-config-prettier": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-scope": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
- "dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/eslint/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/eslint/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/eslint/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/esm": {
- "version": "3.2.25",
- "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
- "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/esno": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/esno/-/esno-4.8.0.tgz",
- "integrity": "sha512-acMtooReAQGzLU0zcuEDHa8S62meh5aIyi8jboYxyvAePdmuWx2Mpwmt0xjwO0bs9/SXf+dvXJ0QJoDWw814Iw==",
- "dev": true,
- "dependencies": {
- "tsx": "^4.19.1"
- },
- "bin": {
- "esno": "esno.js"
- }
- },
- "node_modules/espree": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
- "dev": true,
- "dependencies": {
- "acorn": "^8.9.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true,
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/esquery": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
- "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
- "dev": true,
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estree-walker": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
- "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
- "dev": true,
- "dependencies": {
- "@types/estree": "^1.0.0"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
- "dev": true
- },
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "engines": {
- "node": ">=0.8.x"
- }
- },
- "node_modules/execa": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz",
- "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/execa/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "node_modules/expand-template": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
- "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/exponential-backoff": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz",
- "integrity": "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==",
- "dev": true
- },
- "node_modules/express": {
- "version": "4.21.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
- "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.3",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.7.1",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.3.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.3",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.12",
- "proxy-addr": "~2.0.7",
- "qs": "6.13.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.19.0",
- "serve-static": "1.16.2",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/express"
- }
- },
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/express/node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
- "dependencies": {
- "side-channel": "^1.0.6"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/exsolve": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz",
- "integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==",
- "dev": true
- },
- "node_modules/external-editor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
- "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
- "dependencies": {
- "chardet": "^0.7.0",
- "iconv-lite": "^0.4.24",
- "tmp": "^0.0.33"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "node_modules/fast-diff": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
- "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
- "dev": true
- },
- "node_modules/fast-fifo": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
- "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
- "dev": true
- },
- "node_modules/fast-glob": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.8"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
- },
- "node_modules/fast-memoize": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz",
- "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==",
- "dev": true
- },
- "node_modules/fast-safe-stringify": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
- "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
- "dev": true
- },
- "node_modules/fast-uri": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz",
- "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fastify"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/fastify"
- }
- ]
- },
- "node_modules/fastest-levenshtein": {
- "version": "1.0.16",
- "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
- "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==",
- "dev": true,
- "engines": {
- "node": ">= 4.9.1"
- }
- },
- "node_modules/fastq": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
- "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
- "dev": true,
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^1.0.5"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/figures/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
- "dev": true,
- "dependencies": {
- "flat-cache": "^3.0.4"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
- "dev": true
- },
- "node_modules/filelist": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
- "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
- "dev": true,
- "dependencies": {
- "minimatch": "^5.0.1"
- }
- },
- "node_modules/filelist/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "dev": true,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/filter-obj": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz",
- "integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==",
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/finalhandler": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
- "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/find-cache-dir": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
- "dev": true,
- "dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
- }
- },
- "node_modules/find-cache-dir/node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "dev": true,
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/find-cache-dir/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "dev": true,
- "bin": {
- "flat": "cli.js"
- }
- },
- "node_modules/flat-cache": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
- "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
- "dev": true,
- "dependencies": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.3",
- "rimraf": "^3.0.2"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/flatted": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
- "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
- "dev": true
- },
- "node_modules/flexsearch": {
- "version": "0.7.43",
- "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.43.tgz",
- "integrity": "sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==",
- "dev": true
- },
- "node_modules/focus-trap": {
- "version": "7.6.4",
- "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.4.tgz",
- "integrity": "sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw==",
- "dev": true,
- "dependencies": {
- "tabbable": "^6.2.0"
- }
- },
- "node_modules/follow-redirects": {
- "version": "1.15.9",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
- "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/for-each": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
- "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
- "dev": true,
- "dependencies": {
- "is-callable": "^1.2.7"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/foreground-child": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
- "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.6",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/form-data": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
- "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
- "license": "MIT",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "es-set-tostringtag": "^2.1.0",
- "hasown": "^2.0.2",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/form-data-encoder": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz",
- "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==",
- "dev": true,
- "engines": {
- "node": ">= 14.17"
- }
- },
- "node_modules/formidable": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.5.tgz",
- "integrity": "sha512-Oz5Hwvwak/DCaXVVUtPn4oLMLLy1CdclLKO1LFgU7XzDpVMUU5UjlSLpGMocyQNNk8F6IJW9M/YdooSn2MRI+Q==",
- "dependencies": {
- "@paralleldrive/cuid2": "^2.2.2",
- "dezalgo": "^1.0.4",
- "once": "^1.4.0",
- "qs": "^6.11.0"
- },
- "funding": {
- "url": "https://ko-fi.com/tunnckoCore/commissions"
- }
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fp-and-or": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/fp-and-or/-/fp-and-or-0.1.4.tgz",
- "integrity": "sha512-+yRYRhpnFPWXSly/6V4Lw9IfOV26uu30kynGJ03PW+MnjOEQe45RZ141QcS0aJehYBYA50GfCDnsRbFJdhssRw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/front-matter": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz",
- "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==",
- "dev": true,
- "dependencies": {
- "js-yaml": "^3.13.1"
- }
- },
- "node_modules/front-matter/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/front-matter/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/front-matter/node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
- "node_modules/fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
- "dev": true
- },
- "node_modules/fs-extra": {
- "version": "11.3.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
- "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=14.14"
- }
- },
- "node_modules/fs-minipass": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz",
- "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==",
- "dev": true,
- "dependencies": {
- "minipass": "^7.0.3"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/function.prototype.name": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
- "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "define-properties": "^1.2.1",
- "functions-have-names": "^1.2.3",
- "hasown": "^2.0.2",
- "is-callable": "^1.2.7"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/functions-have-names": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gauge": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz",
- "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==",
- "deprecated": "This package is no longer supported.",
- "dev": true,
- "dependencies": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.3",
- "console-control-strings": "^1.1.0",
- "has-unicode": "^2.0.1",
- "signal-exit": "^3.0.7",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.5"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/gauge/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true,
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
- "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "es-define-property": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.1.1",
- "function-bind": "^1.1.2",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "has-symbols": "^1.1.0",
- "hasown": "^2.0.2",
- "math-intrinsics": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-own-enumerable-property-symbols": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
- "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==",
- "dev": true
- },
- "node_modules/get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "dev": true,
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/get-pkg-repo": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz",
- "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==",
- "dev": true,
- "dependencies": {
- "@hutson/parse-repository-url": "^3.0.0",
- "hosted-git-info": "^4.0.0",
- "through2": "^2.0.0",
- "yargs": "^16.2.0"
- },
- "bin": {
- "get-pkg-repo": "src/cli.js"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-pkg-repo/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/get-pkg-repo/node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/get-pkg-repo/node_modules/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/get-pkg-repo/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/get-pkg-repo/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/get-pkg-repo/node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/get-pkg-repo/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/get-port": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
- "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
- "dependencies": {
- "dunder-proto": "^1.0.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/get-stdin": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz",
- "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-stream": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz",
- "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-symbol-description": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
- "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.3",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.6"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-tsconfig": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz",
- "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==",
- "dependencies": {
- "resolve-pkg-maps": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
- }
- },
- "node_modules/getopts": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz",
- "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==",
- "dev": true
- },
- "node_modules/git-raw-commits": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz",
- "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==",
- "dev": true,
- "dependencies": {
- "dargs": "^7.0.0",
- "meow": "^8.1.2",
- "split2": "^3.2.2"
- },
- "bin": {
- "git-raw-commits": "cli.js"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/git-remote-origin-url": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz",
- "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==",
- "dev": true,
- "dependencies": {
- "gitconfiglocal": "^1.0.0",
- "pify": "^2.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/git-remote-origin-url/node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/git-semver-tags": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.1.tgz",
- "integrity": "sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==",
- "dev": true,
- "dependencies": {
- "meow": "^8.1.2",
- "semver": "^7.0.0"
- },
- "bin": {
- "git-semver-tags": "cli.js"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/git-up": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz",
- "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==",
- "dev": true,
- "dependencies": {
- "is-ssh": "^1.4.0",
- "parse-url": "^8.1.0"
- }
- },
- "node_modules/git-url-parse": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-14.0.0.tgz",
- "integrity": "sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==",
- "dev": true,
- "dependencies": {
- "git-up": "^7.0.0"
- }
- },
- "node_modules/gitconfiglocal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz",
- "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==",
- "dev": true,
- "dependencies": {
- "ini": "^1.3.2"
- }
- },
- "node_modules/github-from-package": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
- "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
- "dev": true
- },
- "node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "dev": true,
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/glob-to-regexp": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
- "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
- "dev": true
- },
- "node_modules/global-dirs": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
- "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
- "dev": true,
- "dependencies": {
- "ini": "2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/global-dirs/node_modules/ini": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
- "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
- "dev": true,
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/globals/node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/globalthis": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
- "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
- "dev": true,
- "dependencies": {
- "define-properties": "^1.2.1",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dev": true,
- "dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/gopd": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/got": {
- "version": "12.6.1",
- "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz",
- "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==",
- "dev": true,
- "dependencies": {
- "@sindresorhus/is": "^5.2.0",
- "@szmarczak/http-timer": "^5.0.1",
- "cacheable-lookup": "^7.0.0",
- "cacheable-request": "^10.2.8",
- "decompress-response": "^6.0.0",
- "form-data-encoder": "^2.1.2",
- "get-stream": "^6.0.1",
- "http2-wrapper": "^2.1.10",
- "lowercase-keys": "^3.0.0",
- "p-cancelable": "^3.0.0",
- "responselike": "^3.0.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/got?sponsor=1"
- }
- },
- "node_modules/got/node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "dev": true
- },
- "node_modules/grant": {
- "version": "5.4.24",
- "resolved": "https://registry.npmjs.org/grant/-/grant-5.4.24.tgz",
- "integrity": "sha512-PD5AvSI7wgCBDi2mEd6M/TIe+70c/fVc3Ik4B0s4mloWTy9J800eUEcxivOiyqSP9wvBy2QjWq1JR8gOfDMnEg==",
- "dependencies": {
- "qs": "^6.14.0",
- "request-compose": "^2.1.7",
- "request-oauth": "^1.0.1"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "optionalDependencies": {
- "cookie": "^0.7.2",
- "cookie-signature": "^1.2.2",
- "jwk-to-pem": "^2.0.7",
- "jws": "^4.0.0"
- }
- },
- "node_modules/grant/node_modules/cookie": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
- "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
- "optional": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/grant/node_modules/cookie-signature": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz",
- "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==",
- "optional": true,
- "engines": {
- "node": ">=6.6.0"
- }
- },
- "node_modules/grant/node_modules/jwa": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz",
- "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==",
- "optional": true,
- "dependencies": {
- "buffer-equal-constant-time": "1.0.1",
- "ecdsa-sig-formatter": "1.0.11",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/grant/node_modules/jws": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz",
- "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
- "optional": true,
- "dependencies": {
- "jwa": "^2.0.0",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/graphemer": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
- "dev": true
- },
- "node_modules/gzip-size": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz",
- "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "duplexer": "^0.1.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/handle-thing": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
- "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
- "dev": true
- },
- "node_modules/handlebars": {
- "version": "4.7.8",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
- "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
- "dev": true,
- "dependencies": {
- "minimist": "^1.2.5",
- "neo-async": "^2.6.2",
- "source-map": "^0.6.1",
- "wordwrap": "^1.0.0"
- },
- "bin": {
- "handlebars": "bin/handlebars"
- },
- "engines": {
- "node": ">=0.4.7"
- },
- "optionalDependencies": {
- "uglify-js": "^3.1.4"
- }
- },
- "node_modules/hard-rejection": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
- "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/has-bigints": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
- "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "dev": true,
- "dependencies": {
- "es-define-property": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
- "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
- "dev": true,
- "dependencies": {
- "dunder-proto": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-tostringtag": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
- "dependencies": {
- "has-symbols": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
- "dev": true
- },
- "node_modules/has-yarn": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz",
- "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/hash.js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "optional": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/hast-util-to-html": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz",
- "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "ccount": "^2.0.0",
- "comma-separated-tokens": "^2.0.0",
- "hast-util-whitespace": "^3.0.0",
- "html-void-elements": "^3.0.0",
- "mdast-util-to-hast": "^13.0.0",
- "property-information": "^7.0.0",
- "space-separated-tokens": "^2.0.0",
- "stringify-entities": "^4.0.0",
- "zwitch": "^2.0.4"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-whitespace": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
- "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true,
- "bin": {
- "he": "bin/he"
- }
- },
- "node_modules/hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
- "optional": true,
- "dependencies": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/hookable": {
- "version": "5.5.3",
- "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz",
- "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==",
- "dev": true
- },
- "node_modules/hosted-git-info": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
- "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^10.0.1"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/hpack.js": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
- "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "obuf": "^1.0.0",
- "readable-stream": "^2.0.1",
- "wbuf": "^1.1.0"
- }
- },
- "node_modules/hpack.js/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dev": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/hpack.js/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/hpack.js/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
- "node_modules/html-void-elements": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
- "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/http-assert": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz",
- "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==",
- "dependencies": {
- "deep-equal": "~1.0.1",
- "http-errors": "~1.8.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-assert/node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/http-assert/node_modules/http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/http-assert/node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/http-cache-semantics": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
- "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
- "dev": true
- },
- "node_modules/http-deceiver": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
- "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==",
- "dev": true
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
- "dev": true,
- "dependencies": {
- "agent-base": "^7.1.0",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/http2-wrapper": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz",
- "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==",
- "dev": true,
- "dependencies": {
- "quick-lru": "^5.1.1",
- "resolve-alpn": "^1.2.0"
- },
- "engines": {
- "node": ">=10.19.0"
- }
- },
- "node_modules/http2-wrapper/node_modules/quick-lru": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
- "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/https-localhost": {
- "version": "4.7.1",
- "resolved": "https://registry.npmjs.org/https-localhost/-/https-localhost-4.7.1.tgz",
- "integrity": "sha512-rl+NFV0l67/0W7fZwk4LB5gS6HdhtSFLpCpf1N+KD5WQAXtPXX1QE8H0cP8VNJii18rtpTkE9eAHdUfJ0goAnQ==",
- "dev": true,
- "dependencies": {
- "appdata-path": "^1.0.0",
- "compression": "^1.7.4",
- "cors": "^2.8.5",
- "express": "^4.17.1",
- "spdy": "^4.0.2",
- "uglify-js": "^3.15.1"
- },
- "bin": {
- "serve": "index.js"
- }
- },
- "node_modules/https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
- "dev": true,
- "dependencies": {
- "agent-base": "^7.1.2",
- "debug": "4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true,
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/humanize-ms": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
- "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.0.0"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/idb": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz",
- "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==",
- "dev": true
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/ignore": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
- "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/ignore-walk": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz",
- "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==",
- "dev": true,
- "dependencies": {
- "minimatch": "^9.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/immutable": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz",
- "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==",
- "dev": true
- },
- "node_modules/import-fresh": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
- "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
- "dev": true,
- "dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/import-lazy": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
- "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/import-local": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
- "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
- "dev": true,
- "dependencies": {
- "pkg-dir": "^4.2.0",
- "resolve-cwd": "^3.0.0"
- },
- "bin": {
- "import-local-fixture": "fixtures/cli.js"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true,
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/infer-owner": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
- "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
- "dev": true
- },
- "node_modules/inflation": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz",
- "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==",
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
- "dev": true,
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true
- },
- "node_modules/init-package-json": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-6.0.3.tgz",
- "integrity": "sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==",
- "dev": true,
- "dependencies": {
- "@npmcli/package-json": "^5.0.0",
- "npm-package-arg": "^11.0.0",
- "promzard": "^1.0.0",
- "read": "^3.0.1",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4",
- "validate-npm-package-name": "^5.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/inquirer": {
- "version": "9.3.7",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.3.7.tgz",
- "integrity": "sha512-LJKFHCSeIRq9hanN14IlOtPSTe3lNES7TYDTE2xxdAy1LS5rYphajK1qtwvj3YmQXvvk0U2Vbmcni8P9EIQW9w==",
- "dependencies": {
- "@inquirer/figures": "^1.0.3",
- "ansi-escapes": "^4.3.2",
- "cli-width": "^4.1.0",
- "external-editor": "^3.1.0",
- "mute-stream": "1.0.0",
- "ora": "^5.4.1",
- "run-async": "^3.0.0",
- "rxjs": "^7.8.1",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^6.2.0",
- "yoctocolors-cjs": "^2.1.2"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/internal-slot": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
- "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
- "dev": true,
- "dependencies": {
- "es-errors": "^1.3.0",
- "hasown": "^2.0.2",
- "side-channel": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/interpret": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
- "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/ip-address": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
- "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
- "devOptional": true,
- "dependencies": {
- "jsbn": "1.1.0",
- "sprintf-js": "^1.1.3"
- },
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-array-buffer": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
- "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "get-intrinsic": "^1.2.6"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "node_modules/is-async-function": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",
- "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
- "dev": true,
- "dependencies": {
- "async-function": "^1.0.0",
- "call-bound": "^1.0.3",
- "get-proto": "^1.0.1",
- "has-tostringtag": "^1.0.2",
- "safe-regex-test": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-bigint": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
- "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
- "dev": true,
- "dependencies": {
- "has-bigints": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-boolean-object": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
- "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.3",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-ci": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
- "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
- "dev": true,
- "dependencies": {
- "ci-info": "^3.2.0"
- },
- "bin": {
- "is-ci": "bin.js"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
- "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
- "dev": true,
- "dependencies": {
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-data-view": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
- "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.2",
- "get-intrinsic": "^1.2.6",
- "is-typed-array": "^1.1.13"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-date-object": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
- "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.2",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-docker": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
- "dev": true,
- "bin": {
- "is-docker": "cli.js"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-finalizationregistry": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
- "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-generator-function": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz",
- "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.3",
- "get-proto": "^1.0.0",
- "has-tostringtag": "^1.0.2",
- "safe-regex-test": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-inside-container": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
- "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
- "dev": true,
- "dependencies": {
- "is-docker": "^3.0.0"
- },
- "bin": {
- "is-inside-container": "cli.js"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-inside-container/node_modules/is-docker": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
- "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
- "dev": true,
- "bin": {
- "is-docker": "cli.js"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-installed-globally": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
- "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
- "dev": true,
- "dependencies": {
- "global-dirs": "^3.0.0",
- "is-path-inside": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-interactive": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
- "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-lambda": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
- "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
- "dev": true
- },
- "node_modules/is-map": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
- "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
- "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
- "dev": true
- },
- "node_modules/is-npm": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz",
- "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-number-object": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
- "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.3",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-plain-obj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dev": true,
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-regex": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
- "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.2",
- "gopd": "^1.2.0",
- "has-tostringtag": "^1.0.2",
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-regexp": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
- "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-set": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
- "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-shared-array-buffer": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
- "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-ssh": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.1.tgz",
- "integrity": "sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==",
- "dev": true,
- "dependencies": {
- "protocols": "^2.0.1"
- }
- },
- "node_modules/is-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
- "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-string": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
- "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.3",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-symbol": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
- "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.2",
- "has-symbols": "^1.1.0",
- "safe-regex-test": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-text-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz",
- "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==",
- "dev": true,
- "dependencies": {
- "text-extensions": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-type-of": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-type-of/-/is-type-of-2.2.0.tgz",
- "integrity": "sha512-72axShMJMnMy5HSU/jLGNOonZD5rWM0MwJSCYpKCTQCbggQZBJO/CLMMVP5HgS8kPSYFBkTysJexsD6NMvGKDQ=="
- },
- "node_modules/is-typed-array": {
- "version": "1.1.15",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
- "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
- "dev": true,
- "dependencies": {
- "which-typed-array": "^1.1.16"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
- "dev": true
- },
- "node_modules/is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-weakmap": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
- "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakref": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
- "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakset": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
- "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.3",
- "get-intrinsic": "^1.2.6"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-what": {
- "version": "4.1.16",
- "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz",
- "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==",
- "dev": true,
- "engines": {
- "node": ">=12.13"
- },
- "funding": {
- "url": "https://github.com/sponsors/mesqueeb"
- }
- },
- "node_modules/is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
- "dev": true,
- "dependencies": {
- "is-docker": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-yarn-global": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz",
- "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/istanbul-lib-coverage": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
- "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-report": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
- "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
- "dev": true,
- "dependencies": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^4.0.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-reports": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
- "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
- "dev": true,
- "dependencies": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "dev": true,
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/jake": {
- "version": "10.9.2",
- "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz",
- "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==",
- "dev": true,
- "dependencies": {
- "async": "^3.2.3",
- "chalk": "^4.0.2",
- "filelist": "^1.0.4",
- "minimatch": "^3.1.2"
- },
- "bin": {
- "jake": "bin/cli.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/jake/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jake/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/jake/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jake/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/jest-diff": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
- "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.0.0",
- "diff-sequences": "^29.6.3",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-diff/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-diff/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-get-type": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
- "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
- "dev": true,
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-worker": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
- "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/jest-worker/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/jiti": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz",
- "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
- "dev": true,
- "bin": {
- "jiti": "lib/jiti-cli.mjs"
- }
- },
- "node_modules/jju": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz",
- "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==",
- "dev": true
- },
- "node_modules/js-md4": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/js-md4/-/js-md4-0.3.2.tgz",
- "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==",
- "dev": true
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsbn": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
- "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
- "devOptional": true
- },
- "node_modules/jsesc": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
- "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
- "dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
- "dev": true
- },
- "node_modules/json-parse-better-errors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "dev": true
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
- "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
- "dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/json-parse-helpfulerror": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz",
- "integrity": "sha512-XgP0FGR77+QhUxjXkwOMkC94k3WtqEBfcnjWqhRd82qTat4SWKRE+9kUnynz/shm3I4ea2+qISvTIeGTNU7kJg==",
- "dev": true,
- "dependencies": {
- "jju": "^1.1.0"
- }
- },
- "node_modules/json-schema": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
- "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
- "dev": true
- },
- "node_modules/json-schema-to-ts": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/json-schema-to-ts/-/json-schema-to-ts-3.1.1.tgz",
- "integrity": "sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==",
- "dependencies": {
- "@babel/runtime": "^7.18.3",
- "ts-algebra": "^2.0.0"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true
- },
- "node_modules/json-stringify-nice": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz",
- "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dev": true
- },
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/jsonc-parser": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
- "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
- "dev": true
- },
- "node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/jsonlines": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsonlines/-/jsonlines-0.1.1.tgz",
- "integrity": "sha512-ekDrAGso79Cvf+dtm+mL8OBI2bmAOt3gssYs833De/C9NmIpWDWyUO4zPgB5x2/OhY366dkhgfPMYfwZF7yOZA==",
- "dev": true
- },
- "node_modules/jsonparse": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
- "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
- "dev": true,
- "engines": [
- "node >= 0.2.0"
- ]
- },
- "node_modules/jsonpointer": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz",
- "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/JSONStream": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
- "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
- "dev": true,
- "dependencies": {
- "jsonparse": "^1.2.0",
- "through": ">=2.2.7 <3"
- },
- "bin": {
- "JSONStream": "bin.js"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/jsonwebtoken": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
- "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
- "dependencies": {
- "jws": "^3.2.2",
- "lodash.includes": "^4.3.0",
- "lodash.isboolean": "^3.0.3",
- "lodash.isinteger": "^4.0.4",
- "lodash.isnumber": "^3.0.3",
- "lodash.isplainobject": "^4.0.6",
- "lodash.isstring": "^4.0.1",
- "lodash.once": "^4.0.0",
- "ms": "^2.1.1",
- "semver": "^7.5.4"
- },
- "engines": {
- "node": ">=12",
- "npm": ">=6"
- }
- },
- "node_modules/just-diff": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz",
- "integrity": "sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==",
- "dev": true
- },
- "node_modules/just-diff-apply": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz",
- "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==",
- "dev": true
- },
- "node_modules/jwa": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
- "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
- "dependencies": {
- "buffer-equal-constant-time": "1.0.1",
- "ecdsa-sig-formatter": "1.0.11",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/jwk-to-pem": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/jwk-to-pem/-/jwk-to-pem-2.0.7.tgz",
- "integrity": "sha512-cSVphrmWr6reVchuKQZdfSs4U9c5Y4hwZggPoz6cbVnTpAVgGRpEuQng86IyqLeGZlhTh+c4MAreB6KbdQDKHQ==",
- "optional": true,
- "dependencies": {
- "asn1.js": "^5.3.0",
- "elliptic": "^6.6.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/jws": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
- "dependencies": {
- "jwa": "^1.4.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/keygrip": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
- "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
- "dependencies": {
- "tsscmp": "1.0.6"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
- "dev": true,
- "dependencies": {
- "json-buffer": "3.0.1"
- }
- },
- "node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/kleur": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
- "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/knex": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/knex/-/knex-3.1.0.tgz",
- "integrity": "sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==",
- "dev": true,
- "dependencies": {
- "colorette": "2.0.19",
- "commander": "^10.0.0",
- "debug": "4.3.4",
- "escalade": "^3.1.1",
- "esm": "^3.2.25",
- "get-package-type": "^0.1.0",
- "getopts": "2.3.0",
- "interpret": "^2.2.0",
- "lodash": "^4.17.21",
- "pg-connection-string": "2.6.2",
- "rechoir": "^0.8.0",
- "resolve-from": "^5.0.0",
- "tarn": "^3.0.2",
- "tildify": "2.0.0"
- },
- "bin": {
- "knex": "bin/cli.js"
- },
- "engines": {
- "node": ">=16"
- },
- "peerDependenciesMeta": {
- "better-sqlite3": {
- "optional": true
- },
- "mysql": {
- "optional": true
- },
- "mysql2": {
- "optional": true
- },
- "pg": {
- "optional": true
- },
- "pg-native": {
- "optional": true
- },
- "sqlite3": {
- "optional": true
- },
- "tedious": {
- "optional": true
- }
- }
- },
- "node_modules/knex/node_modules/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
- "dev": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/knex/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/knex/node_modules/interpret": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
- "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/knex/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/knex/node_modules/rechoir": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
- "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
- "dev": true,
- "dependencies": {
- "resolve": "^1.20.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/knex/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/koa": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/koa/-/koa-3.0.1.tgz",
- "integrity": "sha512-oDxVkRwPOHhGlxKIDiDB2h+/l05QPtefD7nSqRgDfZt8P+QVYFWjfeK8jANf5O2YXjk8egd7KntvXKYx82wOag==",
- "license": "MIT",
- "dependencies": {
- "accepts": "^1.3.8",
- "content-disposition": "~0.5.4",
- "content-type": "^1.0.5",
- "cookies": "~0.9.1",
- "delegates": "^1.0.0",
- "destroy": "^1.2.0",
- "encodeurl": "^2.0.0",
- "escape-html": "^1.0.3",
- "fresh": "~0.5.2",
- "http-assert": "^1.5.0",
- "http-errors": "^2.0.0",
- "koa-compose": "^4.1.0",
- "mime-types": "^3.0.1",
- "on-finished": "^2.4.1",
- "parseurl": "^1.3.3",
- "statuses": "^2.0.1",
- "type-is": "^2.0.1",
- "vary": "^1.1.2"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/koa-body": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/koa-body/-/koa-body-6.0.1.tgz",
- "integrity": "sha512-M8ZvMD8r+kPHy28aWP9VxL7kY8oPWA+C7ZgCljrCMeaU7uX6wsIQgDHskyrAr9sw+jqnIXyv4Mlxri5R4InIJg==",
- "dependencies": {
- "@types/co-body": "^6.1.0",
- "@types/formidable": "^2.0.5",
- "@types/koa": "^2.13.5",
- "co-body": "^6.1.0",
- "formidable": "^2.0.1",
- "zod": "^3.19.1"
- }
- },
- "node_modules/koa-compose": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz",
- "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw=="
- },
- "node_modules/koa-qs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/koa-qs/-/koa-qs-3.0.0.tgz",
- "integrity": "sha512-05IB5KirwMs3heWW26iTz46HuMAtrlrRMus/aNH1BRDocLyF/099EtCB0MIfQpRuT0TISvaTsWwSy2gctIWiGA==",
- "dependencies": {
- "merge-descriptors": "^1.0.1",
- "qs": "^6.9.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/koa-send": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz",
- "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==",
- "dependencies": {
- "debug": "^4.1.1",
- "http-errors": "^1.7.3",
- "resolve-path": "^1.4.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/koa-send/node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/koa-send/node_modules/http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/koa-send/node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/koa-session": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/koa-session/-/koa-session-7.0.2.tgz",
- "integrity": "sha512-nMWJndLmIuKQMTYPr5NokGQOGD2Aqal5GVi1xAhrQjrrzKq1ASy1WTFVkZ/xhwhtC4KpWi5KdqNYewZo7KJb4w==",
- "dependencies": {
- "crc": "^3.8.0",
- "is-type-of": "^2.2.0",
- "zod": "^3.24.1"
- },
- "engines": {
- "node": ">= 18.19.0"
- }
- },
- "node_modules/koa-static": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz",
- "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==",
- "dependencies": {
- "debug": "^3.1.0",
- "koa-send": "^5.0.0"
- },
- "engines": {
- "node": ">= 7.6.0"
- }
- },
- "node_modules/koa-static/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/koa/node_modules/media-typer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
- "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/koa/node_modules/mime-db": {
- "version": "1.54.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
- "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/koa/node_modules/mime-types": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz",
- "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==",
- "dependencies": {
- "mime-db": "^1.54.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/koa/node_modules/type-is": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz",
- "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==",
- "dependencies": {
- "content-type": "^1.0.5",
- "media-typer": "^1.1.0",
- "mime-types": "^3.0.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/kolorist": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
- "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/latest-version": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz",
- "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==",
- "dev": true,
- "dependencies": {
- "package-json": "^8.1.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lerna": {
- "version": "8.2.2",
- "resolved": "https://registry.npmjs.org/lerna/-/lerna-8.2.2.tgz",
- "integrity": "sha512-GkqBELTG4k7rfzAwRok2pKBvhNo046Hfwcj7TuhDah3q58/BBBAqvIFLfqEI5fglnNOs6maMSn6/MWjccQE55A==",
- "dev": true,
- "dependencies": {
- "@lerna/create": "8.2.2",
- "@npmcli/arborist": "7.5.4",
- "@npmcli/package-json": "5.2.0",
- "@npmcli/run-script": "8.1.0",
- "@nx/devkit": ">=17.1.2 < 21",
- "@octokit/plugin-enterprise-rest": "6.0.1",
- "@octokit/rest": "20.1.2",
- "aproba": "2.0.0",
- "byte-size": "8.1.1",
- "chalk": "4.1.0",
- "clone-deep": "4.0.1",
- "cmd-shim": "6.0.3",
- "color-support": "1.1.3",
- "columnify": "1.6.0",
- "console-control-strings": "^1.1.0",
- "conventional-changelog-angular": "7.0.0",
- "conventional-changelog-core": "5.0.1",
- "conventional-recommended-bump": "7.0.1",
- "cosmiconfig": "9.0.0",
- "dedent": "1.5.3",
- "envinfo": "7.13.0",
- "execa": "5.0.0",
- "fs-extra": "^11.2.0",
- "get-port": "5.1.1",
- "get-stream": "6.0.0",
- "git-url-parse": "14.0.0",
- "glob-parent": "6.0.2",
- "globby": "11.1.0",
- "graceful-fs": "4.2.11",
- "has-unicode": "2.0.1",
- "import-local": "3.1.0",
- "ini": "^1.3.8",
- "init-package-json": "6.0.3",
- "inquirer": "^8.2.4",
- "is-ci": "3.0.1",
- "is-stream": "2.0.0",
- "jest-diff": ">=29.4.3 < 30",
- "js-yaml": "4.1.0",
- "libnpmaccess": "8.0.6",
- "libnpmpublish": "9.0.9",
- "load-json-file": "6.2.0",
- "lodash": "^4.17.21",
- "make-dir": "4.0.0",
- "minimatch": "3.0.5",
- "multimatch": "5.0.0",
- "node-fetch": "2.6.7",
- "npm-package-arg": "11.0.2",
- "npm-packlist": "8.0.2",
- "npm-registry-fetch": "^17.1.0",
- "nx": ">=17.1.2 < 21",
- "p-map": "4.0.0",
- "p-map-series": "2.1.0",
- "p-pipe": "3.1.0",
- "p-queue": "6.6.2",
- "p-reduce": "2.1.0",
- "p-waterfall": "2.1.1",
- "pacote": "^18.0.6",
- "pify": "5.0.0",
- "read-cmd-shim": "4.0.0",
- "resolve-from": "5.0.0",
- "rimraf": "^4.4.1",
- "semver": "^7.3.8",
- "set-blocking": "^2.0.0",
- "signal-exit": "3.0.7",
- "slash": "3.0.0",
- "ssri": "^10.0.6",
- "string-width": "^4.2.3",
- "strong-log-transformer": "2.1.0",
- "tar": "6.2.1",
- "temp-dir": "1.0.0",
- "typescript": ">=3 < 6",
- "upath": "2.0.1",
- "uuid": "^10.0.0",
- "validate-npm-package-license": "3.0.4",
- "validate-npm-package-name": "5.0.1",
- "wide-align": "1.1.5",
- "write-file-atomic": "5.0.1",
- "write-pkg": "4.0.0",
- "yargs": "17.7.2",
- "yargs-parser": "21.1.1"
- },
- "bin": {
- "lerna": "dist/cli.js"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/lerna/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/lerna/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/lerna/node_modules/chalk": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
- "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/lerna/node_modules/cli-width": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
- "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
- "dev": true,
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/lerna/node_modules/glob": {
- "version": "9.3.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz",
- "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "minimatch": "^8.0.2",
- "minipass": "^4.2.4",
- "path-scurry": "^1.6.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/lerna/node_modules/glob/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/lerna/node_modules/glob/node_modules/minimatch": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz",
- "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/lerna/node_modules/inquirer": {
- "version": "8.2.6",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz",
- "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==",
- "dev": true,
- "dependencies": {
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.1.1",
- "cli-cursor": "^3.1.0",
- "cli-width": "^3.0.0",
- "external-editor": "^3.0.3",
- "figures": "^3.0.0",
- "lodash": "^4.17.21",
- "mute-stream": "0.0.8",
- "ora": "^5.4.1",
- "run-async": "^2.4.0",
- "rxjs": "^7.5.5",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "through": "^2.3.6",
- "wrap-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/lerna/node_modules/inquirer/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/lerna/node_modules/minimatch": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz",
- "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/lerna/node_modules/minipass": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
- "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lerna/node_modules/mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
- "dev": true
- },
- "node_modules/lerna/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lerna/node_modules/rimraf": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz",
- "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==",
- "dev": true,
- "dependencies": {
- "glob": "^9.2.0"
- },
- "bin": {
- "rimraf": "dist/cjs/src/bin.js"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/lerna/node_modules/run-async": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
- "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/lerna/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "node_modules/leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/libnpmaccess": {
- "version": "8.0.6",
- "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-8.0.6.tgz",
- "integrity": "sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==",
- "dev": true,
- "dependencies": {
- "npm-package-arg": "^11.0.2",
- "npm-registry-fetch": "^17.0.1"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/libnpmpublish": {
- "version": "9.0.9",
- "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-9.0.9.tgz",
- "integrity": "sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==",
- "dev": true,
- "dependencies": {
- "ci-info": "^4.0.0",
- "normalize-package-data": "^6.0.1",
- "npm-package-arg": "^11.0.2",
- "npm-registry-fetch": "^17.0.1",
- "proc-log": "^4.2.0",
- "semver": "^7.3.7",
- "sigstore": "^2.2.0",
- "ssri": "^10.0.6"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/libnpmpublish/node_modules/ci-info": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.2.0.tgz",
- "integrity": "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz",
- "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
- },
- "node_modules/linkify-it": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
- "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
- "dev": true,
- "dependencies": {
- "uc.micro": "^2.0.0"
- }
- },
- "node_modules/load-json-file": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz",
- "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.15",
- "parse-json": "^5.0.0",
- "strip-bom": "^4.0.0",
- "type-fest": "^0.6.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/load-json-file/node_modules/type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/loader-runner": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
- "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
- "dev": true,
- "engines": {
- "node": ">=6.11.5"
- }
- },
- "node_modules/local-pkg": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz",
- "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==",
- "dev": true,
- "dependencies": {
- "mlly": "^1.7.4",
- "pkg-types": "^2.0.1",
- "quansync": "^0.2.8"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
- },
- "node_modules/lodash-es": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
- "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
- },
- "node_modules/lodash-unified": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz",
- "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==",
- "peerDependencies": {
- "@types/lodash-es": "*",
- "lodash": "*",
- "lodash-es": "*"
- }
- },
- "node_modules/lodash.debounce": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/lodash.includes": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
- "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="
- },
- "node_modules/lodash.isboolean": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
- "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
- },
- "node_modules/lodash.isinteger": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
- "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="
- },
- "node_modules/lodash.ismatch": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz",
- "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==",
- "dev": true
- },
- "node_modules/lodash.isnumber": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
- "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="
- },
- "node_modules/lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="
- },
- "node_modules/lodash.isstring": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
- "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
- },
- "node_modules/lodash.once": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
- "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="
- },
- "node_modules/lodash.sortby": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
- "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
- "dev": true
- },
- "node_modules/log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dependencies": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/log-symbols/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/log-symbols/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/long-timeout": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz",
- "integrity": "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w=="
- },
- "node_modules/lowercase-keys": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
- "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true
- },
- "node_modules/magic-string": {
- "version": "0.30.17",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
- "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0"
- }
- },
- "node_modules/make-dir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
- "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
- "dev": true,
- "dependencies": {
- "semver": "^7.5.3"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/make-error": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true
- },
- "node_modules/make-fetch-happen": {
- "version": "13.0.1",
- "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz",
- "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==",
- "dev": true,
- "dependencies": {
- "@npmcli/agent": "^2.0.0",
- "cacache": "^18.0.0",
- "http-cache-semantics": "^4.1.1",
- "is-lambda": "^1.0.1",
- "minipass": "^7.0.2",
- "minipass-fetch": "^3.0.0",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "negotiator": "^0.6.3",
- "proc-log": "^4.2.0",
- "promise-retry": "^2.0.1",
- "ssri": "^10.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/map-obj": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
- "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/mark.js": {
- "version": "8.11.1",
- "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz",
- "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==",
- "dev": true
- },
- "node_modules/markdown-it": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
- "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
- "dev": true,
- "dependencies": {
- "argparse": "^2.0.1",
- "entities": "^4.4.0",
- "linkify-it": "^5.0.0",
- "mdurl": "^2.0.0",
- "punycode.js": "^2.3.1",
- "uc.micro": "^2.1.0"
- },
- "bin": {
- "markdown-it": "bin/markdown-it.mjs"
- }
- },
- "node_modules/math-intrinsics": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/mdast-util-to-hast": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz",
- "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "@ungap/structured-clone": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-util-sanitize-uri": "^2.0.0",
- "trim-lines": "^3.0.0",
- "unist-util-position": "^5.0.0",
- "unist-util-visit": "^5.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdn-data": {
- "version": "2.12.2",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
- "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
- "dev": true
- },
- "node_modules/mdurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
- "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
- "dev": true
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/memoize-one": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
- "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
- },
- "node_modules/memory-pager": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
- "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg=="
- },
- "node_modules/meow": {
- "version": "8.1.2",
- "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz",
- "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==",
- "dev": true,
- "dependencies": {
- "@types/minimist": "^1.2.0",
- "camelcase-keys": "^6.2.2",
- "decamelize-keys": "^1.1.0",
- "hard-rejection": "^2.1.0",
- "minimist-options": "4.1.0",
- "normalize-package-data": "^3.0.0",
- "read-pkg-up": "^7.0.1",
- "redent": "^3.0.0",
- "trim-newlines": "^3.0.0",
- "type-fest": "^0.18.0",
- "yargs-parser": "^20.2.3"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/meow/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/meow/node_modules/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/meow/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/meow/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/meow/node_modules/normalize-package-data": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
- "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^4.0.1",
- "is-core-module": "^2.5.0",
- "semver": "^7.3.4",
- "validate-npm-package-license": "^3.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/meow/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/meow/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/meow/node_modules/read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
- "dev": true,
- "dependencies": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/meow/node_modules/read-pkg-up": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
- "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
- "dev": true,
- "dependencies": {
- "find-up": "^4.1.0",
- "read-pkg": "^5.2.0",
- "type-fest": "^0.8.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
- },
- "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- }
- },
- "node_modules/meow/node_modules/read-pkg/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/meow/node_modules/type-fest": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
- "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/meow/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
- "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-encode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
- "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ]
- },
- "node_modules/micromark-util-sanitize-uri": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
- "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-encode": "^2.0.0",
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ]
- },
- "node_modules/micromark-util-types": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
- "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ]
- },
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
- "dev": true,
- "dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/mimic-response": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz",
- "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "devOptional": true
- },
- "node_modules/minimalistic-crypto-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
- "optional": true
- },
- "node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minimist-options": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
- "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
- "dev": true,
- "dependencies": {
- "arrify": "^1.0.1",
- "is-plain-obj": "^1.1.0",
- "kind-of": "^6.0.3"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "dev": true,
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/minipass-collect": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz",
- "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==",
- "dev": true,
- "dependencies": {
- "minipass": "^7.0.3"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/minipass-fetch": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz",
- "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==",
- "dev": true,
- "dependencies": {
- "minipass": "^7.0.3",
- "minipass-sized": "^1.0.3",
- "minizlib": "^2.1.2"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- },
- "optionalDependencies": {
- "encoding": "^0.1.13"
- }
- },
- "node_modules/minipass-flush": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
- "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/minipass-flush/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass-json-stream": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.2.tgz",
- "integrity": "sha512-myxeeTm57lYs8pH2nxPzmEEg8DGIgW+9mv6D4JZD2pa81I/OBjeU7PtICXV6c9eRGTA5JMDsuIPUZRCyBMYNhg==",
- "dev": true,
- "dependencies": {
- "jsonparse": "^1.3.1",
- "minipass": "^3.0.0"
- }
- },
- "node_modules/minipass-json-stream/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass-pipeline": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
- "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass-pipeline/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass-sized": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
- "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass-sized/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minisearch": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.1.2.tgz",
- "integrity": "sha512-R1Pd9eF+MD5JYDDSPAp/q1ougKglm14uEkPMvQ/05RGmx6G9wvmLTrTI/Q5iPNJLYqNdsDQ7qTGIcNWR+FrHmA==",
- "dev": true
- },
- "node_modules/minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/minizlib/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/mitt": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
- "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
- "dev": true
- },
- "node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "dev": true,
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/mkdirp-classic": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
- "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
- "dev": true
- },
- "node_modules/mlly": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz",
- "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==",
- "dev": true,
- "dependencies": {
- "acorn": "^8.14.0",
- "pathe": "^2.0.1",
- "pkg-types": "^1.3.0",
- "ufo": "^1.5.4"
- }
- },
- "node_modules/mlly/node_modules/confbox": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
- "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
- "dev": true
- },
- "node_modules/mlly/node_modules/pkg-types": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
- "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
- "dev": true,
- "dependencies": {
- "confbox": "^0.1.8",
- "mlly": "^1.7.4",
- "pathe": "^2.0.1"
- }
- },
- "node_modules/mocha": {
- "version": "11.7.1",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.7.1.tgz",
- "integrity": "sha512-5EK+Cty6KheMS/YLPPMJC64g5V61gIR25KsRItHw6x4hEKT6Njp1n9LOlH4gpevuwMVS66SXaBBpg+RWZkza4A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "browser-stdout": "^1.3.1",
- "chokidar": "^4.0.1",
- "debug": "^4.3.5",
- "diff": "^7.0.0",
- "escape-string-regexp": "^4.0.0",
- "find-up": "^5.0.0",
- "glob": "^10.4.5",
- "he": "^1.2.0",
- "js-yaml": "^4.1.0",
- "log-symbols": "^4.1.0",
- "minimatch": "^9.0.5",
- "ms": "^2.1.3",
- "picocolors": "^1.1.1",
- "serialize-javascript": "^6.0.2",
- "strip-json-comments": "^3.1.1",
- "supports-color": "^8.1.1",
- "workerpool": "^9.2.0",
- "yargs": "^17.7.2",
- "yargs-parser": "^21.1.1",
- "yargs-unparser": "^2.0.0"
- },
- "bin": {
- "_mocha": "bin/_mocha",
- "mocha": "bin/mocha.js"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/mocha/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/modify-values": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz",
- "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/mongodb": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.18.0.tgz",
- "integrity": "sha512-fO5ttN9VC8P0F5fqtQmclAkgXZxbIkYRTUi1j8JO6IYwvamkhtYDilJr35jOPELR49zqCJgXZWwCtW7B+TM8vQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@mongodb-js/saslprep": "^1.1.9",
- "bson": "^6.10.4",
- "mongodb-connection-string-url": "^3.0.0"
- },
- "engines": {
- "node": ">=16.20.1"
- },
- "peerDependencies": {
- "@aws-sdk/credential-providers": "^3.188.0",
- "@mongodb-js/zstd": "^1.1.0 || ^2.0.0",
- "gcp-metadata": "^5.2.0",
- "kerberos": "^2.0.1",
- "mongodb-client-encryption": ">=6.0.0 <7",
- "snappy": "^7.2.2",
- "socks": "^2.7.1"
- },
- "peerDependenciesMeta": {
- "@aws-sdk/credential-providers": {
- "optional": true
- },
- "@mongodb-js/zstd": {
- "optional": true
- },
- "gcp-metadata": {
- "optional": true
- },
- "kerberos": {
- "optional": true
- },
- "mongodb-client-encryption": {
- "optional": true
- },
- "snappy": {
- "optional": true
- },
- "socks": {
- "optional": true
- }
- }
- },
- "node_modules/mongodb-connection-string-url": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz",
- "integrity": "sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==",
- "dependencies": {
- "@types/whatwg-url": "^11.0.2",
- "whatwg-url": "^14.1.0 || ^13.0.0"
- }
- },
- "node_modules/mongodb-connection-string-url/node_modules/tr46": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
- "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
- "dependencies": {
- "punycode": "^2.3.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/mongodb-connection-string-url/node_modules/webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/mongodb-connection-string-url/node_modules/whatwg-url": {
- "version": "14.2.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
- "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
- "dependencies": {
- "tr46": "^5.1.0",
- "webidl-conversions": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/mongodb-memory-server": {
- "version": "10.1.4",
- "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-10.1.4.tgz",
- "integrity": "sha512-+oKQ/kc3CX+816oPFRtaF0CN4vNcGKNjpOQe4bHo/21A3pMD+lC7Xz1EX5HP7siCX4iCpVchDMmCOFXVQSGkUg==",
- "dev": true,
- "hasInstallScript": true,
- "dependencies": {
- "mongodb-memory-server-core": "10.1.4",
- "tslib": "^2.7.0"
- },
- "engines": {
- "node": ">=16.20.1"
- }
- },
- "node_modules/mongodb-memory-server-core": {
- "version": "10.1.4",
- "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-10.1.4.tgz",
- "integrity": "sha512-o8fgY7ZalEd8pGps43fFPr/hkQu1L8i6HFEGbsTfA2zDOW0TopgpswaBCqDr0qD7ptibyPfB5DmC+UlIxbThzA==",
- "dev": true,
- "dependencies": {
- "async-mutex": "^0.5.0",
- "camelcase": "^6.3.0",
- "debug": "^4.3.7",
- "find-cache-dir": "^3.3.2",
- "follow-redirects": "^1.15.9",
- "https-proxy-agent": "^7.0.5",
- "mongodb": "^6.9.0",
- "new-find-package-json": "^2.0.0",
- "semver": "^7.6.3",
- "tar-stream": "^3.1.7",
- "tslib": "^2.7.0",
- "yauzl": "^3.1.3"
- },
- "engines": {
- "node": ">=16.20.1"
- }
- },
- "node_modules/mongodb-memory-server-core/node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/mongodb-memory-server-core/node_modules/tar-stream": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
- "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
- "dev": true,
- "dependencies": {
- "b4a": "^1.6.4",
- "fast-fifo": "^1.2.0",
- "streamx": "^2.15.0"
- }
- },
- "node_modules/mrmime": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz",
- "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/mssql": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/mssql/-/mssql-11.0.1.tgz",
- "integrity": "sha512-KlGNsugoT90enKlR8/G36H0kTxPthDhmtNUCwEHvgRza5Cjpjoj+P2X6eMpFUDN7pFrJZsKadL4x990G8RBE1w==",
- "dev": true,
- "dependencies": {
- "@tediousjs/connection-string": "^0.5.0",
- "commander": "^11.0.0",
- "debug": "^4.3.3",
- "rfdc": "^1.3.0",
- "tarn": "^3.0.2",
- "tedious": "^18.2.1"
- },
- "bin": {
- "mssql": "bin/mssql"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/mssql/node_modules/commander": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
- "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
- "dev": true,
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/multimatch": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
- "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
- "dev": true,
- "dependencies": {
- "@types/minimatch": "^3.0.3",
- "array-differ": "^3.0.0",
- "array-union": "^2.1.0",
- "arrify": "^2.0.1",
- "minimatch": "^3.0.4"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/multimatch/node_modules/arrify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
- "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/multimatch/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/multimatch/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/mute-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz",
- "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/mysql": {
- "version": "2.18.1",
- "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz",
- "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==",
- "dev": true,
- "dependencies": {
- "bignumber.js": "9.0.0",
- "readable-stream": "2.3.7",
- "safe-buffer": "5.1.2",
- "sqlstring": "2.3.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mysql/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/mysql/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/mysql/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/napi-build-utils": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz",
- "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==",
- "dev": true
- },
- "node_modules/native-duplexpair": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/native-duplexpair/-/native-duplexpair-1.0.0.tgz",
- "integrity": "sha512-E7QQoM+3jvNtlmyfqRZ0/U75VFgCls+fSkbml2MpgWkWyz3ox8Y58gNhfuziuQYGNNQAbFZJQck55LHCnCK6CA==",
- "dev": true
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
- },
- "node_modules/negotiator": {
- "version": "0.6.4",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
- "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true
- },
- "node_modules/new-find-package-json": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/new-find-package-json/-/new-find-package-json-2.0.0.tgz",
- "integrity": "sha512-lDcBsjBSMlj3LXH2v/FW3txlh2pYTjmbOXPYJD93HI5EwuLzI11tdHSIpUMmfq/IOsldj4Ps8M8flhm+pCK4Ew==",
- "dev": true,
- "dependencies": {
- "debug": "^4.3.4"
- },
- "engines": {
- "node": ">=12.22.0"
- }
- },
- "node_modules/nice-try": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
- "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
- "dev": true
- },
- "node_modules/node-abi": {
- "version": "3.75.0",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz",
- "integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==",
- "dev": true,
- "dependencies": {
- "semver": "^7.3.5"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/node-addon-api": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
- "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
- "dev": true
- },
- "node_modules/node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "dev": true,
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-fetch-native": {
- "version": "1.6.6",
- "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.6.tgz",
- "integrity": "sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/node-gyp": {
- "version": "10.3.1",
- "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.3.1.tgz",
- "integrity": "sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==",
- "dev": true,
- "dependencies": {
- "env-paths": "^2.2.0",
- "exponential-backoff": "^3.1.1",
- "glob": "^10.3.10",
- "graceful-fs": "^4.2.6",
- "make-fetch-happen": "^13.0.0",
- "nopt": "^7.0.0",
- "proc-log": "^4.1.0",
- "semver": "^7.3.5",
- "tar": "^6.2.1",
- "which": "^4.0.0"
- },
- "bin": {
- "node-gyp": "bin/node-gyp.js"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/node-gyp/node_modules/isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
- "dev": true,
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/node-gyp/node_modules/which": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
- "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
- "dev": true,
- "dependencies": {
- "isexe": "^3.1.1"
- },
- "bin": {
- "node-which": "bin/which.js"
- },
- "engines": {
- "node": "^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/node-machine-id": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz",
- "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==",
- "dev": true
- },
- "node_modules/node-releases": {
- "version": "2.0.19",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
- "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
- "dev": true
- },
- "node_modules/nopt": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz",
- "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==",
- "dev": true,
- "dependencies": {
- "abbrev": "^2.0.0"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/normalize-package-data": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
- "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^7.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/normalize-url": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz",
- "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==",
- "dev": true,
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/normalize-wheel-es": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
- "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
- },
- "node_modules/npm-bundled": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz",
- "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==",
- "dev": true,
- "dependencies": {
- "npm-normalize-package-bin": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-check-updates": {
- "version": "16.14.20",
- "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.14.20.tgz",
- "integrity": "sha512-sYbIhun4DrjO7NFOTdvs11nCar0etEhZTsEjL47eM0TuiGMhmYughRCxG2SpGRmGAQ7AkwN7bw2lWzoE7q6yOQ==",
- "dev": true,
- "dependencies": {
- "@types/semver-utils": "^1.1.1",
- "chalk": "^5.3.0",
- "cli-table3": "^0.6.3",
- "commander": "^10.0.1",
- "fast-memoize": "^2.5.2",
- "find-up": "5.0.0",
- "fp-and-or": "^0.1.4",
- "get-stdin": "^8.0.0",
- "globby": "^11.0.4",
- "hosted-git-info": "^5.1.0",
- "ini": "^4.1.1",
- "js-yaml": "^4.1.0",
- "json-parse-helpfulerror": "^1.0.3",
- "jsonlines": "^0.1.1",
- "lodash": "^4.17.21",
- "make-fetch-happen": "^11.1.1",
- "minimatch": "^9.0.3",
- "p-map": "^4.0.0",
- "pacote": "15.2.0",
- "parse-github-url": "^1.0.2",
- "progress": "^2.0.3",
- "prompts-ncu": "^3.0.0",
- "rc-config-loader": "^4.1.3",
- "remote-git-tags": "^3.0.0",
- "rimraf": "^5.0.5",
- "semver": "^7.5.4",
- "semver-utils": "^1.1.4",
- "source-map-support": "^0.5.21",
- "spawn-please": "^2.0.2",
- "strip-ansi": "^7.1.0",
- "strip-json-comments": "^5.0.1",
- "untildify": "^4.0.0",
- "update-notifier": "^6.0.2"
- },
- "bin": {
- "ncu": "build/src/bin/cli.js",
- "npm-check-updates": "build/src/bin/cli.js"
- },
- "engines": {
- "node": ">=14.14"
- }
- },
- "node_modules/npm-check-updates/node_modules/@npmcli/git": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz",
- "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==",
- "dev": true,
- "dependencies": {
- "@npmcli/promise-spawn": "^6.0.0",
- "lru-cache": "^7.4.4",
- "npm-pick-manifest": "^8.0.0",
- "proc-log": "^3.0.0",
- "promise-inflight": "^1.0.1",
- "promise-retry": "^2.0.1",
- "semver": "^7.3.5",
- "which": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/@npmcli/promise-spawn": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz",
- "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==",
- "dev": true,
- "dependencies": {
- "which": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/@npmcli/run-script": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz",
- "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==",
- "dev": true,
- "dependencies": {
- "@npmcli/node-gyp": "^3.0.0",
- "@npmcli/promise-spawn": "^6.0.0",
- "node-gyp": "^9.0.0",
- "read-package-json-fast": "^3.0.0",
- "which": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/@sigstore/bundle": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.1.0.tgz",
- "integrity": "sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==",
- "dev": true,
- "dependencies": {
- "@sigstore/protobuf-specs": "^0.2.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/@sigstore/protobuf-specs": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz",
- "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==",
- "dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/@sigstore/sign": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-1.0.0.tgz",
- "integrity": "sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==",
- "dev": true,
- "dependencies": {
- "@sigstore/bundle": "^1.1.0",
- "@sigstore/protobuf-specs": "^0.2.0",
- "make-fetch-happen": "^11.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/@sigstore/tuf": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-1.0.3.tgz",
- "integrity": "sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==",
- "dev": true,
- "dependencies": {
- "@sigstore/protobuf-specs": "^0.2.0",
- "tuf-js": "^1.1.7"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/@tufjs/canonical-json": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz",
- "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==",
- "dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/@tufjs/models": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz",
- "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==",
- "dev": true,
- "dependencies": {
- "@tufjs/canonical-json": "1.0.0",
- "minimatch": "^9.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
- "dev": true
- },
- "node_modules/npm-check-updates/node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/ansi-regex": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/npm-check-updates/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/npm-check-updates/node_modules/cacache": {
- "version": "17.1.4",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz",
- "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==",
- "dev": true,
- "dependencies": {
- "@npmcli/fs": "^3.1.0",
- "fs-minipass": "^3.0.0",
- "glob": "^10.2.2",
- "lru-cache": "^7.7.1",
- "minipass": "^7.0.3",
- "minipass-collect": "^1.0.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "p-map": "^4.0.0",
- "ssri": "^10.0.0",
- "tar": "^6.1.11",
- "unique-filename": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
- "dev": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/npm-check-updates/node_modules/hosted-git-info": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz",
- "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^7.5.1"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/http-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
- "dev": true,
- "dependencies": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/npm-check-updates/node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/npm-check-updates/node_modules/ini": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz",
- "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==",
- "dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/lru-cache": {
- "version": "7.18.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
- "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/npm-check-updates/node_modules/make-fetch-happen": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz",
- "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==",
- "dev": true,
- "dependencies": {
- "agentkeepalive": "^4.2.1",
- "cacache": "^17.0.0",
- "http-cache-semantics": "^4.1.1",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.0",
- "is-lambda": "^1.0.1",
- "lru-cache": "^7.7.1",
- "minipass": "^5.0.0",
- "minipass-fetch": "^3.0.0",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "negotiator": "^0.6.3",
- "promise-retry": "^2.0.1",
- "socks-proxy-agent": "^7.0.0",
- "ssri": "^10.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/make-fetch-happen/node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm-check-updates/node_modules/minipass-collect": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
- "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/npm-check-updates/node_modules/minipass-collect/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm-check-updates/node_modules/node-gyp": {
- "version": "9.4.1",
- "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz",
- "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==",
- "dev": true,
- "dependencies": {
- "env-paths": "^2.2.0",
- "exponential-backoff": "^3.1.1",
- "glob": "^7.1.4",
- "graceful-fs": "^4.2.6",
- "make-fetch-happen": "^10.0.3",
- "nopt": "^6.0.0",
- "npmlog": "^6.0.0",
- "rimraf": "^3.0.2",
- "semver": "^7.3.5",
- "tar": "^6.1.2",
- "which": "^2.0.2"
- },
- "bin": {
- "node-gyp": "bin/node-gyp.js"
- },
- "engines": {
- "node": "^12.13 || ^14.13 || >=16"
- }
- },
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/@npmcli/fs": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz",
- "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==",
- "dev": true,
- "dependencies": {
- "@gar/promisify": "^1.1.3",
- "semver": "^7.3.5"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/cacache": {
- "version": "16.1.3",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz",
- "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==",
+ "node_modules/ast-v8-to-istanbul": {
+ "version": "0.3.12",
+ "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.12.tgz",
+ "integrity": "sha512-BRRC8VRZY2R4Z4lFIL35MwNXmwVqBityvOIwETtsCSwvjl0IdgFsy9NhdaA6j74nUdtJJlIypeRhpDam19Wq3g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@npmcli/fs": "^2.1.0",
- "@npmcli/move-file": "^2.0.0",
- "chownr": "^2.0.0",
- "fs-minipass": "^2.1.0",
- "glob": "^8.0.1",
- "infer-owner": "^1.0.4",
- "lru-cache": "^7.7.1",
- "minipass": "^3.1.6",
- "minipass-collect": "^1.0.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "mkdirp": "^1.0.4",
- "p-map": "^4.0.0",
- "promise-inflight": "^1.0.1",
- "rimraf": "^3.0.2",
- "ssri": "^9.0.0",
- "tar": "^6.1.11",
- "unique-filename": "^2.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ "@jridgewell/trace-mapping": "^0.3.31",
+ "estree-walker": "^3.0.3",
+ "js-tokens": "^10.0.0"
}
},
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "node_modules/async": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
+ "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
"dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
+ "license": "MIT"
},
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/cacache/node_modules/glob": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
- "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^5.0.1",
- "once": "^1.3.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
+ "license": "MIT"
},
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "node_modules/axios": {
+ "version": "1.13.6",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.6.tgz",
+ "integrity": "sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
+ "follow-redirects": "^1.15.11",
+ "form-data": "^4.0.5",
+ "proxy-from-env": "^1.1.0"
}
},
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
"dev": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 8"
+ "node": "18 || 20 || >=22"
}
},
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
},
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/make-fetch-happen": {
- "version": "10.2.1",
- "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz",
- "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==",
+ "node_modules/before-after-hook": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
+ "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==",
"dev": true,
- "dependencies": {
- "agentkeepalive": "^4.2.1",
- "cacache": "^16.1.0",
- "http-cache-semantics": "^4.1.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.0",
- "is-lambda": "^1.0.1",
- "lru-cache": "^7.7.1",
- "minipass": "^3.1.6",
- "minipass-collect": "^1.0.2",
- "minipass-fetch": "^2.0.3",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "negotiator": "^0.6.3",
- "promise-retry": "^2.0.1",
- "socks-proxy-agent": "^7.0.0",
- "ssri": "^9.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
+ "license": "Apache-2.0"
},
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/bin-links": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz",
+ "integrity": "sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "cmd-shim": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0",
+ "read-cmd-shim": "^4.0.0",
+ "write-file-atomic": "^5.0.0"
},
"engines": {
- "node": "*"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "license": "MIT",
"dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
}
},
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/minipass-fetch": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz",
- "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==",
+ "node_modules/brace-expansion": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
+ "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "minipass": "^3.1.6",
- "minipass-sized": "^1.0.3",
- "minizlib": "^2.1.2"
+ "balanced-match": "^4.0.2"
},
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- },
- "optionalDependencies": {
- "encoding": "^0.1.13"
+ "node": "18 || 20 || >=22"
}
},
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
+ "fill-range": "^7.1.1"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/ssri": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz",
- "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==",
- "dev": true,
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
"dependencies": {
- "minipass": "^3.1.1"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
}
},
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/unique-filename": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz",
- "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==",
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"dev": true,
- "dependencies": {
- "unique-slug": "^3.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
+ "license": "MIT"
},
- "node_modules/npm-check-updates/node_modules/node-gyp/node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "node_modules/byte-size": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-8.1.1.tgz",
+ "integrity": "sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==",
"dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 8"
+ "node": ">=12.17"
}
},
- "node_modules/npm-check-updates/node_modules/nopt": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz",
- "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==",
+ "node_modules/cac": {
+ "version": "6.7.14",
+ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
+ "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
"dev": true,
- "dependencies": {
- "abbrev": "^1.0.0"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
+ "license": "MIT",
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ "node": ">=8"
}
},
- "node_modules/npm-check-updates/node_modules/npm-package-arg": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz",
- "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==",
+ "node_modules/cacache": {
+ "version": "18.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz",
+ "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "hosted-git-info": "^6.0.0",
- "proc-log": "^3.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-name": "^5.0.0"
+ "@npmcli/fs": "^3.1.0",
+ "fs-minipass": "^3.0.0",
+ "glob": "^10.2.2",
+ "lru-cache": "^10.0.1",
+ "minipass": "^7.0.3",
+ "minipass-collect": "^2.0.1",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "p-map": "^4.0.0",
+ "ssri": "^10.0.0",
+ "tar": "^6.1.11",
+ "unique-filename": "^3.0.0"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/npm-check-updates/node_modules/npm-package-arg/node_modules/hosted-git-info": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.3.tgz",
- "integrity": "sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==",
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "lru-cache": "^7.5.1"
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">= 0.4"
}
},
- "node_modules/npm-check-updates/node_modules/npm-packlist": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz",
- "integrity": "sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==",
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
- "dependencies": {
- "ignore-walk": "^6.0.0"
- },
+ "license": "MIT",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=6"
}
},
- "node_modules/npm-check-updates/node_modules/npm-pick-manifest": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz",
- "integrity": "sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==",
+ "node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true,
- "dependencies": {
- "npm-install-checks": "^6.0.0",
- "npm-normalize-package-bin": "^3.0.0",
- "npm-package-arg": "^10.0.0",
- "semver": "^7.3.5"
- },
+ "license": "MIT",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=6"
}
},
- "node_modules/npm-check-updates/node_modules/npm-registry-fetch": {
- "version": "14.0.5",
- "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz",
- "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==",
+ "node_modules/camelcase-keys": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
+ "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "make-fetch-happen": "^11.0.0",
- "minipass": "^5.0.0",
- "minipass-fetch": "^3.0.0",
- "minipass-json-stream": "^1.0.1",
- "minizlib": "^2.1.2",
- "npm-package-arg": "^10.0.0",
- "proc-log": "^3.0.0"
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
},
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-check-updates/node_modules/npm-registry-fetch/node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "dev": true,
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/npm-check-updates/node_modules/pacote": {
- "version": "15.2.0",
- "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.2.0.tgz",
- "integrity": "sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==",
+ "node_modules/chai": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz",
+ "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@npmcli/git": "^4.0.0",
- "@npmcli/installed-package-contents": "^2.0.1",
- "@npmcli/promise-spawn": "^6.0.1",
- "@npmcli/run-script": "^6.0.0",
- "cacache": "^17.0.0",
- "fs-minipass": "^3.0.0",
- "minipass": "^5.0.0",
- "npm-package-arg": "^10.0.0",
- "npm-packlist": "^7.0.0",
- "npm-pick-manifest": "^8.0.0",
- "npm-registry-fetch": "^14.0.0",
- "proc-log": "^3.0.0",
- "promise-retry": "^2.0.1",
- "read-package-json": "^6.0.0",
- "read-package-json-fast": "^3.0.0",
- "sigstore": "^1.3.0",
- "ssri": "^10.0.0",
- "tar": "^6.1.11"
- },
- "bin": {
- "pacote": "lib/bin.js"
+ "assertion-error": "^2.0.1",
+ "check-error": "^2.1.1",
+ "deep-eql": "^5.0.1",
+ "loupe": "^3.1.0",
+ "pathval": "^2.0.0"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=18"
}
},
- "node_modules/npm-check-updates/node_modules/pacote/node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "dev": true,
+ "node_modules/chalk": {
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
+ "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/npm-check-updates/node_modules/proc-log": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz",
- "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==",
+ "node_modules/chardet": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz",
+ "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==",
+ "license": "MIT"
+ },
+ "node_modules/check-error": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz",
+ "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">= 16"
}
},
- "node_modules/npm-check-updates/node_modules/rimraf": {
- "version": "5.0.10",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz",
- "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==",
+ "node_modules/chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
"dev": true,
- "dependencies": {
- "glob": "^10.3.7"
- },
- "bin": {
- "rimraf": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/npm-check-updates/node_modules/sigstore": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.9.0.tgz",
- "integrity": "sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==",
+ "node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
"dev": true,
- "dependencies": {
- "@sigstore/bundle": "^1.1.0",
- "@sigstore/protobuf-specs": "^0.2.0",
- "@sigstore/sign": "^1.0.0",
- "@sigstore/tuf": "^1.0.3",
- "make-fetch-happen": "^11.0.1"
- },
- "bin": {
- "sigstore": "bin/sigstore.js"
- },
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=8"
}
},
- "node_modules/npm-check-updates/node_modules/socks-proxy-agent": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz",
- "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==",
+ "node_modules/clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
"dev": true,
- "dependencies": {
- "agent-base": "^6.0.2",
- "debug": "^4.3.3",
- "socks": "^2.6.2"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 10"
+ "node": ">=6"
}
},
- "node_modules/npm-check-updates/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
+ "node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "license": "MIT",
"dependencies": {
- "ansi-regex": "^6.0.1"
+ "restore-cursor": "^3.1.0"
},
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ "node": ">=8"
}
},
- "node_modules/npm-check-updates/node_modules/strip-json-comments": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz",
- "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==",
- "dev": true,
+ "node_modules/cli-spinners": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz",
+ "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==",
+ "license": "MIT",
"engines": {
- "node": ">=14.16"
+ "node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/npm-check-updates/node_modules/tuf-js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.7.tgz",
- "integrity": "sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==",
- "dev": true,
- "dependencies": {
- "@tufjs/models": "1.0.4",
- "debug": "^4.3.4",
- "make-fetch-happen": "^11.1.1"
- },
+ "node_modules/cli-width": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz",
+ "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
+ "license": "ISC",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">= 12"
}
},
- "node_modules/npm-check-updates/node_modules/unique-slug": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz",
- "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==",
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "imurmurhash": "^0.1.4"
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
},
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ "node": ">=12"
}
},
- "node_modules/npm-check-updates/node_modules/which": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz",
- "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==",
+ "node_modules/cliui/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/which.js"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/npm-install-checks": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz",
- "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==",
+ "node_modules/cliui/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "semver": "^7.1.1"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/npm-normalize-package-bin": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz",
- "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==",
- "dev": true,
+ "node_modules/clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+ "license": "MIT",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=0.8"
}
},
- "node_modules/npm-package-arg": {
- "version": "11.0.2",
- "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz",
- "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==",
+ "node_modules/clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "hosted-git-info": "^7.0.0",
- "proc-log": "^4.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-name": "^5.0.0"
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": ">=6"
}
},
- "node_modules/npm-packlist": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz",
- "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==",
+ "node_modules/cmd-shim": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz",
+ "integrity": "sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==",
"dev": true,
- "dependencies": {
- "ignore-walk": "^6.0.4"
- },
+ "license": "ISC",
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/npm-pick-manifest": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz",
- "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==",
- "dev": true,
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
"dependencies": {
- "npm-install-checks": "^6.0.0",
- "npm-normalize-package-bin": "^3.0.0",
- "npm-package-arg": "^11.0.0",
- "semver": "^7.3.5"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": ">=7.0.0"
}
},
- "node_modules/npm-registry-fetch": {
- "version": "17.1.0",
- "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz",
- "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==",
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT"
+ },
+ "node_modules/color-support": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
"dev": true,
- "dependencies": {
- "@npmcli/redact": "^2.0.0",
- "jsonparse": "^1.3.1",
- "make-fetch-happen": "^13.0.0",
- "minipass": "^7.0.2",
- "minipass-fetch": "^3.0.0",
- "minizlib": "^2.1.2",
- "npm-package-arg": "^11.0.0",
- "proc-log": "^4.0.0"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "license": "ISC",
+ "bin": {
+ "color-support": "bin.js"
}
},
- "node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "node_modules/columnify": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz",
+ "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "path-key": "^3.0.0"
+ "strip-ansi": "^6.0.1",
+ "wcwidth": "^1.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=8.0.0"
}
},
- "node_modules/npmlog": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz",
- "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==",
- "deprecated": "This package is no longer supported.",
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "are-we-there-yet": "^3.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^4.0.3",
- "set-blocking": "^2.0.0"
+ "delayed-stream": "~1.0.0"
},
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ "node": ">= 0.8"
}
},
- "node_modules/nx": {
- "version": "20.8.1",
- "resolved": "https://registry.npmjs.org/nx/-/nx-20.8.1.tgz",
- "integrity": "sha512-73Uw8YXpsjeLqHSl7NMCmGdCs+8ynPzoNJFWAqVanPETEY9zPd5wevVQmeyzYtNNQU35uj6Os4iUzYunmwnFaA==",
- "dev": true,
- "hasInstallScript": true,
- "dependencies": {
- "@napi-rs/wasm-runtime": "0.2.4",
- "@yarnpkg/lockfile": "^1.1.0",
- "@yarnpkg/parsers": "3.0.2",
- "@zkochan/js-yaml": "0.0.7",
- "axios": "^1.8.3",
- "chalk": "^4.1.0",
- "cli-cursor": "3.1.0",
- "cli-spinners": "2.6.1",
- "cliui": "^8.0.1",
- "dotenv": "~16.4.5",
- "dotenv-expand": "~11.0.6",
- "enquirer": "~2.3.6",
- "figures": "3.2.0",
- "flat": "^5.0.2",
- "front-matter": "^4.0.2",
- "ignore": "^5.0.4",
- "jest-diff": "^29.4.1",
- "jsonc-parser": "3.2.0",
- "lines-and-columns": "2.0.3",
- "minimatch": "9.0.3",
- "node-machine-id": "1.1.12",
- "npm-run-path": "^4.0.1",
- "open": "^8.4.0",
- "ora": "5.3.0",
- "resolve.exports": "2.0.3",
- "semver": "^7.5.3",
- "string-width": "^4.2.3",
- "tar-stream": "~2.2.0",
- "tmp": "~0.2.1",
- "tsconfig-paths": "^4.1.2",
- "tslib": "^2.3.0",
- "yaml": "^2.6.0",
- "yargs": "^17.6.2",
- "yargs-parser": "21.1.1"
- },
- "bin": {
- "nx": "bin/nx.js",
- "nx-cloud": "bin/nx-cloud.js"
- },
- "optionalDependencies": {
- "@nx/nx-darwin-arm64": "20.8.1",
- "@nx/nx-darwin-x64": "20.8.1",
- "@nx/nx-freebsd-x64": "20.8.1",
- "@nx/nx-linux-arm-gnueabihf": "20.8.1",
- "@nx/nx-linux-arm64-gnu": "20.8.1",
- "@nx/nx-linux-arm64-musl": "20.8.1",
- "@nx/nx-linux-x64-gnu": "20.8.1",
- "@nx/nx-linux-x64-musl": "20.8.1",
- "@nx/nx-win32-arm64-msvc": "20.8.1",
- "@nx/nx-win32-x64-msvc": "20.8.1"
- },
- "peerDependencies": {
- "@swc-node/register": "^1.8.0",
- "@swc/core": "^1.3.85"
- },
- "peerDependenciesMeta": {
- "@swc-node/register": {
- "optional": true
- },
- "@swc/core": {
- "optional": true
- }
+ "node_modules/commander": {
+ "version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
+ "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/common-ancestor-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz",
+ "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/compare-func": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz",
+ "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-ify": "^1.0.0",
+ "dot-prop": "^5.1.0"
}
},
- "node_modules/nx/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
"dev": true,
+ "engines": [
+ "node >= 6.0"
+ ],
+ "license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.0.2",
+ "typedarray": "^0.0.6"
}
},
- "node_modules/nx/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/conventional-changelog-angular": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz",
+ "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "compare-func": "^2.0.0"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": ">=16"
}
},
- "node_modules/nx/node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "node_modules/conventional-changelog-core": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.1.tgz",
+ "integrity": "sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "add-stream": "^1.0.0",
+ "conventional-changelog-writer": "^6.0.0",
+ "conventional-commits-parser": "^4.0.0",
+ "dateformat": "^3.0.3",
+ "get-pkg-repo": "^4.2.1",
+ "git-raw-commits": "^3.0.0",
+ "git-remote-origin-url": "^2.0.0",
+ "git-semver-tags": "^5.0.0",
+ "normalize-package-data": "^3.0.3",
+ "read-pkg": "^3.0.0",
+ "read-pkg-up": "^3.0.0"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": ">=14"
}
},
- "node_modules/nx/node_modules/ora": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz",
- "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==",
+ "node_modules/conventional-changelog-core/node_modules/hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "bl": "^4.0.3",
- "chalk": "^4.1.0",
- "cli-cursor": "^3.1.0",
- "cli-spinners": "^2.5.0",
- "is-interactive": "^1.0.0",
- "log-symbols": "^4.0.0",
- "strip-ansi": "^6.0.0",
- "wcwidth": "^1.0.1"
+ "lru-cache": "^6.0.0"
},
"engines": {
"node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/nx/node_modules/tmp": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
- "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
+ "node_modules/conventional-changelog-core/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
"engines": {
- "node": ">=14.14"
- }
- },
- "node_modules/oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
}
},
- "node_modules/object-inspect": {
- "version": "1.13.4",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
- "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
- "engines": {
- "node": ">= 0.4"
+ "node_modules/conventional-changelog-core/node_modules/normalize-package-data": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
+ "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "node_modules/conventional-changelog-preset-loader": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz",
+ "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
+ "node": ">=14"
}
},
- "node_modules/object.assign": {
- "version": "4.1.7",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
- "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
+ "node_modules/conventional-changelog-writer": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz",
+ "integrity": "sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0",
- "has-symbols": "^1.1.0",
- "object-keys": "^1.1.1"
+ "conventional-commits-filter": "^3.0.0",
+ "dateformat": "^3.0.3",
+ "handlebars": "^4.7.7",
+ "json-stringify-safe": "^5.0.1",
+ "meow": "^8.1.2",
+ "semver": "^7.0.0",
+ "split": "^1.0.1"
},
- "engines": {
- "node": ">= 0.4"
+ "bin": {
+ "conventional-changelog-writer": "cli.js"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=14"
}
},
- "node_modules/obuf": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
- "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
- "dev": true
- },
- "node_modules/ofetch": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz",
- "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==",
+ "node_modules/conventional-commits-filter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz",
+ "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "destr": "^2.0.3",
- "node-fetch-native": "^1.6.4",
- "ufo": "^1.5.4"
+ "lodash.ismatch": "^4.4.0",
+ "modify-values": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=14"
}
},
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "node_modules/conventional-commits-parser": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz",
+ "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "ee-first": "1.1.1"
+ "is-text-path": "^1.0.1",
+ "JSONStream": "^1.3.5",
+ "meow": "^8.1.2",
+ "split2": "^3.2.2"
+ },
+ "bin": {
+ "conventional-commits-parser": "cli.js"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">=14"
}
},
- "node_modules/on-headers": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
- "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
+ "node_modules/conventional-recommended-bump": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz",
+ "integrity": "sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==",
+ "dev": true,
"license": "MIT",
+ "dependencies": {
+ "concat-stream": "^2.0.0",
+ "conventional-changelog-preset-loader": "^3.0.0",
+ "conventional-commits-filter": "^3.0.0",
+ "conventional-commits-parser": "^4.0.0",
+ "git-raw-commits": "^3.0.0",
+ "git-semver-tags": "^5.0.0",
+ "meow": "^8.1.2"
+ },
+ "bin": {
+ "conventional-recommended-bump": "cli.js"
+ },
"engines": {
- "node": ">= 0.8"
+ "node": ">=14"
}
},
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dependencies": {
- "wrappy": "1"
- }
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cosmiconfig": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
+ "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "mimic-fn": "^2.1.0"
+ "env-paths": "^2.2.1",
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=14"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/oniguruma-parser": {
- "version": "0.12.1",
- "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz",
- "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==",
- "license": "MIT"
- },
- "node_modules/oniguruma-to-es": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.3.tgz",
- "integrity": "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==",
- "license": "MIT",
- "dependencies": {
- "oniguruma-parser": "^0.12.1",
- "regex": "^6.0.1",
- "regex-recursion": "^6.0.2"
- }
+ "node_modules/create-feathers": {
+ "resolved": "packages/create-feathers",
+ "link": true
},
- "node_modules/open": {
- "version": "8.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
- "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "define-lazy-prop": "^2.0.0",
- "is-docker": "^2.1.1",
- "is-wsl": "^2.2.0"
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
},
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 8"
}
},
- "node_modules/optionator": {
- "version": "0.9.4",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
- "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
"dev": true,
- "dependencies": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.5"
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=4"
}
},
- "node_modules/ora": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
- "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
- "dependencies": {
- "bl": "^4.1.0",
- "chalk": "^4.1.0",
- "cli-cursor": "^3.1.0",
- "cli-spinners": "^2.5.0",
- "is-interactive": "^1.0.0",
- "is-unicode-supported": "^0.1.0",
- "log-symbols": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "wcwidth": "^1.0.1"
- },
+ "node_modules/dargs": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz",
+ "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
- "node_modules/ora/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
+ "node_modules/dateformat": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
+ "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": "*"
}
},
- "node_modules/ora/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "ms": "^2.1.3"
},
"engines": {
- "node": ">=10"
+ "node": ">=6.0"
},
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
- "node_modules/os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/own-keys": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
- "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
+ "node_modules/decamelize-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.2.6",
- "object-keys": "^1.1.1",
- "safe-push-apply": "^1.0.0"
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=0.10.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/p-cancelable": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
- "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
- "dev": true,
- "engines": {
- "node": ">=12.20"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
+ "node_modules/decamelize-keys/node_modules/map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "node_modules/dedent": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz",
+ "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==",
"dev": true,
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
+ "license": "MIT",
+ "peerDependencies": {
+ "babel-plugin-macros": "^3.1.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "peerDependenciesMeta": {
+ "babel-plugin-macros": {
+ "optional": true
+ }
}
},
- "node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "node_modules/deep-eql": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
+ "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
"dev": true,
- "dependencies": {
- "p-limit": "^3.0.2"
- },
+ "license": "MIT",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=6"
}
},
- "node_modules/p-map": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/defaults": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+ "license": "MIT",
"dependencies": {
- "aggregate-error": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
+ "clone": "^1.0.2"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/p-map-series": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz",
- "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==",
+ "node_modules/define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/p-pipe": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz",
- "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==",
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=0.4.0"
}
},
- "node_modules/p-queue": {
- "version": "6.6.2",
- "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz",
- "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==",
+ "node_modules/deprecation": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
+ "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/detect-indent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz",
+ "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==",
"dev": true,
- "dependencies": {
- "eventemitter3": "^4.0.4",
- "p-timeout": "^3.2.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=4"
}
},
- "node_modules/p-reduce": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz",
- "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==",
+ "node_modules/diff-sequences": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/p-timeout": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
- "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
+ "node_modules/dot-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "p-finally": "^1.0.0"
+ "is-obj": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "node_modules/dotenv": {
+ "version": "16.4.7",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
+ "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
- "node": ">=6"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
}
},
- "node_modules/p-waterfall": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz",
- "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==",
+ "node_modules/dotenv-expand": {
+ "version": "11.0.7",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz",
+ "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "p-reduce": "^2.0.0"
+ "dotenv": "^16.4.5"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://dotenvx.com"
}
},
- "node_modules/package-json": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz",
- "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==",
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "got": "^12.1.0",
- "registry-auth-token": "^5.0.1",
- "registry-url": "^6.0.0",
- "semver": "^7.3.7"
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
},
"engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 0.4"
}
},
- "node_modules/package-json-from-dist": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
- "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
- "dev": true
- },
- "node_modules/package-manager-detector": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.3.0.tgz",
- "integrity": "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==",
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
"dev": true,
"license": "MIT"
},
- "node_modules/pacote": {
- "version": "18.0.6",
- "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz",
- "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==",
+ "node_modules/ejs": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
+ "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@npmcli/git": "^5.0.0",
- "@npmcli/installed-package-contents": "^2.0.1",
- "@npmcli/package-json": "^5.1.0",
- "@npmcli/promise-spawn": "^7.0.0",
- "@npmcli/run-script": "^8.0.0",
- "cacache": "^18.0.0",
- "fs-minipass": "^3.0.0",
- "minipass": "^7.0.2",
- "npm-package-arg": "^11.0.0",
- "npm-packlist": "^8.0.0",
- "npm-pick-manifest": "^9.0.0",
- "npm-registry-fetch": "^17.0.0",
- "proc-log": "^4.0.0",
- "promise-retry": "^2.0.1",
- "sigstore": "^2.2.0",
- "ssri": "^10.0.0",
- "tar": "^6.1.11"
+ "jake": "^10.8.5"
},
"bin": {
- "pacote": "bin/index.js"
+ "ejs": "bin/cli.js"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/encoding": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "iconv-lite": "^0.6.2"
+ }
+ },
+ "node_modules/encoding/node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "callsites": "^3.0.0"
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/parse-conflict-json": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz",
- "integrity": "sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==",
+ "node_modules/end-of-stream": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
+ "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "json-parse-even-better-errors": "^3.0.0",
- "just-diff": "^6.0.0",
- "just-diff-apply": "^5.2.0"
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enquirer": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-colors": "^4.1.1"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=8.6"
}
},
- "node_modules/parse-github-url": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.3.tgz",
- "integrity": "sha512-tfalY5/4SqGaV/GIGzWyHnFjlpTPTNpENR9Ea2lLldSJ8EWXMsvacWucqY3m3I4YPtas15IxTLQVQ5NSYXPrww==",
+ "node_modules/env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
"dev": true,
- "bin": {
- "parse-github-url": "cli.js"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.10"
+ "node": ">=6"
}
},
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "node_modules/envinfo": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz",
+ "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==",
"dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
+ "license": "MIT",
+ "bin": {
+ "envinfo": "dist/cli.js"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=4"
}
},
- "node_modules/parse-json/node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "node_modules/parse-json/node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
+ "node_modules/err-code": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
+ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/parse-path": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.1.0.tgz",
- "integrity": "sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==",
+ "node_modules/error-ex": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
+ "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "protocols": "^2.0.0"
+ "is-arrayish": "^0.2.1"
}
},
- "node_modules/parse-url": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz",
- "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==",
+ "node_modules/es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"dev": true,
- "dependencies": {
- "parse-path": "^7.0.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
}
},
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "node_modules/es-module-lexer": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
+ "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
"engines": {
- "node": ">= 0.8"
+ "node": ">= 0.4"
}
},
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "node_modules/es-set-tostringtag": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
}
},
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "node_modules/esbuild": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz",
+ "integrity": "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.27.4",
+ "@esbuild/android-arm": "0.27.4",
+ "@esbuild/android-arm64": "0.27.4",
+ "@esbuild/android-x64": "0.27.4",
+ "@esbuild/darwin-arm64": "0.27.4",
+ "@esbuild/darwin-x64": "0.27.4",
+ "@esbuild/freebsd-arm64": "0.27.4",
+ "@esbuild/freebsd-x64": "0.27.4",
+ "@esbuild/linux-arm": "0.27.4",
+ "@esbuild/linux-arm64": "0.27.4",
+ "@esbuild/linux-ia32": "0.27.4",
+ "@esbuild/linux-loong64": "0.27.4",
+ "@esbuild/linux-mips64el": "0.27.4",
+ "@esbuild/linux-ppc64": "0.27.4",
+ "@esbuild/linux-riscv64": "0.27.4",
+ "@esbuild/linux-s390x": "0.27.4",
+ "@esbuild/linux-x64": "0.27.4",
+ "@esbuild/netbsd-arm64": "0.27.4",
+ "@esbuild/netbsd-x64": "0.27.4",
+ "@esbuild/openbsd-arm64": "0.27.4",
+ "@esbuild/openbsd-x64": "0.27.4",
+ "@esbuild/openharmony-arm64": "0.27.4",
+ "@esbuild/sunos-x64": "0.27.4",
+ "@esbuild/win32-arm64": "0.27.4",
+ "@esbuild/win32-ia32": "0.27.4",
+ "@esbuild/win32-x64": "0.27.4"
}
},
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=6"
}
},
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "node_modules/path-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "node_modules/eslint": {
+ "version": "9.39.4",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz",
+ "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ "@eslint-community/eslint-utils": "^4.8.0",
+ "@eslint-community/regexpp": "^4.12.1",
+ "@eslint/config-array": "^0.21.2",
+ "@eslint/config-helpers": "^0.4.2",
+ "@eslint/core": "^0.17.0",
+ "@eslint/eslintrc": "^3.3.5",
+ "@eslint/js": "9.39.4",
+ "@eslint/plugin-kit": "^0.4.1",
+ "@humanfs/node": "^0.16.6",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@humanwhocodes/retry": "^0.4.2",
+ "@types/estree": "^1.0.6",
+ "ajv": "^6.14.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.6",
+ "debug": "^4.3.2",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^8.4.0",
+ "eslint-visitor-keys": "^4.2.1",
+ "espree": "^10.4.0",
+ "esquery": "^1.5.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^8.0.0",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.5",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
},
"engines": {
- "node": ">=16 || 14 >=14.18"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://eslint.org/donate"
+ },
+ "peerDependencies": {
+ "jiti": "*"
+ },
+ "peerDependenciesMeta": {
+ "jiti": {
+ "optional": true
+ }
}
},
- "node_modules/path-to-regexp": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
- "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="
- },
- "node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "node_modules/eslint-config-prettier": {
+ "version": "10.1.8",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz",
+ "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "license": "MIT",
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint-config-prettier"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
}
},
- "node_modules/pathe": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
- "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
- "dev": true
- },
- "node_modules/pend": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
- "dev": true
- },
- "node_modules/perfect-debounce": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz",
- "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==",
- "dev": true
- },
- "node_modules/pg": {
- "version": "8.16.3",
- "resolved": "https://registry.npmjs.org/pg/-/pg-8.16.3.tgz",
- "integrity": "sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==",
+ "node_modules/eslint-plugin-prettier": {
+ "version": "5.5.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz",
+ "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "pg-connection-string": "^2.9.1",
- "pg-pool": "^3.10.1",
- "pg-protocol": "^1.10.3",
- "pg-types": "2.2.0",
- "pgpass": "1.0.5"
+ "prettier-linter-helpers": "^1.0.1",
+ "synckit": "^0.11.12"
},
"engines": {
- "node": ">= 16.0.0"
+ "node": "^14.18.0 || >=16.0.0"
},
- "optionalDependencies": {
- "pg-cloudflare": "^1.2.7"
+ "funding": {
+ "url": "https://opencollective.com/eslint-plugin-prettier"
},
"peerDependencies": {
- "pg-native": ">=3.0.1"
+ "@types/eslint": ">=8.0.0",
+ "eslint": ">=8.0.0",
+ "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0",
+ "prettier": ">=3.0.0"
},
"peerDependenciesMeta": {
- "pg-native": {
+ "@types/eslint": {
+ "optional": true
+ },
+ "eslint-config-prettier": {
"optional": true
}
}
},
- "node_modules/pg-cloudflare": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.2.7.tgz",
- "integrity": "sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==",
+ "node_modules/eslint-scope": {
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
+ "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
"dev": true,
- "license": "MIT",
- "optional": true
- },
- "node_modules/pg-connection-string": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz",
- "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==",
- "dev": true
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
},
- "node_modules/pg-int8": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
- "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
- "node": ">=4.0.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/pg-pool": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.10.1.tgz",
- "integrity": "sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==",
+ "node_modules/eslint/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"license": "MIT",
- "peerDependencies": {
- "pg": ">=8.0"
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/pg-protocol": {
- "version": "1.10.3",
- "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.10.3.tgz",
- "integrity": "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==",
+ "node_modules/eslint/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true,
"license": "MIT"
},
- "node_modules/pg-types": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
- "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
+ "node_modules/eslint/node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/eslint/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "pg-int8": "1.0.1",
- "postgres-array": "~2.0.0",
- "postgres-bytea": "~1.0.0",
- "postgres-date": "~1.0.4",
- "postgres-interval": "^1.1.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/pg/node_modules/pg-connection-string": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.9.1.tgz",
- "integrity": "sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==",
+ "node_modules/eslint/node_modules/eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
"dev": true,
- "license": "MIT"
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
},
- "node_modules/pgpass": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz",
- "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==",
+ "node_modules/eslint/node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
- "dependencies": {
- "split2": "^4.1.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
}
},
- "node_modules/pgpass/node_modules/split2": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
- "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+ "node_modules/eslint/node_modules/minimatch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
"engines": {
- "node": ">= 10.x"
+ "node": "*"
}
},
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "node_modules/espree": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
+ "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
"dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "acorn": "^8.15.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^4.2.1"
+ },
"engines": {
- "node": ">=8.6"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/pify": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz",
- "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==",
+ "node_modules/espree/node_modules/eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
- "node": ">=10"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "node_modules/esquery": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",
+ "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "find-up": "^4.0.0"
+ "estraverse": "^5.1.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=0.10"
}
},
- "node_modules/pkg-dir/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
+ "estraverse": "^5.2.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=4.0"
}
},
- "node_modules/pkg-dir/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "p-locate": "^4.1.0"
- },
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/pkg-dir/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/execa": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz",
+ "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "p-try": "^2.0.0"
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
- "node_modules/pkg-dir/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "node_modules/expect-type": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz",
+ "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==",
"dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
+ "license": "Apache-2.0",
"engines": {
- "node": ">=8"
+ "node": ">=12.0.0"
}
},
- "node_modules/pkg-types": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz",
- "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==",
+ "node_modules/exponential-backoff": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz",
+ "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==",
"dev": true,
- "dependencies": {
- "confbox": "^0.2.1",
- "exsolve": "^1.0.1",
- "pathe": "^2.0.3"
- }
+ "license": "Apache-2.0"
},
- "node_modules/possible-typed-array-names": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
- "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"dev": true,
- "engines": {
- "node": ">= 0.4"
- }
+ "license": "MIT"
},
- "node_modules/postcss": {
- "version": "8.5.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
- "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
+ "node_modules/fast-diff": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
+ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "nanoid": "^3.3.11",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
},
"engines": {
- "node": "^10 || ^12 || >=14"
+ "node": ">=8.6.0"
}
},
- "node_modules/postcss-selector-parser": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
- "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
+ "is-glob": "^4.0.1"
},
"engines": {
- "node": ">=4"
+ "node": ">= 6"
}
},
- "node_modules/postgres-array": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
- "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
"dev": true,
- "engines": {
- "node": ">=4"
- }
+ "license": "MIT"
},
- "node_modules/postgres-bytea": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
- "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==",
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
"dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
+ "license": "MIT"
},
- "node_modules/postgres-date": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
- "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
+ "node_modules/fastq": {
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
+ "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
"dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
}
},
- "node_modules/postgres-interval": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
- "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
+ "node_modules/feathers": {
+ "resolved": "packages/feathers",
+ "link": true
+ },
+ "node_modules/figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "xtend": "^4.0.0"
+ "escape-string-regexp": "^1.0.5"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/preact": {
- "version": "10.26.5",
- "resolved": "https://registry.npmjs.org/preact/-/preact-10.26.5.tgz",
- "integrity": "sha512-fmpDkgfGU6JYux9teDWLhj9mKN55tyepwYbxHgQuIxbWQzgFg5vk7Mrrtfx7xRxq798ynkY4DDDxZr235Kk+4w==",
+ "node_modules/figures/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/preact"
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
}
},
- "node_modules/prebuild-install": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz",
- "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==",
- "dev": true,
- "dependencies": {
- "detect-libc": "^2.0.0",
- "expand-template": "^2.0.3",
- "github-from-package": "0.0.0",
- "minimist": "^1.2.3",
- "mkdirp-classic": "^0.5.3",
- "napi-build-utils": "^2.0.0",
- "node-abi": "^3.3.0",
- "pump": "^3.0.0",
- "rc": "^1.2.7",
- "simple-get": "^4.0.0",
- "tar-fs": "^2.0.0",
- "tunnel-agent": "^0.6.0"
- },
- "bin": {
- "prebuild-install": "bin.js"
+ "node_modules/file-entry-cache": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
+ "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flat-cache": "^4.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=16.0.0"
}
},
- "node_modules/prebuild-install/node_modules/detect-libc": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
- "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
+ "node_modules/filelist": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz",
+ "integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "minimatch": "^5.0.1"
}
},
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "node_modules/filelist/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
+ "license": "MIT"
},
- "node_modules/prettier": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
- "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
- "license": "MIT",
- "bin": {
- "prettier": "bin/prettier.cjs"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
+ "node_modules/filelist/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/prettier-linter-helpers": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
- "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "node_modules/filelist/node_modules/minimatch": {
+ "version": "5.1.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz",
+ "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "fast-diff": "^1.1.2"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=10"
}
},
- "node_modules/pretty-bytes": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz",
- "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==",
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
- "engines": {
- "node": "^14.13.1 || >=16.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/pretty-format": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
- "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jest/schemas": "^29.6.3",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/proc-log": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
- "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==",
+ "node_modules/flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
"dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "license": "BSD-3-Clause",
+ "bin": {
+ "flat": "cli.js"
}
},
- "node_modules/process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "node_modules/flat-cache": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
+ "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.4"
+ },
"engines": {
- "node": ">= 0.6.0"
+ "node": ">=16"
}
},
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "dev": true
- },
- "node_modules/proggy": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/proggy/-/proggy-2.0.0.tgz",
- "integrity": "sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==",
+ "node_modules/flatted": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz",
+ "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==",
"dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
+ "license": "ISC"
},
- "node_modules/progress": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "node_modules/follow-redirects": {
+ "version": "1.15.11",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
+ "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
"dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": ">=0.4.0"
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
}
},
- "node_modules/promise-all-reject-late": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz",
- "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==",
+ "node_modules/foreground-child": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
"dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.6",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/promise-call-limit": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-3.0.2.tgz",
- "integrity": "sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==",
+ "node_modules/foreground-child/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/promise-inflight": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
- "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
- "dev": true
- },
- "node_modules/promise-retry": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
- "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
+ "node_modules/form-data": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "err-code": "^2.0.2",
- "retry": "^0.12.0"
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "hasown": "^2.0.2",
+ "mime-types": "^2.1.12"
},
"engines": {
- "node": ">=10"
+ "node": ">= 6"
}
},
- "node_modules/prompts-ncu": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/prompts-ncu/-/prompts-ncu-3.0.2.tgz",
- "integrity": "sha512-BthHeqP0vwvZPk3ZmqZXhssNabxM60aBCbg/gQdxF8bQW/dy6ZGQpS8SG10bUQTMy5HKh34iI0g0TstCRZyjag==",
+ "node_modules/front-matter": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz",
+ "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "kleur": "^4.0.1",
- "sisteransi": "^1.0.5"
- },
- "engines": {
- "node": ">= 14"
+ "js-yaml": "^3.13.1"
}
},
- "node_modules/promzard": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/promzard/-/promzard-1.0.2.tgz",
- "integrity": "sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==",
+ "node_modules/front-matter/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "read": "^3.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "sprintf-js": "~1.0.2"
}
},
- "node_modules/property-information": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz",
- "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
+ "node_modules/front-matter/node_modules/js-yaml": {
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/proto-list": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
- "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
- "dev": true
- },
- "node_modules/protocols": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.2.tgz",
- "integrity": "sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==",
- "dev": true
+ "node_modules/fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "node_modules/fs-extra": {
+ "version": "11.3.4",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz",
+ "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">=14.14"
}
},
- "node_modules/proxy-from-env": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
- },
- "node_modules/pump": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
- "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
+ "node_modules/fs-minipass": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz",
+ "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=6"
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
- "node_modules/punycode.js": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
- "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"dev": true,
- "engines": {
- "node": ">=6"
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/pupa": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz",
- "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==",
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true,
- "dependencies": {
- "escape-goat": "^4.0.0"
- },
+ "license": "ISC",
"engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": "6.* || 8.* || >= 10.*"
}
},
- "node_modules/qs": {
- "version": "6.14.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
- "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==",
+ "node_modules/get-intrinsic": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "side-channel": "^1.1.0"
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "function-bind": "^1.1.2",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
},
"engines": {
- "node": ">=0.6"
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/quansync": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz",
- "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==",
+ "node_modules/get-pkg-repo": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz",
+ "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==",
"dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/antfu"
- },
- {
- "type": "individual",
- "url": "https://github.com/sponsors/sxzz"
- }
- ]
- },
- "node_modules/query-string": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-9.2.2.tgz",
- "integrity": "sha512-pDSIZJ9sFuOp6VnD+5IkakSVf+rICAuuU88Hcsr6AKL0QtxSIfVuKiVP2oahFI7tk3CRSexwV+Ya6MOoTxzg9g==",
"license": "MIT",
"dependencies": {
- "decode-uri-component": "^0.4.1",
- "filter-obj": "^5.1.0",
- "split-on-first": "^3.0.0"
+ "@hutson/parse-repository-url": "^3.0.0",
+ "hosted-git-info": "^4.0.0",
+ "through2": "^2.0.0",
+ "yargs": "^16.2.0"
},
- "engines": {
- "node": ">=18"
+ "bin": {
+ "get-pkg-repo": "src/cli.js"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/quick-lru": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
- "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "node_modules/get-pkg-repo/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "node_modules/get-pkg-repo/node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
}
},
- "node_modules/raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "node_modules/get-pkg-repo/node_modules/hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
+ "lru-cache": "^6.0.0"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">=10"
}
},
- "node_modules/rc": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
- "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "node_modules/get-pkg-repo/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "deep-extend": "^0.6.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
+ "yallist": "^4.0.0"
},
- "bin": {
- "rc": "cli.js"
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/rc-config-loader": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.3.tgz",
- "integrity": "sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==",
+ "node_modules/get-pkg-repo/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "debug": "^4.3.4",
- "js-yaml": "^4.1.0",
- "json5": "^2.2.2",
- "require-from-string": "^2.0.2"
- }
- },
- "node_modules/rc/node_modules/strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
- "dev": true,
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/react-is": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
- "dev": true
- },
- "node_modules/read": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/read/-/read-3.0.1.tgz",
- "integrity": "sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==",
+ "node_modules/get-pkg-repo/node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "mute-stream": "^1.0.0"
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=10"
}
},
- "node_modules/read-cmd-shim": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz",
- "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==",
+ "node_modules/get-pkg-repo/node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=10"
}
},
- "node_modules/read-package-json": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz",
- "integrity": "sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==",
- "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.",
+ "node_modules/get-port": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
+ "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
"dev": true,
- "dependencies": {
- "glob": "^10.2.2",
- "json-parse-even-better-errors": "^3.0.0",
- "normalize-package-data": "^5.0.0",
- "npm-normalize-package-bin": "^3.0.0"
- },
+ "license": "MIT",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/read-package-json-fast": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz",
- "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==",
- "dev": true,
- "dependencies": {
- "json-parse-even-better-errors": "^3.0.0",
- "npm-normalize-package-bin": "^3.0.0"
+ "node": ">=8"
},
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/read-package-json/node_modules/hosted-git-info": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.3.tgz",
- "integrity": "sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==",
+ "node_modules/get-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "lru-cache": "^7.5.1"
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">= 0.4"
}
},
- "node_modules/read-package-json/node_modules/lru-cache": {
- "version": "7.18.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
- "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+ "node_modules/get-stream": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz",
+ "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=12"
- }
- },
- "node_modules/read-package-json/node_modules/normalize-package-data": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz",
- "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^6.0.0",
- "is-core-module": "^2.8.1",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4"
+ "node": ">=10"
},
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
- "dev": true,
+ "node_modules/get-tsconfig": {
+ "version": "4.13.6",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz",
+ "integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==",
+ "license": "MIT",
"dependencies": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
+ "resolve-pkg-maps": "^1.0.0"
},
- "engines": {
- "node": ">=4"
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
}
},
- "node_modules/read-pkg-up": {
+ "node_modules/git-raw-commits": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
- "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz",
+ "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==",
+ "deprecated": "This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead.",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "find-up": "^2.0.0",
- "read-pkg": "^3.0.0"
+ "dargs": "^7.0.0",
+ "meow": "^8.1.2",
+ "split2": "^3.2.2"
+ },
+ "bin": {
+ "git-raw-commits": "cli.js"
},
"engines": {
- "node": ">=4"
+ "node": ">=14"
}
},
- "node_modules/read-pkg-up/node_modules/find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
+ "node_modules/git-remote-origin-url": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz",
+ "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "locate-path": "^2.0.0"
+ "gitconfiglocal": "^1.0.0",
+ "pify": "^2.3.0"
},
"engines": {
"node": ">=4"
}
},
- "node_modules/read-pkg-up/node_modules/locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
+ "node_modules/git-remote-origin-url/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
"dev": true,
- "dependencies": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/read-pkg-up/node_modules/p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "node_modules/git-semver-tags": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.1.tgz",
+ "integrity": "sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==",
+ "deprecated": "This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead.",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "p-try": "^1.0.0"
+ "meow": "^8.1.2",
+ "semver": "^7.0.0"
+ },
+ "bin": {
+ "git-semver-tags": "cli.js"
},
"engines": {
- "node": ">=4"
+ "node": ">=14"
}
},
- "node_modules/read-pkg-up/node_modules/p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
+ "node_modules/git-up": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz",
+ "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "p-limit": "^1.1.0"
- },
- "engines": {
- "node": ">=4"
+ "is-ssh": "^1.4.0",
+ "parse-url": "^8.1.0"
}
},
- "node_modules/read-pkg-up/node_modules/p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
+ "node_modules/git-url-parse": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-14.0.0.tgz",
+ "integrity": "sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==",
"dev": true,
- "engines": {
- "node": ">=4"
+ "license": "MIT",
+ "dependencies": {
+ "git-up": "^7.0.0"
}
},
- "node_modules/read-pkg-up/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "node_modules/gitconfiglocal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz",
+ "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==",
"dev": true,
- "engines": {
- "node": ">=4"
+ "license": "BSD",
+ "dependencies": {
+ "ini": "^1.3.2"
}
},
- "node_modules/read-pkg/node_modules/hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
+ "node_modules/glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
},
- "node_modules/read-pkg/node_modules/load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
+ "is-glob": "^4.0.3"
},
"engines": {
- "node": ">=4"
+ "node": ">=10.13.0"
}
},
- "node_modules/read-pkg/node_modules/normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "node_modules/glob/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/glob/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/read-pkg/node_modules/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "node_modules/glob/node_modules/minimatch": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
+ "brace-expansion": "^2.0.2"
},
"engines": {
- "node": ">=4"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/read-pkg/node_modules/path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "node_modules/globals": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
+ "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
"dev": true,
- "dependencies": {
- "pify": "^3.0.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/read-pkg/node_modules/pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/read-pkg/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/handlebars": {
+ "version": "4.7.8",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.2",
+ "source-map": "^0.6.1",
+ "wordwrap": "^1.0.0"
+ },
"bin": {
- "semver": "bin/semver"
+ "handlebars": "bin/handlebars"
+ },
+ "engines": {
+ "node": ">=0.4.7"
+ },
+ "optionalDependencies": {
+ "uglify-js": "^3.1.4"
}
},
- "node_modules/read-pkg/node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "node_modules/hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=6"
}
},
- "node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "license": "MIT",
"engines": {
- "node": ">= 6"
+ "node": ">=8"
}
},
- "node_modules/readdirp": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
- "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "node_modules/has-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
"engines": {
- "node": ">= 14.18.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/rechoir": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+ "node_modules/has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "resolve": "^1.1.6"
+ "function-bind": "^1.1.2"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">= 0.4"
}
},
- "node_modules/redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "node_modules/hosted-git-info": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
+ "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
+ "lru-cache": "^10.0.1"
},
"engines": {
- "node": ">=8"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/reflect.getprototypeof": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
- "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
+ "node_modules/html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/http-cache-semantics": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz",
+ "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/http-proxy-agent": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.9",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.7",
- "get-proto": "^1.0.1",
- "which-builtin-type": "^1.2.1"
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">= 14"
}
},
- "node_modules/regenerate": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
- "dev": true
- },
- "node_modules/regenerate-unicode-properties": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz",
- "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==",
+ "node_modules/https-proxy-agent": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "regenerate": "^1.4.2"
+ "agent-base": "^7.1.2",
+ "debug": "4"
},
"engines": {
- "node": ">=4"
+ "node": ">= 14"
}
},
- "node_modules/regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz",
- "integrity": "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==",
- "dependencies": {
- "regex-utilities": "^2.3.0"
+ "node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.17.0"
}
},
- "node_modules/regex-recursion": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz",
- "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==",
+ "node_modules/iconv-lite": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",
+ "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==",
+ "license": "MIT",
"dependencies": {
- "regex-utilities": "^2.3.0"
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
- "node_modules/regex-utilities": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz",
- "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
},
- "node_modules/regexp.prototype.flags": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
- "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
+ "node_modules/ignore": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-errors": "^1.3.0",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "set-function-name": "^2.0.2"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">= 4"
}
},
- "node_modules/regexpu-core": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz",
- "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==",
+ "node_modules/ignore-walk": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz",
+ "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^10.2.0",
- "regjsgen": "^0.8.0",
- "regjsparser": "^0.12.0",
- "unicode-match-property-ecmascript": "^2.0.0",
- "unicode-match-property-value-ecmascript": "^2.1.0"
+ "minimatch": "^9.0.0"
},
"engines": {
- "node": ">=4"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/ignore-walk/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ignore-walk/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/registry-auth-token": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz",
- "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==",
+ "node_modules/ignore-walk/node_modules/minimatch": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@pnpm/npm-conf": "^2.1.0"
+ "brace-expansion": "^2.0.2"
},
"engines": {
- "node": ">=14"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/registry-url": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz",
- "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==",
+ "node_modules/import-fresh": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "rc": "1.2.8"
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/regjsgen": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz",
- "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==",
- "dev": true
- },
- "node_modules/regjsparser": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz",
- "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==",
+ "node_modules/import-local": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
+ "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "jsesc": "~3.0.2"
+ "pkg-dir": "^4.2.0",
+ "resolve-cwd": "^3.0.0"
},
"bin": {
- "regjsparser": "bin/parser"
+ "import-local-fixture": "fixtures/cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/regjsparser/node_modules/jsesc": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
- "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- },
+ "license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=0.8.19"
}
},
- "node_modules/remote-git-tags": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/remote-git-tags/-/remote-git-tags-3.0.0.tgz",
- "integrity": "sha512-C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w==",
+ "node_modules/indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/request-compose": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/request-compose/-/request-compose-2.1.7.tgz",
- "integrity": "sha512-27amNkWTK4Qq25XEwdmrhb4VLMiQzRSKuDfsy1o1griykcyXk5MxMHmJG+OKTRdO9PgsO7Kkn7GrEkq0UAIIMQ==",
- "engines": {
- "node": ">=12.0.0"
- }
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
},
- "node_modules/request-oauth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/request-oauth/-/request-oauth-1.0.1.tgz",
- "integrity": "sha512-85THTg1RgOYtqQw42JON6AqvHLptlj1biw265Tsq4fD4cPdUvhDB2Qh9NTv17yCD322ROuO9aOmpc4GyayGVBA==",
+ "node_modules/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/init-package-json": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-6.0.3.tgz",
+ "integrity": "sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "oauth-sign": "^0.9.0",
- "qs": "^6.9.6",
- "uuid": "^8.3.2"
+ "@npmcli/package-json": "^5.0.0",
+ "npm-package-arg": "^11.0.0",
+ "promzard": "^1.0.0",
+ "read": "^3.0.1",
+ "semver": "^7.3.5",
+ "validate-npm-package-license": "^3.0.4",
+ "validate-npm-package-name": "^5.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/request-oauth/node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "bin": {
- "uuid": "dist/bin/uuid"
+ "node_modules/inquirer": {
+ "version": "9.3.8",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.3.8.tgz",
+ "integrity": "sha512-pFGGdaHrmRKMh4WoDDSowddgjT1Vkl90atobmTeSmcPGdYiwikch/m/Ef5wRaiamHejtw0cUUMMerzDUXCci2w==",
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/external-editor": "^1.0.2",
+ "@inquirer/figures": "^1.0.3",
+ "ansi-escapes": "^4.3.2",
+ "cli-width": "^4.1.0",
+ "mute-stream": "1.0.0",
+ "ora": "^5.4.1",
+ "run-async": "^3.0.0",
+ "rxjs": "^7.8.1",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^6.2.0",
+ "yoctocolors-cjs": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "node_modules/interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.10"
}
},
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "node_modules/ip-address": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz",
+ "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 12"
}
},
- "node_modules/resolve": {
- "version": "1.22.10",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
- "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/is-ci": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
+ "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-core-module": "^2.16.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
+ "ci-info": "^3.2.0"
},
"bin": {
- "resolve": "bin/resolve"
+ "is-ci": "bin.js"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -19236,1670 +6282,1669 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/resolve-alpn": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
- "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
- "dev": true
- },
- "node_modules/resolve-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
+ "node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
"dev": true,
- "dependencies": {
- "resolve-from": "^5.0.0"
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
},
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/resolve-cwd/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/resolve-path": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz",
- "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==",
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "http-errors": "~1.6.2",
- "path-is-absolute": "1.0.1"
+ "is-extglob": "^2.1.1"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">=0.10.0"
}
},
- "node_modules/resolve-path/node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "node_modules/is-interactive": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+ "license": "MIT",
"engines": {
- "node": ">= 0.6"
+ "node": ">=8"
}
},
- "node_modules/resolve-path/node_modules/http-errors": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.0",
- "statuses": ">= 1.4.0 < 2"
- },
+ "node_modules/is-lambda": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
+ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.6"
+ "node": ">=0.12.0"
}
},
- "node_modules/resolve-path/node_modules/inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+ "node_modules/is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/resolve-path/node_modules/setprototypeof": {
+ "node_modules/is-plain-obj": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
- "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/resolve-path/node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
"engines": {
- "node": ">= 0.6"
+ "node": ">=0.10.0"
}
},
- "node_modules/resolve-pkg-maps": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
- "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
- "funding": {
- "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ "node_modules/is-ssh": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.1.tgz",
+ "integrity": "sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "protocols": "^2.0.1"
}
},
- "node_modules/resolve.exports": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz",
- "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==",
+ "node_modules/is-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+ "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">=8"
}
},
- "node_modules/responselike": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz",
- "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==",
+ "node_modules/is-text-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz",
+ "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "lowercase-keys": "^3.0.0"
+ "text-extensions": "^1.0.0"
},
"engines": {
- "node": ">=14.16"
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/restore-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
+ "is-docker": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/restore-cursor/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true,
- "engines": {
- "node": ">= 4"
- }
+ "license": "ISC"
},
- "node_modules/reusify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
- "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "iojs": ">=1.0.0",
"node": ">=0.10.0"
}
},
- "node_modules/rfdc": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
- "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
- "dev": true
+ "node_modules/istanbul-lib-coverage": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^4.0.0",
+ "supports-color": "^7.1.0"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/rimraf/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/istanbul-lib-source-maps": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz",
+ "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "@jridgewell/trace-mapping": "^0.3.23",
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/rimraf/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "node_modules/istanbul-reports": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz",
+ "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
},
"engines": {
- "node": "*"
+ "node": ">=8"
+ }
+ },
+ "node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
}
},
- "node_modules/rimraf/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/jake": {
+ "version": "10.9.4",
+ "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz",
+ "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "async": "^3.2.6",
+ "filelist": "^1.0.4",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "jake": "bin/cli.js"
},
"engines": {
- "node": "*"
+ "node": ">=10"
}
},
- "node_modules/rollup": {
- "version": "4.40.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.1.tgz",
- "integrity": "sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==",
+ "node_modules/jest-diff": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
+ "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/estree": "1.0.7"
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.6.3",
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
},
- "bin": {
- "rollup": "dist/bin/rollup"
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-diff/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
+ "node": ">=8"
},
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.40.1",
- "@rollup/rollup-android-arm64": "4.40.1",
- "@rollup/rollup-darwin-arm64": "4.40.1",
- "@rollup/rollup-darwin-x64": "4.40.1",
- "@rollup/rollup-freebsd-arm64": "4.40.1",
- "@rollup/rollup-freebsd-x64": "4.40.1",
- "@rollup/rollup-linux-arm-gnueabihf": "4.40.1",
- "@rollup/rollup-linux-arm-musleabihf": "4.40.1",
- "@rollup/rollup-linux-arm64-gnu": "4.40.1",
- "@rollup/rollup-linux-arm64-musl": "4.40.1",
- "@rollup/rollup-linux-loongarch64-gnu": "4.40.1",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.40.1",
- "@rollup/rollup-linux-riscv64-gnu": "4.40.1",
- "@rollup/rollup-linux-riscv64-musl": "4.40.1",
- "@rollup/rollup-linux-s390x-gnu": "4.40.1",
- "@rollup/rollup-linux-x64-gnu": "4.40.1",
- "@rollup/rollup-linux-x64-musl": "4.40.1",
- "@rollup/rollup-win32-arm64-msvc": "4.40.1",
- "@rollup/rollup-win32-ia32-msvc": "4.40.1",
- "@rollup/rollup-win32-x64-msvc": "4.40.1",
- "fsevents": "~2.3.2"
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/run-applescript": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz",
- "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==",
+ "node_modules/jest-diff/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
"engines": {
- "node": ">=18"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/run-async": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz",
- "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==",
+ "node_modules/jest-get-type": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
+ "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.12.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "node_modules/js-tokens": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz",
+ "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
+ "license": "MIT"
},
- "node_modules/rxjs": {
- "version": "7.8.2",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
- "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
+ "node_modules/js-yaml": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "tslib": "^2.1.0"
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/safe-array-concat": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
- "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.2",
- "get-intrinsic": "^1.2.6",
- "has-symbols": "^1.1.0",
- "isarray": "^2.0.5"
- },
+ "license": "MIT"
+ },
+ "node_modules/json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
+ "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/safe-array-concat/node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/safe-push-apply": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
- "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
+ "node_modules/json-stringify-nice": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz",
+ "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==",
"dev": true,
- "dependencies": {
- "es-errors": "^1.3.0",
- "isarray": "^2.0.5"
- },
- "engines": {
- "node": ">= 0.4"
- },
+ "license": "ISC",
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/safe-push-apply/node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true
+ "node_modules/json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
+ "dev": true,
+ "license": "ISC"
},
- "node_modules/safe-regex-test": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
- "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "is-regex": "^1.2.1"
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsonc-parser": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
+ "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/jsonfile": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz",
+ "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "universalify": "^2.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
}
},
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ "node_modules/jsonparse": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
+ "dev": true,
+ "engines": [
+ "node >= 0.2.0"
+ ],
+ "license": "MIT"
},
- "node_modules/sass": {
- "version": "1.89.2",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.2.tgz",
- "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==",
+ "node_modules/JSONStream": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
+ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
"dev": true,
- "license": "MIT",
+ "license": "(MIT OR Apache-2.0)",
"dependencies": {
- "chokidar": "^4.0.0",
- "immutable": "^5.0.2",
- "source-map-js": ">=0.6.2 <2.0.0"
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
},
"bin": {
- "sass": "sass.js"
+ "JSONStream": "bin.js"
},
"engines": {
- "node": ">=14.0.0"
- },
- "optionalDependencies": {
- "@parcel/watcher": "^2.4.1"
+ "node": "*"
}
},
- "node_modules/sax": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
- "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
- "dev": true
+ "node_modules/just-diff": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz",
+ "integrity": "sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/schema-utils": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz",
- "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==",
+ "node_modules/just-diff-apply": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz",
+ "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==",
"dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.9.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.1.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
+ "license": "MIT"
},
- "node_modules/schema-utils/node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "fast-deep-equal": "^3.1.3",
- "fast-uri": "^3.0.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "json-buffer": "3.0.1"
}
},
- "node_modules/schema-utils/node_modules/ajv-formats": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
- "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true,
- "dependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependenciesMeta": {
- "ajv": {
- "optional": true
- }
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/schema-utils/node_modules/ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "node_modules/lerna": {
+ "version": "8.2.4",
+ "resolved": "https://registry.npmjs.org/lerna/-/lerna-8.2.4.tgz",
+ "integrity": "sha512-0gaVWDIVT7fLfprfwpYcQajb7dBJv3EGavjG7zvJ+TmGx3/wovl5GklnSwM2/WeE0Z2wrIz7ndWhBcDUHVjOcQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "fast-deep-equal": "^3.1.3"
+ "@lerna/create": "8.2.4",
+ "@npmcli/arborist": "7.5.4",
+ "@npmcli/package-json": "5.2.0",
+ "@npmcli/run-script": "8.1.0",
+ "@nx/devkit": ">=17.1.2 < 21",
+ "@octokit/plugin-enterprise-rest": "6.0.1",
+ "@octokit/rest": "20.1.2",
+ "aproba": "2.0.0",
+ "byte-size": "8.1.1",
+ "chalk": "4.1.0",
+ "clone-deep": "4.0.1",
+ "cmd-shim": "6.0.3",
+ "color-support": "1.1.3",
+ "columnify": "1.6.0",
+ "console-control-strings": "^1.1.0",
+ "conventional-changelog-angular": "7.0.0",
+ "conventional-changelog-core": "5.0.1",
+ "conventional-recommended-bump": "7.0.1",
+ "cosmiconfig": "9.0.0",
+ "dedent": "1.5.3",
+ "envinfo": "7.13.0",
+ "execa": "5.0.0",
+ "fs-extra": "^11.2.0",
+ "get-port": "5.1.1",
+ "get-stream": "6.0.0",
+ "git-url-parse": "14.0.0",
+ "glob-parent": "6.0.2",
+ "graceful-fs": "4.2.11",
+ "has-unicode": "2.0.1",
+ "import-local": "3.1.0",
+ "ini": "^1.3.8",
+ "init-package-json": "6.0.3",
+ "inquirer": "^8.2.4",
+ "is-ci": "3.0.1",
+ "is-stream": "2.0.0",
+ "jest-diff": ">=29.4.3 < 30",
+ "js-yaml": "4.1.0",
+ "libnpmaccess": "8.0.6",
+ "libnpmpublish": "9.0.9",
+ "load-json-file": "6.2.0",
+ "make-dir": "4.0.0",
+ "minimatch": "3.0.5",
+ "multimatch": "5.0.0",
+ "node-fetch": "2.6.7",
+ "npm-package-arg": "11.0.2",
+ "npm-packlist": "8.0.2",
+ "npm-registry-fetch": "^17.1.0",
+ "nx": ">=17.1.2 < 21",
+ "p-map": "4.0.0",
+ "p-map-series": "2.1.0",
+ "p-pipe": "3.1.0",
+ "p-queue": "6.6.2",
+ "p-reduce": "2.1.0",
+ "p-waterfall": "2.1.1",
+ "pacote": "^18.0.6",
+ "pify": "5.0.0",
+ "read-cmd-shim": "4.0.0",
+ "resolve-from": "5.0.0",
+ "rimraf": "^4.4.1",
+ "semver": "^7.3.8",
+ "set-blocking": "^2.0.0",
+ "signal-exit": "3.0.7",
+ "slash": "3.0.0",
+ "ssri": "^10.0.6",
+ "string-width": "^4.2.3",
+ "tar": "6.2.1",
+ "temp-dir": "1.0.0",
+ "through": "2.3.8",
+ "tinyglobby": "0.2.12",
+ "typescript": ">=3 < 6",
+ "upath": "2.0.1",
+ "uuid": "^10.0.0",
+ "validate-npm-package-license": "3.0.4",
+ "validate-npm-package-name": "5.0.1",
+ "wide-align": "1.1.5",
+ "write-file-atomic": "5.0.1",
+ "write-pkg": "4.0.0",
+ "yargs": "17.7.2",
+ "yargs-parser": "21.1.1"
},
- "peerDependencies": {
- "ajv": "^8.8.2"
- }
- },
- "node_modules/schema-utils/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/scule": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz",
- "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
- "dev": true
- },
- "node_modules/search-insights": {
- "version": "2.17.3",
- "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz",
- "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==",
- "dev": true,
- "peer": true
- },
- "node_modules/select-hose": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
- "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==",
- "dev": true
- },
- "node_modules/semver": {
- "version": "7.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
- "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
"bin": {
- "semver": "bin/semver.js"
+ "lerna": "dist/cli.js"
},
"engines": {
- "node": ">=10"
+ "node": ">=18.0.0"
}
},
- "node_modules/semver-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz",
- "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==",
+ "node_modules/lerna/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "semver": "^7.3.5"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">=12"
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/semver-utils": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/semver-utils/-/semver-utils-1.1.4.tgz",
- "integrity": "sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA==",
- "dev": true
- },
- "node_modules/send": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
- "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
+ "node_modules/lerna/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "node_modules/lerna/node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "ms": "2.0.0"
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
}
},
- "node_modules/send/node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/send/node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "node_modules/lerna/node_modules/chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
"engines": {
- "node": ">= 0.8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/serialize-javascript": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
- "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
+ "node_modules/lerna/node_modules/cli-width": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
+ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
"dev": true,
- "dependencies": {
- "randombytes": "^2.1.0"
+ "license": "ISC",
+ "engines": {
+ "node": ">= 10"
}
},
- "node_modules/serve-static": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
- "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
- "dependencies": {
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.19.0"
- },
+ "node_modules/lerna/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
}
},
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "dev": true
- },
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "node_modules/lerna/node_modules/inquirer": {
+ "version": "8.2.7",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.7.tgz",
+ "integrity": "sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
+ "@inquirer/external-editor": "^1.0.0",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.1",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^3.0.0",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.21",
+ "mute-stream": "0.0.8",
+ "ora": "^5.4.1",
+ "run-async": "^2.4.0",
+ "rxjs": "^7.5.5",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "through": "^2.3.6",
+ "wrap-ansi": "^6.0.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=12.0.0"
}
},
- "node_modules/set-function-name": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
- "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "node_modules/lerna/node_modules/inquirer/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "functions-have-names": "^1.2.3",
- "has-property-descriptors": "^1.0.2"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/set-proto": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",
- "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
+ "node_modules/lerna/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "dunder-proto": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0"
+ "argparse": "^2.0.1"
},
- "engines": {
- "node": ">= 0.4"
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "node_modules/shallow-clone": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
- "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "node_modules/lerna/node_modules/minimatch": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz",
+ "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "kind-of": "^6.0.2"
+ "brace-expansion": "^1.1.7"
},
"engines": {
- "node": ">=8"
+ "node": "*"
}
},
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "node_modules/lerna/node_modules/mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
"dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
+ "license": "ISC"
+ },
+ "node_modules/lerna/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "node_modules/lerna/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/shelljs": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.9.2.tgz",
- "integrity": "sha512-S3I64fEiKgTZzKCC46zT/Ib9meqofLrQVbpSswtjFfAVDW+AZ54WTnAM/3/yENoxz/V1Cy6u3kiiEbQ4DNphvw==",
+ "node_modules/lerna/node_modules/run-async": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
"dev": true,
- "dependencies": {
- "execa": "^1.0.0",
- "fast-glob": "^3.3.2",
- "interpret": "^1.0.0",
- "rechoir": "^0.6.2"
- },
- "bin": {
- "shjs": "bin/shjs"
- },
+ "license": "MIT",
"engines": {
- "node": ">=18"
+ "node": ">=0.12.0"
}
},
- "node_modules/shelljs/node_modules/cross-spawn": {
- "version": "6.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz",
- "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==",
+ "node_modules/lerna/node_modules/tinyglobby": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz",
+ "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "fdir": "^6.4.3",
+ "picomatch": "^4.0.2"
},
"engines": {
- "node": ">=4.8"
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
}
},
- "node_modules/shelljs/node_modules/execa": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
},
"engines": {
- "node": ">=6"
+ "node": ">= 0.8.0"
}
},
- "node_modules/shelljs/node_modules/get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "node_modules/libnpmaccess": {
+ "version": "8.0.6",
+ "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-8.0.6.tgz",
+ "integrity": "sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "pump": "^3.0.0"
+ "npm-package-arg": "^11.0.2",
+ "npm-registry-fetch": "^17.0.1"
},
"engines": {
- "node": ">=6"
- }
- },
- "node_modules/shelljs/node_modules/is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/shelljs/node_modules/npm-run-path": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "node_modules/libnpmpublish": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-9.0.9.tgz",
+ "integrity": "sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "path-key": "^2.0.0"
+ "ci-info": "^4.0.0",
+ "normalize-package-data": "^6.0.1",
+ "npm-package-arg": "^11.0.2",
+ "npm-registry-fetch": "^17.0.1",
+ "proc-log": "^4.2.0",
+ "semver": "^7.3.7",
+ "sigstore": "^2.2.0",
+ "ssri": "^10.0.6"
},
"engines": {
- "node": ">=4"
- }
- },
- "node_modules/shelljs/node_modules/path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/shelljs/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/shelljs/node_modules/shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "node_modules/libnpmpublish/node_modules/ci-info": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz",
+ "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==",
"dev": true,
- "dependencies": {
- "shebang-regex": "^1.0.0"
- },
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/shelljs/node_modules/shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "node_modules/lines-and-columns": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz",
+ "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
},
- "node_modules/shelljs/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "node_modules/shelljs/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "node_modules/load-json-file": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz",
+ "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==",
"dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
- }
- },
- "node_modules/shiki": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.9.1.tgz",
- "integrity": "sha512-HogZ8nMnv9VAQMrG+P7BleJFhrKHm3fi6CYyHRbUu61gJ0lpqLr6ecYEui31IYG1Cn9Bad7N2vf332iXHnn0bQ==",
"license": "MIT",
"dependencies": {
- "@shikijs/core": "3.9.1",
- "@shikijs/engine-javascript": "3.9.1",
- "@shikijs/engine-oniguruma": "3.9.1",
- "@shikijs/langs": "3.9.1",
- "@shikijs/themes": "3.9.1",
- "@shikijs/types": "3.9.1",
- "@shikijs/vscode-textmate": "^10.0.2",
- "@types/hast": "^3.0.4"
+ "graceful-fs": "^4.1.15",
+ "parse-json": "^5.0.0",
+ "strip-bom": "^4.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/shx": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/shx/-/shx-0.4.0.tgz",
- "integrity": "sha512-Z0KixSIlGPpijKgcH6oCMCbltPImvaKy0sGH8AkLRXw1KyzpKtaCTizP2xen+hNDqVF4xxgvA0KXSb9o4Q6hnA==",
+ "node_modules/load-json-file/node_modules/type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
"dev": true,
- "dependencies": {
- "minimist": "^1.2.8",
- "shelljs": "^0.9.2"
- },
- "bin": {
- "shx": "lib/cli.js"
- },
+ "license": "(MIT OR CC0-1.0)",
"engines": {
- "node": ">=18"
+ "node": ">=8"
}
},
- "node_modules/side-channel": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
- "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3",
- "side-channel-list": "^1.0.0",
- "side-channel-map": "^1.0.1",
- "side-channel-weakmap": "^1.0.2"
+ "p-locate": "^5.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/side-channel-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "node_modules/lodash": {
+ "version": "4.17.23",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
+ "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.ismatch": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz",
+ "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "license": "MIT",
"dependencies": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3"
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/side-channel-map": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
- "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "node_modules/log-symbols/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
"dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/side-channel-weakmap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
- "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "node_modules/log-symbols/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3",
- "side-channel-map": "^1.0.1"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/sift": {
- "version": "17.1.3",
- "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz",
- "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ=="
+ "node_modules/loupe": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz",
+ "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
+ "license": "ISC"
},
- "node_modules/sigstore": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz",
- "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==",
+ "node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@sigstore/bundle": "^2.3.2",
- "@sigstore/core": "^1.0.0",
- "@sigstore/protobuf-specs": "^0.3.2",
- "@sigstore/sign": "^2.3.2",
- "@sigstore/tuf": "^2.3.4",
- "@sigstore/verify": "^1.2.1"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "@jridgewell/sourcemap-codec": "^1.5.5"
}
},
- "node_modules/simple-concat": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
- "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/simple-get": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
- "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+ "node_modules/magicast": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz",
+ "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
+ "license": "MIT",
"dependencies": {
- "decompress-response": "^6.0.0",
- "once": "^1.3.1",
- "simple-concat": "^1.0.0"
+ "@babel/parser": "^7.25.4",
+ "@babel/types": "^7.25.4",
+ "source-map-js": "^1.2.0"
}
},
- "node_modules/sirv": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz",
- "integrity": "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==",
+ "node_modules/make-dir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@polka/url": "^1.0.0-next.24",
- "mrmime": "^2.0.0",
- "totalist": "^3.0.0"
+ "semver": "^7.5.3"
},
"engines": {
- "node": ">=18"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "dev": true
- },
- "node_modules/sitemap": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-8.0.0.tgz",
- "integrity": "sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==",
+ "node_modules/make-fetch-happen": {
+ "version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz",
+ "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@types/node": "^17.0.5",
- "@types/sax": "^1.2.1",
- "arg": "^5.0.0",
- "sax": "^1.2.4"
- },
- "bin": {
- "sitemap": "dist/cli.js"
+ "@npmcli/agent": "^2.0.0",
+ "cacache": "^18.0.0",
+ "http-cache-semantics": "^4.1.1",
+ "is-lambda": "^1.0.1",
+ "minipass": "^7.0.2",
+ "minipass-fetch": "^3.0.0",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.3",
+ "proc-log": "^4.2.0",
+ "promise-retry": "^2.0.1",
+ "ssri": "^10.0.0"
},
"engines": {
- "node": ">=14.0.0",
- "npm": ">=6.0.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/sitemap/node_modules/@types/node": {
- "version": "17.0.45",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
- "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==",
- "dev": true
- },
- "node_modules/sitemap/node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "dev": true
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "node_modules/map-obj": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
+ "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/smart-buffer": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
- "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
- "devOptional": true,
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 6.0.0",
- "npm": ">= 3.0.0"
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/meow": {
+ "version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz",
+ "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/minimist": "^1.2.0",
+ "camelcase-keys": "^6.2.2",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "4.1.0",
+ "normalize-package-data": "^3.0.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.18.0",
+ "yargs-parser": "^20.2.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/smob": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz",
- "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==",
- "dev": true
+ "node_modules/meow/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/socket.io": {
- "version": "4.8.1",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz",
- "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==",
+ "node_modules/meow/node_modules/hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "accepts": "~1.3.4",
- "base64id": "~2.0.0",
- "cors": "~2.8.5",
- "debug": "~4.3.2",
- "engine.io": "~6.6.0",
- "socket.io-adapter": "~2.5.2",
- "socket.io-parser": "~4.2.4"
+ "lru-cache": "^6.0.0"
},
"engines": {
- "node": ">=10.2.0"
+ "node": ">=10"
}
},
- "node_modules/socket.io-adapter": {
- "version": "2.5.5",
- "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz",
- "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==",
+ "node_modules/meow/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "debug": "~4.3.4",
- "ws": "~8.17.1"
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/socket.io-adapter/node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "node_modules/meow/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "ms": "^2.1.3"
+ "yallist": "^4.0.0"
},
"engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "node": ">=10"
}
},
- "node_modules/socket.io-client": {
- "version": "4.8.1",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz",
- "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==",
+ "node_modules/meow/node_modules/normalize-package-data": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
+ "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "@socket.io/component-emitter": "~3.1.0",
- "debug": "~4.3.2",
- "engine.io-client": "~6.6.1",
- "socket.io-parser": "~4.2.4"
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=10"
}
},
- "node_modules/socket.io-client/node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "node_modules/meow/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ms": "^2.1.3"
+ "p-try": "^2.0.0"
},
"engines": {
- "node": ">=6.0"
+ "node": ">=6"
},
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/socket.io-parser": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
- "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
+ "node_modules/meow/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@socket.io/component-emitter": "~3.1.0",
- "debug": "~4.3.1"
+ "p-limit": "^2.2.0"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=8"
}
},
- "node_modules/socket.io-parser/node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "node_modules/meow/node_modules/read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "ms": "^2.1.3"
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
},
"engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "node": ">=8"
}
},
- "node_modules/socket.io/node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "node_modules/meow/node_modules/read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "ms": "^2.1.3"
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
},
"engines": {
- "node": ">=6.0"
+ "node": ">=8"
},
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/socks": {
- "version": "2.8.4",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz",
- "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==",
- "devOptional": true,
- "dependencies": {
- "ip-address": "^9.0.5",
- "smart-buffer": "^4.2.0"
- },
+ "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
- "node": ">= 10.0.0",
- "npm": ">= 3.0.0"
+ "node": ">=8"
}
},
- "node_modules/socks-proxy-agent": {
- "version": "8.0.5",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz",
- "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==",
+ "node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "agent-base": "^7.1.2",
- "debug": "^4.3.4",
- "socks": "^2.8.3"
- },
- "engines": {
- "node": ">= 14"
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
}
},
- "node_modules/sort-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
- "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==",
+ "node_modules/meow/node_modules/read-pkg/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
- "dependencies": {
- "is-plain-obj": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
}
},
- "node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "node_modules/meow/node_modules/type-fest": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
+ "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "node_modules/meow/node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"dev": true,
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/sourcemap-codec": {
- "version": "1.4.8",
- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
- "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
- "deprecated": "Please use @jridgewell/sourcemap-codec instead",
- "dev": true
- },
- "node_modules/space-separated-tokens": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
- "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/sparse-bitfield": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
- "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
- "dependencies": {
- "memory-pager": "^1.0.2"
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
}
},
- "node_modules/spawn-please": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/spawn-please/-/spawn-please-2.0.2.tgz",
- "integrity": "sha512-KM8coezO6ISQ89c1BzyWNtcn2V2kAVtwIXd3cN/V5a0xPYc1F/vydrRc01wsKFEQ/p+V1a4sw4z2yMITIXrgGw==",
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "cross-spawn": "^7.0.3"
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
},
"engines": {
- "node": ">=14"
+ "node": ">=8.6"
}
},
- "node_modules/spdx-correct": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
- "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"dev": true,
- "dependencies": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/spdx-exceptions": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
- "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
- "dev": true
- },
- "node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/spdx-license-ids": {
- "version": "3.0.21",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz",
- "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==",
- "dev": true
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "node_modules/spdy": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
- "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
+ "node_modules/min-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
"dev": true,
- "dependencies": {
- "debug": "^4.1.0",
- "handle-thing": "^2.0.0",
- "http-deceiver": "^1.2.7",
- "select-hose": "^2.0.0",
- "spdy-transport": "^3.0.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">=6.0.0"
+ "node": ">=4"
}
},
- "node_modules/spdy-transport": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
- "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
+ "node_modules/minimatch": {
+ "version": "10.2.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
+ "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
"dev": true,
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "debug": "^4.1.0",
- "detect-node": "^2.0.4",
- "hpack.js": "^2.1.6",
- "obuf": "^1.1.2",
- "readable-stream": "^3.0.6",
- "wbuf": "^1.7.3"
+ "brace-expansion": "^5.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/speakingurl": {
- "version": "14.0.1",
- "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz",
- "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==",
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/split": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
- "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "node_modules/minimist-options": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
+ "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "through": "2"
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
},
"engines": {
- "node": "*"
+ "node": ">= 6"
}
},
- "node_modules/split-on-first": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-3.0.0.tgz",
- "integrity": "sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==",
+ "node_modules/minipass": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz",
+ "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=16 || 14 >=14.17"
}
},
- "node_modules/split2": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
- "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
+ "node_modules/minipass-collect": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz",
+ "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "readable-stream": "^3.0.0"
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
}
},
- "node_modules/sprintf-js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
- "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
- "devOptional": true
- },
- "node_modules/sqlite3": {
- "version": "5.1.7",
- "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz",
- "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==",
+ "node_modules/minipass-fetch": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz",
+ "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==",
"dev": true,
- "hasInstallScript": true,
+ "license": "MIT",
"dependencies": {
- "bindings": "^1.5.0",
- "node-addon-api": "^7.0.0",
- "prebuild-install": "^7.1.1",
- "tar": "^6.1.11"
- },
- "optionalDependencies": {
- "node-gyp": "8.x"
+ "minipass": "^7.0.3",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.1.2"
},
- "peerDependencies": {
- "node-gyp": "8.x"
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
},
- "peerDependenciesMeta": {
- "node-gyp": {
- "optional": true
- }
+ "optionalDependencies": {
+ "encoding": "^0.1.13"
}
},
- "node_modules/sqlite3/node_modules/@npmcli/fs": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
- "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
+ "node_modules/minipass-flush": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
"dev": true,
- "optional": true,
+ "license": "ISC",
"dependencies": {
- "@gar/promisify": "^1.0.1",
- "semver": "^7.3.5"
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
}
},
- "node_modules/sqlite3/node_modules/@npmcli/move-file": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
- "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
- "deprecated": "This functionality has been moved to @npmcli/fs",
+ "node_modules/minipass-flush/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"dev": true,
- "optional": true,
+ "license": "ISC",
"dependencies": {
- "mkdirp": "^1.0.4",
- "rimraf": "^3.0.2"
+ "yallist": "^4.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=8"
}
},
- "node_modules/sqlite3/node_modules/@tootallnate/once": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
- "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
+ "node_modules/minipass-pipeline": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
"dev": true,
- "optional": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
"engines": {
- "node": ">= 6"
+ "node": ">=8"
}
},
- "node_modules/sqlite3/node_modules/abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
- "dev": true,
- "optional": true
- },
- "node_modules/sqlite3/node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "node_modules/minipass-pipeline/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"dev": true,
- "optional": true,
+ "license": "ISC",
"dependencies": {
- "debug": "4"
+ "yallist": "^4.0.0"
},
"engines": {
- "node": ">= 6.0.0"
+ "node": ">=8"
}
},
- "node_modules/sqlite3/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/minipass-sized": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
+ "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
"dev": true,
- "optional": true,
+ "license": "ISC",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/sqlite3/node_modules/cacache": {
- "version": "15.3.0",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
- "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
+ "node_modules/minipass-sized/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"dev": true,
- "optional": true,
+ "license": "ISC",
"dependencies": {
- "@npmcli/fs": "^1.0.0",
- "@npmcli/move-file": "^1.0.1",
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "glob": "^7.1.4",
- "infer-owner": "^1.0.4",
- "lru-cache": "^6.0.0",
- "minipass": "^3.1.1",
- "minipass-collect": "^1.0.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.2",
- "mkdirp": "^1.0.3",
- "p-map": "^4.0.0",
- "promise-inflight": "^1.0.1",
- "rimraf": "^3.0.2",
- "ssri": "^8.0.1",
- "tar": "^6.0.2",
- "unique-filename": "^1.1.1"
+ "yallist": "^4.0.0"
},
"engines": {
- "node": ">= 10"
+ "node": ">=8"
}
},
- "node_modules/sqlite3/node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "node_modules/minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
"dev": true,
- "optional": true,
+ "license": "MIT",
"dependencies": {
- "minipass": "^3.0.0"
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
},
"engines": {
"node": ">= 8"
}
},
- "node_modules/sqlite3/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "node_modules/minizlib/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"dev": true,
- "optional": true,
+ "license": "ISC",
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "yallist": "^4.0.0"
},
"engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": ">=8"
}
},
- "node_modules/sqlite3/node_modules/http-proxy-agent": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
- "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
+ "node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
- "optional": true,
- "dependencies": {
- "@tootallnate/once": "1",
- "agent-base": "6",
- "debug": "4"
+ "license": "MIT",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
},
"engines": {
- "node": ">= 6"
+ "node": ">=10"
}
},
- "node_modules/sqlite3/node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "node_modules/modify-values": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz",
+ "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==",
"dev": true,
- "optional": true,
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 6"
+ "node": ">=0.10.0"
}
},
- "node_modules/sqlite3/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true,
- "optional": true,
+ "license": "MIT"
+ },
+ "node_modules/multimatch": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
+ "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "yallist": "^4.0.0"
+ "@types/minimatch": "^3.0.3",
+ "array-differ": "^3.0.0",
+ "array-union": "^2.1.0",
+ "arrify": "^2.0.1",
+ "minimatch": "^3.0.4"
},
"engines": {
"node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/sqlite3/node_modules/make-fetch-happen": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
- "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==",
+ "node_modules/multimatch/node_modules/arrify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
"dev": true,
- "optional": true,
- "dependencies": {
- "agentkeepalive": "^4.1.3",
- "cacache": "^15.2.0",
- "http-cache-semantics": "^4.1.0",
- "http-proxy-agent": "^4.0.1",
- "https-proxy-agent": "^5.0.0",
- "is-lambda": "^1.0.1",
- "lru-cache": "^6.0.0",
- "minipass": "^3.1.3",
- "minipass-collect": "^1.0.2",
- "minipass-fetch": "^1.3.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "negotiator": "^0.6.2",
- "promise-retry": "^2.0.1",
- "socks-proxy-agent": "^6.0.0",
- "ssri": "^8.0.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 10"
+ "node": ">=8"
}
},
- "node_modules/sqlite3/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/multimatch/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true,
- "optional": true,
+ "license": "MIT"
+ },
+ "node_modules/multimatch/node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/multimatch/node_modules/minimatch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -20907,3965 +7952,3349 @@
"node": "*"
}
},
- "node_modules/sqlite3/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "node_modules/mute-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz",
+ "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==",
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"dev": true,
- "optional": true,
- "dependencies": {
- "yallist": "^4.0.0"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
},
"engines": {
- "node": ">=8"
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
- "node_modules/sqlite3/node_modules/minipass-collect": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
- "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true,
- "optional": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
+ "license": "MIT"
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
+ "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 8"
+ "node": ">= 0.6"
}
},
- "node_modules/sqlite3/node_modules/minipass-fetch": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz",
- "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==",
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"dev": true,
- "optional": true,
+ "license": "MIT"
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "minipass": "^3.1.0",
- "minipass-sized": "^1.0.3",
- "minizlib": "^2.0.0"
+ "whatwg-url": "^5.0.0"
},
"engines": {
- "node": ">=8"
+ "node": "4.x || >=6.0.0"
},
- "optionalDependencies": {
- "encoding": "^0.1.12"
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
}
},
- "node_modules/sqlite3/node_modules/node-gyp": {
- "version": "8.4.1",
- "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz",
- "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==",
+ "node_modules/node-gyp": {
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.3.1.tgz",
+ "integrity": "sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==",
"dev": true,
- "optional": true,
+ "license": "MIT",
"dependencies": {
"env-paths": "^2.2.0",
- "glob": "^7.1.4",
+ "exponential-backoff": "^3.1.1",
+ "glob": "^10.3.10",
"graceful-fs": "^4.2.6",
- "make-fetch-happen": "^9.1.0",
- "nopt": "^5.0.0",
- "npmlog": "^6.0.0",
- "rimraf": "^3.0.2",
+ "make-fetch-happen": "^13.0.0",
+ "nopt": "^7.0.0",
+ "proc-log": "^4.1.0",
"semver": "^7.3.5",
- "tar": "^6.1.2",
- "which": "^2.0.2"
+ "tar": "^6.2.1",
+ "which": "^4.0.0"
},
"bin": {
"node-gyp": "bin/node-gyp.js"
},
"engines": {
- "node": ">= 10.12.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/sqlite3/node_modules/nopt": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
- "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
+ "node_modules/node-gyp/node_modules/isexe": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz",
+ "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==",
"dev": true,
- "optional": true,
- "dependencies": {
- "abbrev": "1"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
+ "license": "BlueOak-1.0.0",
"engines": {
- "node": ">=6"
+ "node": ">=18"
}
},
- "node_modules/sqlite3/node_modules/socks-proxy-agent": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz",
- "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==",
+ "node_modules/node-gyp/node_modules/which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
"dev": true,
- "optional": true,
+ "license": "ISC",
"dependencies": {
- "agent-base": "^6.0.2",
- "debug": "^4.3.3",
- "socks": "^2.6.2"
+ "isexe": "^3.1.1"
},
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/sqlite3/node_modules/ssri": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
- "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "minipass": "^3.1.1"
+ "bin": {
+ "node-which": "bin/which.js"
},
"engines": {
- "node": ">= 8"
+ "node": "^16.13.0 || >=18.0.0"
}
},
- "node_modules/sqlite3/node_modules/unique-filename": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
- "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "node_modules/node-machine-id": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz",
+ "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==",
"dev": true,
- "optional": true,
- "dependencies": {
- "unique-slug": "^2.0.0"
- }
+ "license": "MIT"
},
- "node_modules/sqlite3/node_modules/unique-slug": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
- "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "node_modules/nopt": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz",
+ "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==",
"dev": true,
- "optional": true,
+ "license": "ISC",
"dependencies": {
- "imurmurhash": "^0.1.4"
- }
- },
- "node_modules/sqlstring": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz",
- "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==",
- "dev": true,
+ "abbrev": "^2.0.0"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
"engines": {
- "node": ">= 0.6"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/ssri": {
- "version": "10.0.6",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz",
- "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==",
+ "node_modules/normalize-package-data": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
+ "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "minipass": "^7.0.3"
+ "hosted-git-info": "^7.0.0",
+ "semver": "^7.3.5",
+ "validate-npm-package-license": "^3.0.4"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "engines": {
- "node": ">= 0.8"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/streamx": {
- "version": "2.22.0",
- "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz",
- "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==",
+ "node_modules/npm-bundled": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz",
+ "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "fast-fifo": "^1.3.2",
- "text-decoder": "^1.1.0"
+ "npm-normalize-package-bin": "^3.0.0"
},
- "optionalDependencies": {
- "bare-events": "^2.2.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dependencies": {
- "safe-buffer": "~5.2.0"
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "node_modules/npm-check-updates": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-18.3.1.tgz",
+ "integrity": "sha512-5HwKPq7ybOOA1xB4FZg/1ToZZ5/i93U8m3co1mb3GYZAZPDkcxEFukQTTp/Abym+ZY6ShfrHl45Y0rCcwsNnQA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "ncu": "build/cli.js",
+ "npm-check-updates": "build/cli.js"
},
"engines": {
- "node": ">=8"
+ "node": "^18.18.0 || >=20.0.0",
+ "npm": ">=8.12.1"
}
},
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "node_modules/npm-install-checks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz",
+ "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "semver": "^7.1.1"
},
"engines": {
- "node": ">=8"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/string.prototype.matchall": {
- "version": "4.0.12",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz",
- "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==",
+ "node_modules/npm-normalize-package-bin": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz",
+ "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.6",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.6",
- "gopd": "^1.2.0",
- "has-symbols": "^1.1.0",
- "internal-slot": "^1.1.0",
- "regexp.prototype.flags": "^1.5.3",
- "set-function-name": "^2.0.2",
- "side-channel": "^1.1.0"
- },
+ "license": "ISC",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/string.prototype.trim": {
- "version": "1.2.10",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
- "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
+ "node_modules/npm-package-arg": {
+ "version": "11.0.2",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz",
+ "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.2",
- "define-data-property": "^1.1.4",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.5",
- "es-object-atoms": "^1.0.0",
- "has-property-descriptors": "^1.0.2"
+ "hosted-git-info": "^7.0.0",
+ "proc-log": "^4.0.0",
+ "semver": "^7.3.5",
+ "validate-npm-package-name": "^5.0.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/string.prototype.trimend": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
- "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
+ "node_modules/npm-packlist": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz",
+ "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.2",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
+ "ignore-walk": "^6.0.4"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/string.prototype.trimstart": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
- "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
+ "node_modules/npm-pick-manifest": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz",
+ "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
+ "npm-install-checks": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0",
+ "npm-package-arg": "^11.0.0",
+ "semver": "^7.3.5"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/stringify-entities": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
- "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
+ "node_modules/npm-registry-fetch": {
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz",
+ "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "character-entities-html4": "^2.0.0",
- "character-entities-legacy": "^3.0.0"
+ "@npmcli/redact": "^2.0.0",
+ "jsonparse": "^1.3.1",
+ "make-fetch-happen": "^13.0.0",
+ "minipass": "^7.0.2",
+ "minipass-fetch": "^3.0.0",
+ "minizlib": "^2.1.2",
+ "npm-package-arg": "^11.0.0",
+ "proc-log": "^4.0.0"
},
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/stringify-object": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
- "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
+ "node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "get-own-enumerable-property-symbols": "^3.0.0",
- "is-obj": "^1.0.1",
- "is-regexp": "^1.0.0"
+ "path-key": "^3.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/stringify-object/node_modules/is-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
- "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
+ "node_modules/nx": {
+ "version": "20.8.4",
+ "resolved": "https://registry.npmjs.org/nx/-/nx-20.8.4.tgz",
+ "integrity": "sha512-/++x0OM3/UTmDR+wmPeV13tSxeTr+QGzj3flgtH9DiOPmQnn2CjHWAMZiOhcSh/hHoE/V3ySL4757InQUsVtjQ==",
"dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "hasInstallScript": true,
+ "license": "MIT",
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "@napi-rs/wasm-runtime": "0.2.4",
+ "@yarnpkg/lockfile": "^1.1.0",
+ "@yarnpkg/parsers": "3.0.2",
+ "@zkochan/js-yaml": "0.0.7",
+ "axios": "^1.8.3",
+ "chalk": "^4.1.0",
+ "cli-cursor": "3.1.0",
+ "cli-spinners": "2.6.1",
+ "cliui": "^8.0.1",
+ "dotenv": "~16.4.5",
+ "dotenv-expand": "~11.0.6",
+ "enquirer": "~2.3.6",
+ "figures": "3.2.0",
+ "flat": "^5.0.2",
+ "front-matter": "^4.0.2",
+ "ignore": "^5.0.4",
+ "jest-diff": "^29.4.1",
+ "jsonc-parser": "3.2.0",
+ "lines-and-columns": "2.0.3",
+ "minimatch": "9.0.3",
+ "node-machine-id": "1.1.12",
+ "npm-run-path": "^4.0.1",
+ "open": "^8.4.0",
+ "ora": "5.3.0",
+ "resolve.exports": "2.0.3",
+ "semver": "^7.5.3",
+ "string-width": "^4.2.3",
+ "tar-stream": "~2.2.0",
+ "tmp": "~0.2.1",
+ "tsconfig-paths": "^4.1.2",
+ "tslib": "^2.3.0",
+ "yaml": "^2.6.0",
+ "yargs": "^17.6.2",
+ "yargs-parser": "21.1.1"
},
- "engines": {
- "node": ">=8"
+ "bin": {
+ "nx": "bin/nx.js",
+ "nx-cloud": "bin/nx-cloud.js"
+ },
+ "optionalDependencies": {
+ "@nx/nx-darwin-arm64": "20.8.4",
+ "@nx/nx-darwin-x64": "20.8.4",
+ "@nx/nx-freebsd-x64": "20.8.4",
+ "@nx/nx-linux-arm-gnueabihf": "20.8.4",
+ "@nx/nx-linux-arm64-gnu": "20.8.4",
+ "@nx/nx-linux-arm64-musl": "20.8.4",
+ "@nx/nx-linux-x64-gnu": "20.8.4",
+ "@nx/nx-linux-x64-musl": "20.8.4",
+ "@nx/nx-win32-arm64-msvc": "20.8.4",
+ "@nx/nx-win32-x64-msvc": "20.8.4"
+ },
+ "peerDependencies": {
+ "@swc-node/register": "^1.8.0",
+ "@swc/core": "^1.3.85"
+ },
+ "peerDependenciesMeta": {
+ "@swc-node/register": {
+ "optional": true
+ },
+ "@swc/core": {
+ "optional": true
+ }
}
},
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "node_modules/nx/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
+ "node_modules/nx/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true,
- "engines": {
- "node": ">=8"
- }
+ "license": "MIT"
},
- "node_modules/strip-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz",
- "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==",
+ "node_modules/nx/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
- "engines": {
- "node": ">=10"
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/strip-eof": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
+ "node_modules/nx/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "node_modules/nx/node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">= 4"
}
},
- "node_modules/strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "node_modules/nx/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "min-indent": "^1.0.0"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/strip-literal": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz",
- "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==",
+ "node_modules/nx/node_modules/ora": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz",
+ "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "js-tokens": "^9.0.1"
+ "bl": "^4.0.3",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "log-symbols": "^4.0.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/antfu"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/strip-literal/node_modules/js-tokens": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
- "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
- "dev": true
+ "node_modules/obug": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz",
+ "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==",
+ "dev": true,
+ "funding": [
+ "https://github.com/sponsors/sxzz",
+ "https://opencollective.com/debug"
+ ],
+ "license": "MIT"
},
- "node_modules/strong-log-transformer": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz",
- "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==",
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "duplexer": "^0.1.1",
- "minimist": "^1.2.0",
- "through": "^2.3.4"
- },
- "bin": {
- "sl-log-transformer": "bin/sl-log-transformer.js"
- },
- "engines": {
- "node": ">=4"
+ "wrappy": "1"
}
},
- "node_modules/superagent": {
- "version": "10.2.3",
- "resolved": "https://registry.npmjs.org/superagent/-/superagent-10.2.3.tgz",
- "integrity": "sha512-y/hkYGeXAj7wUMjxRbB21g/l6aAEituGXM9Rwl4o20+SX3e8YOSV6BxFXl+dL3Uk0mjSL3kCbNkwURm8/gEDig==",
- "dev": true,
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"license": "MIT",
"dependencies": {
- "component-emitter": "^1.3.1",
- "cookiejar": "^2.1.4",
- "debug": "^4.3.7",
- "fast-safe-stringify": "^2.1.1",
- "form-data": "^4.0.4",
- "formidable": "^3.5.4",
- "methods": "^1.1.2",
- "mime": "2.6.0",
- "qs": "^6.11.2"
+ "mimic-fn": "^2.1.0"
},
"engines": {
- "node": ">=14.18.0"
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/superagent/node_modules/formidable": {
- "version": "3.5.4",
- "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz",
- "integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==",
+ "node_modules/open": {
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@paralleldrive/cuid2": "^2.2.2",
- "dezalgo": "^1.0.4",
- "once": "^1.4.0"
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=12"
},
"funding": {
- "url": "https://ko-fi.com/tunnckoCore/commissions"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/superagent/node_modules/mime": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
- "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+ "node_modules/optionator": {
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
- "bin": {
- "mime": "cli.js"
+ "license": "MIT",
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.5"
},
"engines": {
- "node": ">=4.0.0"
+ "node": ">= 0.8.0"
}
},
- "node_modules/superjson": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz",
- "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==",
- "dev": true,
+ "node_modules/ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "license": "MIT",
"dependencies": {
- "copy-anything": "^3.0.2"
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
},
"engines": {
- "node": ">=16"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/ora/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
"dependencies": {
- "has-flag": "^4.0.0"
+ "color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/synckit": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz",
- "integrity": "sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ==",
- "dev": true,
+ "node_modules/ora/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
- "@pkgr/core": "^0.2.3",
- "tslib": "^2.8.1"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "node": ">=10"
},
"funding": {
- "url": "https://opencollective.com/synckit"
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/tabbable": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
- "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==",
- "dev": true
- },
- "node_modules/tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "node_modules/p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=4"
}
},
- "node_modules/tar": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
- "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^5.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
+ "yocto-queue": "^0.1.0"
},
"engines": {
"node": ">=10"
- }
- },
- "node_modules/tar-fs": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz",
- "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==",
- "dev": true,
- "dependencies": {
- "chownr": "^1.1.1",
- "mkdirp-classic": "^0.5.2",
- "pump": "^3.0.0",
- "tar-stream": "^2.1.4"
- }
- },
- "node_modules/tar-fs/node_modules/chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "dev": true
- },
- "node_modules/tar-stream": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
- "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
- "dev": true,
- "dependencies": {
- "bl": "^4.0.3",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
},
- "engines": {
- "node": ">=6"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tar/node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "minipass": "^3.0.0"
+ "p-limit": "^3.0.2"
},
"engines": {
- "node": ">= 8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "node_modules/p-map": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "yallist": "^4.0.0"
+ "aggregate-error": "^3.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tar/node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+ "node_modules/p-map-series": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz",
+ "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/tarn": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz",
- "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==",
+ "node_modules/p-pipe": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz",
+ "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8.0.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tedious": {
- "version": "18.6.1",
- "resolved": "https://registry.npmjs.org/tedious/-/tedious-18.6.1.tgz",
- "integrity": "sha512-9AvErXXQTd6l7TDd5EmM+nxbOGyhnmdbp/8c3pw+tjaiSXW9usME90ET/CRG1LN1Y9tPMtz/p83z4Q97B4DDpw==",
+ "node_modules/p-queue": {
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz",
+ "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@azure/core-auth": "^1.7.2",
- "@azure/identity": "^4.2.1",
- "@azure/keyvault-keys": "^4.4.0",
- "@js-joda/core": "^5.6.1",
- "@types/node": ">=18",
- "bl": "^6.0.11",
- "iconv-lite": "^0.6.3",
- "js-md4": "^0.3.2",
- "native-duplexpair": "^1.0.0",
- "sprintf-js": "^1.1.3"
+ "eventemitter3": "^4.0.4",
+ "p-timeout": "^3.2.0"
},
"engines": {
- "node": ">=18"
- }
- },
- "node_modules/tedious/node_modules/bl": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-6.1.0.tgz",
- "integrity": "sha512-ClDyJGQkc8ZtzdAAbAwBmhMSpwN/sC9HA8jxdYm6nVUbCfZbe2mgza4qh7AuEYyEPB/c4Kznf9s66bnsKMQDjw==",
- "dev": true,
- "dependencies": {
- "@types/readable-stream": "^4.0.0",
- "buffer": "^6.0.3",
- "inherits": "^2.0.4",
- "readable-stream": "^4.2.0"
- }
- },
- "node_modules/tedious/node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tedious/node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "node_modules/p-reduce": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz",
+ "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==",
"dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/tedious/node_modules/readable-stream": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz",
- "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==",
+ "node_modules/p-timeout": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
+ "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "abort-controller": "^3.0.0",
- "buffer": "^6.0.3",
- "events": "^3.3.0",
- "process": "^0.11.10",
- "string_decoder": "^1.3.0"
+ "p-finally": "^1.0.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=8"
}
},
- "node_modules/temp-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
- "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==",
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=6"
}
},
- "node_modules/tempy": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz",
- "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==",
+ "node_modules/p-waterfall": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz",
+ "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-stream": "^2.0.0",
- "temp-dir": "^2.0.0",
- "type-fest": "^0.16.0",
- "unique-string": "^2.0.0"
+ "p-reduce": "^2.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tempy/node_modules/crypto-random-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
- "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tempy/node_modules/temp-dir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
- "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==",
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
"dev": true,
- "engines": {
- "node": ">=8"
- }
+ "license": "BlueOak-1.0.0"
},
- "node_modules/tempy/node_modules/type-fest": {
- "version": "0.16.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz",
- "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==",
+ "node_modules/pacote": {
+ "version": "18.0.6",
+ "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz",
+ "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==",
"dev": true,
- "engines": {
- "node": ">=10"
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/git": "^5.0.0",
+ "@npmcli/installed-package-contents": "^2.0.1",
+ "@npmcli/package-json": "^5.1.0",
+ "@npmcli/promise-spawn": "^7.0.0",
+ "@npmcli/run-script": "^8.0.0",
+ "cacache": "^18.0.0",
+ "fs-minipass": "^3.0.0",
+ "minipass": "^7.0.2",
+ "npm-package-arg": "^11.0.0",
+ "npm-packlist": "^8.0.0",
+ "npm-pick-manifest": "^9.0.0",
+ "npm-registry-fetch": "^17.0.0",
+ "proc-log": "^4.0.0",
+ "promise-retry": "^2.0.1",
+ "sigstore": "^2.2.0",
+ "ssri": "^10.0.0",
+ "tar": "^6.1.11"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "bin": {
+ "pacote": "bin/index.js"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/tempy/node_modules/unique-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
- "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "crypto-random-string": "^2.0.0"
+ "callsites": "^3.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=6"
}
},
- "node_modules/terser": {
- "version": "5.39.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz",
- "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==",
+ "node_modules/parse-conflict-json": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz",
+ "integrity": "sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@jridgewell/source-map": "^0.3.3",
- "acorn": "^8.8.2",
- "commander": "^2.20.0",
- "source-map-support": "~0.5.20"
- },
- "bin": {
- "terser": "bin/terser"
+ "json-parse-even-better-errors": "^3.0.0",
+ "just-diff": "^6.0.0",
+ "just-diff-apply": "^5.2.0"
},
"engines": {
- "node": ">=10"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/terser-webpack-plugin": {
- "version": "5.3.14",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz",
- "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==",
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/trace-mapping": "^0.3.25",
- "jest-worker": "^27.4.5",
- "schema-utils": "^4.3.0",
- "serialize-javascript": "^6.0.2",
- "terser": "^5.31.1"
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
},
"engines": {
- "node": ">= 10.13.0"
+ "node": ">=8"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.1.0"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- },
- "uglify-js": {
- "optional": true
- }
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/terser-webpack-plugin/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "node_modules/parse-json/node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/parse-json/node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/parse-path": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.1.0.tgz",
+ "integrity": "sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
+ "protocols": "^2.0.0"
}
},
- "node_modules/terser/node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true
- },
- "node_modules/test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "node_modules/parse-url": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz",
+ "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
- },
+ "parse-path": "^7.0.0"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/test-exclude/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/test-exclude/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
"dev": true,
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"engines": {
- "node": "*"
+ "node": ">=16 || 14 >=14.18"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/test-exclude/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "pify": "^3.0.0"
},
"engines": {
- "node": "*"
+ "node": ">=4"
}
},
- "node_modules/text-decoder": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz",
- "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==",
+ "node_modules/path-type/node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
"dev": true,
- "dependencies": {
- "b4a": "^1.6.4"
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/text-extensions": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz",
- "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==",
+ "node_modules/pathe": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/pathval": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz",
+ "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.10"
+ "node": ">= 14.16"
}
},
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
- },
- "node_modules/through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
- "dev": true
- },
- "node_modules/through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"dev": true,
- "dependencies": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- }
+ "license": "ISC"
},
- "node_modules/through2/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/through2/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/through2/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "node_modules/pify": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz",
+ "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==",
"dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tildify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz",
- "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==",
+ "node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^4.0.0"
+ },
"engines": {
"node": ">=8"
}
},
- "node_modules/tinyexec": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz",
- "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tinyglobby": {
- "version": "0.2.14",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
- "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
+ "node_modules/pkg-dir/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "fdir": "^6.4.4",
- "picomatch": "^4.0.2"
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
},
"engines": {
- "node": ">=12.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/SuperchupuDev"
+ "node": ">=8"
}
},
- "node_modules/tinyglobby/node_modules/fdir": {
- "version": "6.4.4",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
- "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
+ "node_modules/pkg-dir/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
- "peerDependencies": {
- "picomatch": "^3 || ^4"
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^4.1.0"
},
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/tinyglobby/node_modules/picomatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
- "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "node_modules/pkg-dir/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=6"
},
"funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tldts": {
- "version": "6.1.86",
- "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz",
- "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
+ "node_modules/pkg-dir/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "tldts-core": "^6.1.86"
+ "p-limit": "^2.2.0"
},
- "bin": {
- "tldts": "bin/cli.js"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/tldts-core": {
- "version": "6.1.86",
- "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz",
- "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
- "dev": true
- },
- "node_modules/tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "node_modules/postcss": {
+ "version": "8.5.8",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
+ "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
"dependencies": {
- "os-tmpdir": "~1.0.2"
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
},
"engines": {
- "node": ">=0.6.0"
+ "node": "^10 || ^12 || >=14"
}
},
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "node_modules/postcss-selector-parser": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
+ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-number": "^7.0.0"
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
},
"engines": {
- "node": ">=8.0"
+ "node": ">=4"
}
},
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.6"
+ "node": ">= 0.8.0"
}
},
- "node_modules/totalist": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
- "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
+ "node_modules/prettier": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz",
+ "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==",
"dev": true,
"license": "MIT",
+ "bin": {
+ "prettier": "bin/prettier.cjs"
+ },
"engines": {
- "node": ">=6"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
}
},
- "node_modules/tough-cookie": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
- "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
+ "node_modules/prettier-linter-helpers": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz",
+ "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "tldts": "^6.1.32"
+ "fast-diff": "^1.1.2"
},
"engines": {
- "node": ">=16"
+ "node": ">=6.0.0"
}
},
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
+ "node_modules/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
},
- "node_modules/treeverse": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-3.0.0.tgz",
- "integrity": "sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==",
+ "node_modules/proc-log": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
+ "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/trim-lines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
- "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/trim-newlines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
- "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "node_modules/proggy": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/proggy/-/proggy-2.0.0.tgz",
+ "integrity": "sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": ">=8"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/ts-algebra": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ts-algebra/-/ts-algebra-2.0.0.tgz",
- "integrity": "sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw=="
- },
- "node_modules/ts-api-utils": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz",
- "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==",
+ "node_modules/promise-all-reject-late": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz",
+ "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==",
"dev": true,
- "engines": {
- "node": ">=16"
- },
- "peerDependencies": {
- "typescript": ">=4.2.0"
+ "license": "ISC",
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/ts-loader": {
- "version": "9.5.2",
- "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.2.tgz",
- "integrity": "sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw==",
+ "node_modules/promise-call-limit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-3.0.2.tgz",
+ "integrity": "sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==",
"dev": true,
- "dependencies": {
- "chalk": "^4.1.0",
- "enhanced-resolve": "^5.0.0",
- "micromatch": "^4.0.0",
- "semver": "^7.3.4",
- "source-map": "^0.7.4"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "typescript": "*",
- "webpack": "^5.0.0"
+ "license": "ISC",
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/ts-loader/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/promise-retry": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
+ "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1"
+ "err-code": "^2.0.2",
+ "retry": "^0.12.0"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": ">=10"
}
},
- "node_modules/ts-loader/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/promzard": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/promzard/-/promzard-1.0.2.tgz",
+ "integrity": "sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "read": "^3.0.1"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/ts-loader/node_modules/source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "node_modules/protocols": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.2.tgz",
+ "integrity": "sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"dev": true,
- "engines": {
- "node": ">= 8"
- }
+ "license": "MIT"
},
- "node_modules/ts-node": {
- "version": "10.9.2",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
- "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
+ "node_modules/pump": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz",
+ "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@cspotcode/source-map-support": "^0.8.0",
- "@tsconfig/node10": "^1.0.7",
- "@tsconfig/node12": "^1.0.7",
- "@tsconfig/node14": "^1.0.0",
- "@tsconfig/node16": "^1.0.2",
- "acorn": "^8.4.1",
- "acorn-walk": "^8.1.1",
- "arg": "^4.1.0",
- "create-require": "^1.1.0",
- "diff": "^4.0.1",
- "make-error": "^1.1.1",
- "v8-compile-cache-lib": "^3.0.1",
- "yn": "3.1.1"
- },
- "bin": {
- "ts-node": "dist/bin.js",
- "ts-node-cwd": "dist/bin-cwd.js",
- "ts-node-esm": "dist/bin-esm.js",
- "ts-node-script": "dist/bin-script.js",
- "ts-node-transpile-only": "dist/bin-transpile.js",
- "ts-script": "dist/bin-script-deprecated.js"
- },
- "peerDependencies": {
- "@swc/core": ">=1.2.50",
- "@swc/wasm": ">=1.2.50",
- "@types/node": "*",
- "typescript": ">=2.7"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "@swc/wasm": {
- "optional": true
- }
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
}
},
- "node_modules/ts-node/node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.3.1"
+ "node": ">=6"
}
},
- "node_modules/tsconfig-paths": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
- "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true,
- "dependencies": {
- "json5": "^2.2.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
},
- "node_modules/tsconfig-paths/node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "node_modules/quick-lru": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
- },
- "node_modules/tsscmp": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
- "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==",
- "engines": {
- "node": ">=0.6.x"
- }
+ "node_modules/react-is": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/tsx": {
- "version": "4.20.3",
- "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.20.3.tgz",
- "integrity": "sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==",
- "license": "MIT",
+ "node_modules/read": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/read/-/read-3.0.1.tgz",
+ "integrity": "sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "esbuild": "~0.25.0",
- "get-tsconfig": "^4.7.5"
- },
- "bin": {
- "tsx": "dist/cli.mjs"
+ "mute-stream": "^1.0.0"
},
"engines": {
- "node": ">=18.0.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/tuf-js": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz",
- "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==",
+ "node_modules/read-cmd-shim": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz",
+ "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==",
"dev": true,
- "dependencies": {
- "@tufjs/models": "2.0.1",
- "debug": "^4.3.4",
- "make-fetch-happen": "^13.0.1"
- },
+ "license": "ISC",
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "node_modules/read-package-json-fast": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz",
+ "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "safe-buffer": "^5.0.1"
+ "json-parse-even-better-errors": "^3.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
},
"engines": {
- "node": "*"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "node_modules/read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "prelude-ls": "^1.2.1"
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=4"
}
},
- "node_modules/type-fest": {
- "version": "4.41.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
- "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
+ "node_modules/read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "license": "MIT",
"dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
+ "find-up": "^2.0.0",
+ "read-pkg": "^3.0.0"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">=4"
}
},
- "node_modules/typed-array-buffer": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
- "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
+ "node_modules/read-pkg-up/node_modules/find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bound": "^1.0.3",
- "es-errors": "^1.3.0",
- "is-typed-array": "^1.1.14"
+ "locate-path": "^2.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=4"
}
},
- "node_modules/typed-array-byte-length": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
- "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
+ "node_modules/read-pkg-up/node_modules/locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.8",
- "for-each": "^0.3.3",
- "gopd": "^1.2.0",
- "has-proto": "^1.2.0",
- "is-typed-array": "^1.1.14"
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=4"
}
},
- "node_modules/typed-array-byte-offset": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
- "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
+ "node_modules/read-pkg-up/node_modules/p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.8",
- "for-each": "^0.3.3",
- "gopd": "^1.2.0",
- "has-proto": "^1.2.0",
- "is-typed-array": "^1.1.15",
- "reflect.getprototypeof": "^1.0.9"
+ "p-try": "^1.0.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=4"
}
},
- "node_modules/typed-array-length": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
- "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
+ "node_modules/read-pkg-up/node_modules/p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "is-typed-array": "^1.1.13",
- "possible-typed-array-names": "^1.0.0",
- "reflect.getprototypeof": "^1.0.6"
+ "p-limit": "^1.1.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=4"
}
},
- "node_modules/typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
- "dev": true
- },
- "node_modules/typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "node_modules/read-pkg-up/node_modules/p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
"dev": true,
- "dependencies": {
- "is-typedarray": "^1.0.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/typescript": {
- "version": "5.9.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz",
- "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
- "devOptional": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
+ "node_modules/read-pkg-up/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=14.17"
+ "node": ">=4"
}
},
- "node_modules/uc.micro": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
- "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
- "dev": true
- },
- "node_modules/ufo": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz",
- "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==",
- "dev": true
+ "node_modules/read-pkg/node_modules/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true,
+ "license": "ISC"
},
- "node_modules/uglify-js": {
- "version": "3.19.3",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
- "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
+ "node_modules/read-pkg/node_modules/load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
"dev": true,
- "bin": {
- "uglifyjs": "bin/uglifyjs"
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
},
"engines": {
- "node": ">=0.8.0"
+ "node": ">=4"
}
},
- "node_modules/unbox-primitive": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
- "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
+ "node_modules/read-pkg/node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "call-bound": "^1.0.3",
- "has-bigints": "^1.0.2",
- "has-symbols": "^1.1.0",
- "which-boxed-primitive": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
}
},
- "node_modules/unconfig": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/unconfig/-/unconfig-7.3.2.tgz",
- "integrity": "sha512-nqG5NNL2wFVGZ0NA/aCFw0oJ2pxSf1lwg4Z5ill8wd7K4KX/rQbHlwbh+bjctXL5Ly1xtzHenHGOK0b+lG6JVg==",
+ "node_modules/read-pkg/node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@quansync/fs": "^0.1.1",
- "defu": "^6.1.4",
- "jiti": "^2.4.2",
- "quansync": "^0.2.8"
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
},
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/undici-types": {
- "version": "7.8.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz",
- "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==",
- "license": "MIT"
- },
- "node_modules/unicode-canonical-property-names-ecmascript": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
- "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==",
- "dev": true,
"engines": {
"node": ">=4"
}
},
- "node_modules/unicode-match-property-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
- "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
+ "node_modules/read-pkg/node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
"dev": true,
- "dependencies": {
- "unicode-canonical-property-names-ecmascript": "^2.0.0",
- "unicode-property-aliases-ecmascript": "^2.0.0"
- },
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
- "node_modules/unicode-match-property-value-ecmascript": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz",
- "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==",
+ "node_modules/read-pkg/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
- "engines": {
- "node": ">=4"
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
}
},
- "node_modules/unicode-property-aliases-ecmascript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
- "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
+ "node_modules/read-pkg/node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
- "node_modules/unimport": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/unimport/-/unimport-4.2.0.tgz",
- "integrity": "sha512-mYVtA0nmzrysnYnyb3ALMbByJ+Maosee2+WyE0puXl+Xm2bUwPorPaaeZt0ETfuroPOtG8jj1g/qeFZ6buFnag==",
- "dev": true,
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "license": "MIT",
"dependencies": {
- "acorn": "^8.14.1",
- "escape-string-regexp": "^5.0.0",
- "estree-walker": "^3.0.3",
- "local-pkg": "^1.1.1",
- "magic-string": "^0.30.17",
- "mlly": "^1.7.4",
- "pathe": "^2.0.3",
- "picomatch": "^4.0.2",
- "pkg-types": "^2.1.0",
- "scule": "^1.3.0",
- "strip-literal": "^3.0.0",
- "tinyglobby": "^0.2.12",
- "unplugin": "^2.2.2",
- "unplugin-utils": "^0.2.4"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
},
"engines": {
- "node": ">=18.12.0"
+ "node": ">= 6"
}
},
- "node_modules/unimport/node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "node_modules/rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
"dev": true,
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "resolve": "^1.1.6"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/unimport/node_modules/picomatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
- "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
- "dev": true,
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "node": ">= 0.10"
}
},
- "node_modules/unique-filename": {
+ "node_modules/redent": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz",
- "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "unique-slug": "^4.0.0"
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=8"
}
},
- "node_modules/unique-slug": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz",
- "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==",
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"dev": true,
- "dependencies": {
- "imurmurhash": "^0.1.4"
- },
+ "license": "MIT",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/unique-string": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
+ "node_modules/resolve": {
+ "version": "1.22.11",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "crypto-random-string": "^4.0.0"
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
},
"engines": {
- "node": ">=12"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/unist-util-is": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
- "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
+ "node_modules/resolve-cwd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/unist": "^3.0.0"
+ "resolve-from": "^5.0.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/unist-util-position": {
+ "node_modules/resolve-cwd/node_modules/resolve-from": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
- "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/unist-util-stringify-position": {
+ "node_modules/resolve-from": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
- "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
- "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0",
- "unist-util-visit-parents": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit-parents": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
- "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/universal-user-agent": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
- "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==",
- "dev": true
- },
- "node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=4"
}
},
- "node_modules/unocss": {
- "version": "66.3.3",
- "resolved": "https://registry.npmjs.org/unocss/-/unocss-66.3.3.tgz",
- "integrity": "sha512-HSB+K4/EbouwYmxpPU52cg0exua7PUr2IAJZBV3iai6tPdMcJ0c8jXaw7G+2L+ffruVFTcS0e2kE4OrR8BKDLg==",
- "dev": true,
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
"license": "MIT",
- "dependencies": {
- "@unocss/astro": "66.3.3",
- "@unocss/cli": "66.3.3",
- "@unocss/core": "66.3.3",
- "@unocss/postcss": "66.3.3",
- "@unocss/preset-attributify": "66.3.3",
- "@unocss/preset-icons": "66.3.3",
- "@unocss/preset-mini": "66.3.3",
- "@unocss/preset-tagify": "66.3.3",
- "@unocss/preset-typography": "66.3.3",
- "@unocss/preset-uno": "66.3.3",
- "@unocss/preset-web-fonts": "66.3.3",
- "@unocss/preset-wind": "66.3.3",
- "@unocss/preset-wind3": "66.3.3",
- "@unocss/preset-wind4": "66.3.3",
- "@unocss/transformer-attributify-jsx": "66.3.3",
- "@unocss/transformer-compile-class": "66.3.3",
- "@unocss/transformer-directives": "66.3.3",
- "@unocss/transformer-variant-group": "66.3.3",
- "@unocss/vite": "66.3.3"
- },
- "engines": {
- "node": ">=14"
- },
"funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@unocss/webpack": "66.3.3",
- "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0"
- },
- "peerDependenciesMeta": {
- "@unocss/webpack": {
- "optional": true
- },
- "vite": {
- "optional": true
- }
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
}
},
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "node_modules/resolve.exports": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz",
+ "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.8"
+ "node": ">=10"
}
},
- "node_modules/unplugin": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.5.tgz",
- "integrity": "sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw==",
- "dev": true,
+ "node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
"license": "MIT",
"dependencies": {
- "acorn": "^8.14.1",
- "picomatch": "^4.0.2",
- "webpack-virtual-modules": "^0.6.2"
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
},
"engines": {
- "node": ">=18.12.0"
+ "node": ">=8"
}
},
- "node_modules/unplugin-auto-import": {
- "version": "19.3.0",
- "resolved": "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-19.3.0.tgz",
- "integrity": "sha512-iIi0u4Gq2uGkAOGqlPJOAMI8vocvjh1clGTfSK4SOrJKrt+tirrixo/FjgBwXQNNdS7ofcr7OxzmOb/RjWxeEQ==",
+ "node_modules/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "local-pkg": "^1.1.1",
- "magic-string": "^0.30.17",
- "picomatch": "^4.0.2",
- "unimport": "^4.2.0",
- "unplugin": "^2.3.4",
- "unplugin-utils": "^0.2.4"
- },
"engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@nuxt/kit": "^3.2.2",
- "@vueuse/core": "*"
- },
- "peerDependenciesMeta": {
- "@nuxt/kit": {
- "optional": true
- },
- "@vueuse/core": {
- "optional": true
- }
+ "node": ">= 4"
}
},
- "node_modules/unplugin-auto-import/node_modules/picomatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
- "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
}
},
- "node_modules/unplugin-utils": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.2.4.tgz",
- "integrity": "sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==",
+ "node_modules/rimraf": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz",
+ "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "pathe": "^2.0.2",
- "picomatch": "^4.0.2"
+ "glob": "^9.2.0"
+ },
+ "bin": {
+ "rimraf": "dist/cjs/src/bin.js"
},
"engines": {
- "node": ">=18.12.0"
+ "node": ">=14"
},
"funding": {
- "url": "https://github.com/sponsors/sxzz"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/unplugin-utils/node_modules/picomatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
- "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "node_modules/rimraf/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
+ "license": "MIT"
},
- "node_modules/unplugin-vue-components": {
- "version": "28.8.0",
- "resolved": "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-28.8.0.tgz",
- "integrity": "sha512-2Q6ZongpoQzuXDK0ZsVzMoshH0MWZQ1pzVL538G7oIDKRTVzHjppBDS8aB99SADGHN3lpGU7frraCG6yWNoL5Q==",
+ "node_modules/rimraf/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "chokidar": "^3.6.0",
- "debug": "^4.4.1",
- "local-pkg": "^1.1.1",
- "magic-string": "^0.30.17",
- "mlly": "^1.7.4",
- "tinyglobby": "^0.2.14",
- "unplugin": "^2.3.5",
- "unplugin-utils": "^0.2.4"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@babel/parser": "^7.15.8",
- "@nuxt/kit": "^3.2.2 || ^4.0.0",
- "vue": "2 || 3"
- },
- "peerDependenciesMeta": {
- "@babel/parser": {
- "optional": true
- },
- "@nuxt/kit": {
- "optional": true
- }
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/unplugin-vue-components/node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "node_modules/rimraf/node_modules/glob": {
+ "version": "9.3.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz",
+ "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
+ "fs.realpath": "^1.0.0",
+ "minimatch": "^8.0.2",
+ "minipass": "^4.2.4",
+ "path-scurry": "^1.6.1"
},
"engines": {
- "node": ">= 8.10.0"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/unplugin-vue-components/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "node_modules/rimraf/node_modules/minimatch": {
+ "version": "8.0.7",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.7.tgz",
+ "integrity": "sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "is-glob": "^4.0.1"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">= 6"
- }
- },
- "node_modules/unplugin-vue-components/node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "dependencies": {
- "picomatch": "^2.2.1"
+ "node": ">=16 || 14 >=14.17"
},
- "engines": {
- "node": ">=8.10.0"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/unplugin/node_modules/picomatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
- "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "node_modules/rimraf/node_modules/minipass": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
+ "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "node": ">=8"
}
},
- "node_modules/untildify": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
- "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+ "node_modules/rollup": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz",
+ "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.8"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.59.0",
+ "@rollup/rollup-android-arm64": "4.59.0",
+ "@rollup/rollup-darwin-arm64": "4.59.0",
+ "@rollup/rollup-darwin-x64": "4.59.0",
+ "@rollup/rollup-freebsd-arm64": "4.59.0",
+ "@rollup/rollup-freebsd-x64": "4.59.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.59.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.59.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.59.0",
+ "@rollup/rollup-linux-arm64-musl": "4.59.0",
+ "@rollup/rollup-linux-loong64-gnu": "4.59.0",
+ "@rollup/rollup-linux-loong64-musl": "4.59.0",
+ "@rollup/rollup-linux-ppc64-gnu": "4.59.0",
+ "@rollup/rollup-linux-ppc64-musl": "4.59.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.59.0",
+ "@rollup/rollup-linux-riscv64-musl": "4.59.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.59.0",
+ "@rollup/rollup-linux-x64-gnu": "4.59.0",
+ "@rollup/rollup-linux-x64-musl": "4.59.0",
+ "@rollup/rollup-openbsd-x64": "4.59.0",
+ "@rollup/rollup-openharmony-arm64": "4.59.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.59.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.59.0",
+ "@rollup/rollup-win32-x64-gnu": "4.59.0",
+ "@rollup/rollup-win32-x64-msvc": "4.59.0",
+ "fsevents": "~2.3.2"
}
},
- "node_modules/upath": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz",
- "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==",
- "dev": true,
+ "node_modules/run-async": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz",
+ "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==",
+ "license": "MIT",
"engines": {
- "node": ">=4",
- "yarn": "*"
+ "node": ">=0.12.0"
}
},
- "node_modules/update-browserslist-db": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
- "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
"dev": true,
"funding": [
{
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
},
{
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
},
{
- "type": "github",
- "url": "https://github.com/sponsors/ai"
+ "type": "consulting",
+ "url": "https://feross.org/support"
}
],
+ "license": "MIT",
"dependencies": {
- "escalade": "^3.2.0",
- "picocolors": "^1.1.1"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/update-notifier": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz",
- "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==",
- "dev": true,
- "dependencies": {
- "boxen": "^7.0.0",
- "chalk": "^5.0.1",
- "configstore": "^6.0.0",
- "has-yarn": "^3.0.0",
- "import-lazy": "^4.0.0",
- "is-ci": "^3.0.1",
- "is-installed-globally": "^0.4.0",
- "is-npm": "^6.0.0",
- "is-yarn-global": "^0.4.0",
- "latest-version": "^7.0.0",
- "pupa": "^3.1.0",
- "semver": "^7.3.7",
- "semver-diff": "^4.0.0",
- "xdg-basedir": "^5.1.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/yeoman/update-notifier?sponsor=1"
+ "queue-microtask": "^1.2.2"
}
},
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
+ "node_modules/rxjs": {
+ "version": "7.8.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
+ "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
+ "license": "Apache-2.0",
"dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "engines": {
- "node": ">= 0.4.0"
+ "tslib": "^2.1.0"
}
},
- "node_modules/uuid": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
- "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
- "dev": true,
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
],
- "bin": {
- "uuid": "dist/bin/uuid"
- }
+ "license": "MIT"
},
- "node_modules/v8-compile-cache-lib": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
- "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "dev": true
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "license": "MIT"
},
- "node_modules/v8-to-istanbul": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
- "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==",
+ "node_modules/semver": {
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.12",
- "@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^2.0.0"
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
},
"engines": {
- "node": ">=10.12.0"
+ "node": ">=10"
}
},
- "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "node_modules/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
"dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
+ "license": "ISC"
},
- "node_modules/validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "node_modules/shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/validate-npm-package-name": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
- "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==",
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=8"
}
},
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.8"
+ "node": ">=8"
}
},
- "node_modules/vfile": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
- "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "node_modules/shelljs": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.9.2.tgz",
+ "integrity": "sha512-S3I64fEiKgTZzKCC46zT/Ib9meqofLrQVbpSswtjFfAVDW+AZ54WTnAM/3/yENoxz/V1Cy6u3kiiEbQ4DNphvw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "@types/unist": "^3.0.0",
- "vfile-message": "^4.0.0"
+ "execa": "^1.0.0",
+ "fast-glob": "^3.3.2",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "bin": {
+ "shjs": "bin/shjs"
+ },
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/vfile-message": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
- "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "node_modules/shelljs/node_modules/cross-spawn": {
+ "version": "6.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz",
+ "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-stringify-position": "^4.0.0"
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "engines": {
+ "node": ">=4.8"
}
},
- "node_modules/vite": {
- "version": "6.3.4",
- "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.4.tgz",
- "integrity": "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==",
+ "node_modules/shelljs/node_modules/execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
"dev": true,
- "peer": true,
+ "license": "MIT",
"dependencies": {
- "esbuild": "^0.25.0",
- "fdir": "^6.4.4",
- "picomatch": "^4.0.2",
- "postcss": "^8.5.3",
- "rollup": "^4.34.9",
- "tinyglobby": "^0.2.13"
- },
- "bin": {
- "vite": "bin/vite.js"
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
},
"engines": {
- "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
- "jiti": ">=1.21.0",
- "less": "*",
- "lightningcss": "^1.21.0",
- "sass": "*",
- "sass-embedded": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.16.0",
- "tsx": "^4.8.1",
- "yaml": "^2.4.2"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "jiti": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- },
- "tsx": {
- "optional": true
- },
- "yaml": {
- "optional": true
- }
+ "node": ">=6"
}
},
- "node_modules/vite-plugin-pwa": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-1.0.2.tgz",
- "integrity": "sha512-O3UwjsCnoDclgJANoOgzzqW7SFgwXE/th2OmUP/ILxHKwzWxxKDBu+B/Xa9Cv4IgSVSnj2HgRVIJ7F15+vQFkA==",
+ "node_modules/shelljs/node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "debug": "^4.3.6",
- "pretty-bytes": "^6.1.1",
- "tinyglobby": "^0.2.10",
- "workbox-build": "^7.3.0",
- "workbox-window": "^7.3.0"
+ "pump": "^3.0.0"
},
"engines": {
- "node": ">=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@vite-pwa/assets-generator": "^1.0.0",
- "vite": "^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0",
- "workbox-build": "^7.3.0",
- "workbox-window": "^7.3.0"
- },
- "peerDependenciesMeta": {
- "@vite-pwa/assets-generator": {
- "optional": true
- }
+ "node": ">=6"
}
},
- "node_modules/vite/node_modules/fdir": {
- "version": "6.4.4",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
- "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
+ "node_modules/shelljs/node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
"dev": true,
- "peer": true,
- "peerDependencies": {
- "picomatch": "^3 || ^4"
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shelljs/node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^2.0.0"
},
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/vite/node_modules/picomatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
- "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "node_modules/shelljs/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
"dev": true,
- "peer": true,
+ "license": "MIT",
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "node": ">=4"
}
},
- "node_modules/vitepress": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.6.3.tgz",
- "integrity": "sha512-fCkfdOk8yRZT8GD9BFqusW3+GggWYZ/rYncOfmgcDtP3ualNHCAg+Robxp2/6xfH1WwPHtGpPwv7mbA3qomtBw==",
- "dev": true,
- "dependencies": {
- "@docsearch/css": "3.8.2",
- "@docsearch/js": "3.8.2",
- "@iconify-json/simple-icons": "^1.2.21",
- "@shikijs/core": "^2.1.0",
- "@shikijs/transformers": "^2.1.0",
- "@shikijs/types": "^2.1.0",
- "@types/markdown-it": "^14.1.2",
- "@vitejs/plugin-vue": "^5.2.1",
- "@vue/devtools-api": "^7.7.0",
- "@vue/shared": "^3.5.13",
- "@vueuse/core": "^12.4.0",
- "@vueuse/integrations": "^12.4.0",
- "focus-trap": "^7.6.4",
- "mark.js": "8.11.1",
- "minisearch": "^7.1.1",
- "shiki": "^2.1.0",
- "vite": "^5.4.14",
- "vue": "^3.5.13"
- },
+ "node_modules/shelljs/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "license": "ISC",
"bin": {
- "vitepress": "bin/vitepress.js"
- },
- "peerDependencies": {
- "markdown-it-mathjax3": "^4",
- "postcss": "^8"
- },
- "peerDependenciesMeta": {
- "markdown-it-mathjax3": {
- "optional": true
- },
- "postcss": {
- "optional": true
- }
+ "semver": "bin/semver"
}
},
- "node_modules/vitepress-plugin-google-analytics": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/vitepress-plugin-google-analytics/-/vitepress-plugin-google-analytics-1.0.2.tgz",
- "integrity": "sha512-ri8bFUAmt3c/DtPrALauGBIUr2gIJ11c1qNRhwd3/+aiuYZBfQpOosSxcO1AswgwRxP9FwBS6Z7jgdDVyXb2hA==",
- "dev": true
- },
- "node_modules/vitepress-plugin-search": {
- "version": "1.0.4-alpha.22",
- "resolved": "https://registry.npmjs.org/vitepress-plugin-search/-/vitepress-plugin-search-1.0.4-alpha.22.tgz",
- "integrity": "sha512-IAOEJu+kjVY+0pb6/PeRjIbr175HFFbnMdLmLjqcy7VWxkabIRZbLoQL1VUYDZl804o/Or+GaX02gsiMOnVxFA==",
+ "node_modules/shelljs/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/flexsearch": "^0.7.3",
- "@types/markdown-it": "^12.2.3",
- "glob-to-regexp": "^0.4.1",
- "markdown-it": "^13.0.1"
+ "shebang-regex": "^1.0.0"
},
"engines": {
- "node": "^14.13.1 || ^16.7.0 || >=18"
- },
- "peerDependencies": {
- "flexsearch": "^0.7.31",
- "vitepress": "^1.0.0-rc.35",
- "vue": "3"
- }
- },
- "node_modules/vitepress-plugin-search/node_modules/@types/markdown-it": {
- "version": "12.2.3",
- "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz",
- "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==",
- "dev": true,
- "dependencies": {
- "@types/linkify-it": "*",
- "@types/mdurl": "*"
+ "node": ">=0.10.0"
}
},
- "node_modules/vitepress-plugin-search/node_modules/entities": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
- "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+ "node_modules/shelljs/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
+ "node": ">=0.10.0"
}
},
- "node_modules/vitepress-plugin-search/node_modules/linkify-it": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz",
- "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==",
+ "node_modules/shelljs/node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "uc.micro": "^1.0.1"
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
}
},
- "node_modules/vitepress-plugin-search/node_modules/markdown-it": {
- "version": "13.0.2",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz",
- "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==",
+ "node_modules/shx": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/shx/-/shx-0.4.0.tgz",
+ "integrity": "sha512-Z0KixSIlGPpijKgcH6oCMCbltPImvaKy0sGH8AkLRXw1KyzpKtaCTizP2xen+hNDqVF4xxgvA0KXSb9o4Q6hnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "argparse": "^2.0.1",
- "entities": "~3.0.1",
- "linkify-it": "^4.0.1",
- "mdurl": "^1.0.1",
- "uc.micro": "^1.0.5"
+ "minimist": "^1.2.8",
+ "shelljs": "^0.9.2"
},
"bin": {
- "markdown-it": "bin/markdown-it.js"
+ "shx": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/vitepress-plugin-search/node_modules/mdurl": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
- "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
- "dev": true
- },
- "node_modules/vitepress-plugin-search/node_modules/uc.micro": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
- "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
- "dev": true
- },
- "node_modules/vitepress/node_modules/@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
- "cpu": [
- "ppc64"
- ],
+ "node_modules/siginfo": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
"dev": true,
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=12"
- }
+ "license": "ISC"
},
- "node_modules/vitepress/node_modules/@esbuild/android-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
- "cpu": [
- "arm"
- ],
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "license": "ISC"
+ },
+ "node_modules/sigstore": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz",
+ "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==",
"dev": true,
- "optional": true,
- "os": [
- "android"
- ],
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@sigstore/bundle": "^2.3.2",
+ "@sigstore/core": "^1.0.0",
+ "@sigstore/protobuf-specs": "^0.3.2",
+ "@sigstore/sign": "^2.3.2",
+ "@sigstore/tuf": "^2.3.4",
+ "@sigstore/verify": "^1.2.1"
+ },
"engines": {
- "node": ">=12"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/vitepress/node_modules/@esbuild/android-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
- "optional": true,
- "os": [
- "android"
- ],
+ "license": "MIT",
"engines": {
- "node": ">=12"
+ "node": ">=8"
}
},
- "node_modules/vitepress/node_modules/@esbuild/android-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
- "cpu": [
- "x64"
- ],
+ "node_modules/smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
"dev": true,
- "optional": true,
- "os": [
- "android"
- ],
+ "license": "MIT",
"engines": {
- "node": ">=12"
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
}
},
- "node_modules/vitepress/node_modules/@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/socks": {
+ "version": "2.8.7",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz",
+ "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==",
"dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
+ "license": "MIT",
+ "dependencies": {
+ "ip-address": "^10.0.1",
+ "smart-buffer": "^4.2.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">= 10.0.0",
+ "npm": ">= 3.0.0"
}
},
- "node_modules/vitepress/node_modules/@esbuild/darwin-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
- "cpu": [
- "x64"
- ],
+ "node_modules/socks-proxy-agent": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz",
+ "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==",
"dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.2",
+ "debug": "^4.3.4",
+ "socks": "^2.8.3"
+ },
"engines": {
- "node": ">=12"
+ "node": ">= 14"
}
},
- "node_modules/vitepress/node_modules/@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/sort-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
+ "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==",
"dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-obj": "^1.0.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=4"
}
},
- "node_modules/vitepress/node_modules/@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
- "cpu": [
- "x64"
- ],
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
+ "license": "BSD-3-Clause",
"engines": {
- "node": ">=12"
+ "node": ">=0.10.0"
}
},
- "node_modules/vitepress/node_modules/@esbuild/linux-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
- "cpu": [
- "arm"
- ],
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "license": "BSD-3-Clause",
"engines": {
- "node": ">=12"
+ "node": ">=0.10.0"
}
},
- "node_modules/vitepress/node_modules/@esbuild/linux-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
}
},
- "node_modules/vitepress/node_modules/@esbuild/linux-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
- "cpu": [
- "ia32"
- ],
+ "node_modules/spdx-exceptions": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
+ "license": "CC-BY-3.0"
},
- "node_modules/vitepress/node_modules/@esbuild/linux-loong64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
- "cpu": [
- "loong64"
- ],
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
+ "license": "MIT",
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
}
},
- "node_modules/vitepress/node_modules/@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
- "cpu": [
- "mips64el"
- ],
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.23",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz",
+ "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
+ "license": "CC0-1.0"
},
- "node_modules/vitepress/node_modules/@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
- "cpu": [
- "ppc64"
- ],
+ "node_modules/split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "license": "MIT",
+ "dependencies": {
+ "through": "2"
+ },
"engines": {
- "node": ">=12"
+ "node": "*"
}
},
- "node_modules/vitepress/node_modules/@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
- "cpu": [
- "riscv64"
- ],
+ "node_modules/split2": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
+ "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
+ "license": "ISC",
+ "dependencies": {
+ "readable-stream": "^3.0.0"
}
},
- "node_modules/vitepress/node_modules/@esbuild/linux-s390x": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
- "cpu": [
- "s390x"
- ],
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/ssri": {
+ "version": "10.0.6",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz",
+ "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.3"
+ },
"engines": {
- "node": ">=12"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/vitepress/node_modules/@esbuild/linux-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
- "cpu": [
- "x64"
- ],
+ "node_modules/stackback": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
+ "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "license": "MIT"
+ },
+ "node_modules/std-env": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz",
+ "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=8"
}
},
- "node_modules/vitepress/node_modules/@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
- "cpu": [
- "x64"
- ],
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
- "optional": true,
- "os": [
- "netbsd"
- ],
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=8"
}
},
- "node_modules/vitepress/node_modules/@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "openbsd"
- ],
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=8"
}
},
- "node_modules/vitepress/node_modules/@esbuild/sunos-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
- "cpu": [
- "x64"
- ],
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
- "optional": true,
- "os": [
- "sunos"
- ],
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=8"
}
},
- "node_modules/vitepress/node_modules/@esbuild/win32-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/strip-bom": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
"dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
+ "license": "MIT",
"engines": {
- "node": ">=12"
+ "node": ">=8"
}
},
- "node_modules/vitepress/node_modules/@esbuild/win32-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
- "cpu": [
- "ia32"
- ],
+ "node_modules/strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
"dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
+ "license": "MIT",
"engines": {
- "node": ">=12"
+ "node": ">=0.10.0"
}
},
- "node_modules/vitepress/node_modules/@esbuild/win32-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
- "cpu": [
- "x64"
- ],
+ "node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
"dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
+ "license": "MIT",
"engines": {
- "node": ">=12"
+ "node": ">=6"
}
},
- "node_modules/vitepress/node_modules/@shikijs/core": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-2.5.0.tgz",
- "integrity": "sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==",
+ "node_modules/strip-indent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@shikijs/engine-javascript": "2.5.0",
- "@shikijs/engine-oniguruma": "2.5.0",
- "@shikijs/types": "2.5.0",
- "@shikijs/vscode-textmate": "^10.0.2",
- "@types/hast": "^3.0.4",
- "hast-util-to-html": "^9.0.4"
+ "min-indent": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/vitepress/node_modules/@shikijs/engine-javascript": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-2.5.0.tgz",
- "integrity": "sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==",
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true,
- "dependencies": {
- "@shikijs/types": "2.5.0",
- "@shikijs/vscode-textmate": "^10.0.2",
- "oniguruma-to-es": "^3.1.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/vitepress/node_modules/@shikijs/engine-oniguruma": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-2.5.0.tgz",
- "integrity": "sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==",
+ "node_modules/strip-literal": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz",
+ "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@shikijs/types": "2.5.0",
- "@shikijs/vscode-textmate": "^10.0.2"
+ "js-tokens": "^9.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
}
},
- "node_modules/vitepress/node_modules/@shikijs/langs": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-2.5.0.tgz",
- "integrity": "sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==",
+ "node_modules/strip-literal/node_modules/js-tokens": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
+ "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
"dev": true,
- "dependencies": {
- "@shikijs/types": "2.5.0"
- }
+ "license": "MIT"
},
- "node_modules/vitepress/node_modules/@shikijs/themes": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-2.5.0.tgz",
- "integrity": "sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==",
- "dev": true,
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "license": "MIT",
"dependencies": {
- "@shikijs/types": "2.5.0"
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/vitepress/node_modules/@shikijs/types": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-2.5.0.tgz",
- "integrity": "sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==",
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true,
- "dependencies": {
- "@shikijs/vscode-textmate": "^10.0.2",
- "@types/hast": "^3.0.4"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/vitepress/node_modules/esbuild": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "node_modules/synckit": {
+ "version": "0.11.12",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz",
+ "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==",
"dev": true,
- "hasInstallScript": true,
- "bin": {
- "esbuild": "bin/esbuild"
+ "license": "MIT",
+ "dependencies": {
+ "@pkgr/core": "^0.2.9"
},
"engines": {
- "node": ">=12"
+ "node": "^14.18.0 || >=16.0.0"
},
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
- }
- },
- "node_modules/vitepress/node_modules/oniguruma-to-es": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz",
- "integrity": "sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==",
+ "funding": {
+ "url": "https://opencollective.com/synckit"
+ }
+ },
+ "node_modules/tar": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
+ "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
+ "deprecated": "Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "emoji-regex-xs": "^1.0.0",
- "regex": "^6.0.1",
- "regex-recursion": "^6.0.2"
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/vitepress/node_modules/shiki": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.5.0.tgz",
- "integrity": "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==",
+ "node_modules/tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@shikijs/core": "2.5.0",
- "@shikijs/engine-javascript": "2.5.0",
- "@shikijs/engine-oniguruma": "2.5.0",
- "@shikijs/langs": "2.5.0",
- "@shikijs/themes": "2.5.0",
- "@shikijs/types": "2.5.0",
- "@shikijs/vscode-textmate": "^10.0.2",
- "@types/hast": "^3.0.4"
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/vitepress/node_modules/vite": {
- "version": "5.4.19",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz",
- "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==",
+ "node_modules/tar/node_modules/fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "esbuild": "^0.21.3",
- "postcss": "^8.4.43",
- "rollup": "^4.20.0"
- },
- "bin": {
- "vite": "bin/vite.js"
+ "minipass": "^3.0.0"
},
"engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^18.0.0 || >=20.0.0",
- "less": "*",
- "lightningcss": "^1.21.0",
- "sass": "*",
- "sass-embedded": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.4.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- }
+ "node": ">= 8"
+ }
+ },
+ "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tar/node_modules/minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/vue": {
- "version": "3.5.18",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.18.tgz",
- "integrity": "sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==",
+ "node_modules/temp-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
+ "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==",
+ "dev": true,
"license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/test-exclude": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.2.tgz",
+ "integrity": "sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "@vue/compiler-dom": "3.5.18",
- "@vue/compiler-sfc": "3.5.18",
- "@vue/runtime-dom": "3.5.18",
- "@vue/server-renderer": "3.5.18",
- "@vue/shared": "3.5.18"
- },
- "peerDependencies": {
- "typescript": "*"
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^10.4.1",
+ "minimatch": "^10.2.2"
},
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/vue-flow-layout": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/vue-flow-layout/-/vue-flow-layout-0.1.1.tgz",
- "integrity": "sha512-JdgRRUVrN0Y2GosA0M68DEbKlXMqJ7FQgsK8CjQD2vxvNSqAU6PZEpi4cfcTVtfM2GVOMjHo7GKKLbXxOBqDqA==",
+ "node_modules/text-extensions": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz",
+ "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==",
"dev": true,
"license": "MIT",
- "peerDependencies": {
- "vue": "^3.4.37"
+ "engines": {
+ "node": ">=0.10"
}
},
- "node_modules/walk-up-path": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz",
- "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==",
- "dev": true
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/watchpack": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
- "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
+ "node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.1.2"
- },
- "engines": {
- "node": ">=10.13.0"
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
}
},
- "node_modules/wbuf": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
- "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+ "node_modules/through2/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "minimalistic-assert": "^1.0.0"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
- "node_modules/wcwidth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
- "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "node_modules/through2/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/through2/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "defaults": "^1.0.3"
+ "safe-buffer": "~5.1.0"
}
},
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
+ "node_modules/tinybench": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
+ "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tinyexec": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
+ "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/webpack": {
- "version": "5.101.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.0.tgz",
- "integrity": "sha512-B4t+nJqytPeuZlHuIKTbalhljIFXeNRqrUGAQgTGlfOl2lXXKXw+yZu6bicycP+PUlM44CxBjCFD6aciKFT3LQ==",
+ "node_modules/tinyglobby": {
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@types/eslint-scope": "^3.7.7",
- "@types/estree": "^1.0.8",
- "@types/json-schema": "^7.0.15",
- "@webassemblyjs/ast": "^1.14.1",
- "@webassemblyjs/wasm-edit": "^1.14.1",
- "@webassemblyjs/wasm-parser": "^1.14.1",
- "acorn": "^8.15.0",
- "acorn-import-phases": "^1.0.3",
- "browserslist": "^4.24.0",
- "chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.17.2",
- "es-module-lexer": "^1.2.1",
- "eslint-scope": "5.1.1",
- "events": "^3.2.0",
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.2.11",
- "json-parse-even-better-errors": "^2.3.1",
- "loader-runner": "^4.2.0",
- "mime-types": "^2.1.27",
- "neo-async": "^2.6.2",
- "schema-utils": "^4.3.2",
- "tapable": "^2.1.1",
- "terser-webpack-plugin": "^5.3.11",
- "watchpack": "^2.4.1",
- "webpack-sources": "^3.3.3"
- },
- "bin": {
- "webpack": "bin/webpack.js"
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
},
"engines": {
- "node": ">=10.13.0"
+ "node": ">=12.0.0"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependenciesMeta": {
- "webpack-cli": {
- "optional": true
- }
+ "url": "https://github.com/sponsors/SuperchupuDev"
}
},
- "node_modules/webpack-cli": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz",
- "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==",
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
"dev": true,
- "dependencies": {
- "@discoveryjs/json-ext": "^0.6.1",
- "@webpack-cli/configtest": "^3.0.1",
- "@webpack-cli/info": "^3.0.1",
- "@webpack-cli/serve": "^3.0.1",
- "colorette": "^2.0.14",
- "commander": "^12.1.0",
- "cross-spawn": "^7.0.3",
- "envinfo": "^7.14.0",
- "fastest-levenshtein": "^1.0.12",
- "import-local": "^3.0.2",
- "interpret": "^3.1.1",
- "rechoir": "^0.8.0",
- "webpack-merge": "^6.0.1"
- },
- "bin": {
- "webpack-cli": "bin/cli.js"
- },
+ "license": "MIT",
"engines": {
- "node": ">=18.12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
+ "node": ">=12.0.0"
},
"peerDependencies": {
- "webpack": "^5.82.0"
+ "picomatch": "^3 || ^4"
},
"peerDependenciesMeta": {
- "webpack-bundle-analyzer": {
- "optional": true
- },
- "webpack-dev-server": {
+ "picomatch": {
"optional": true
}
}
},
- "node_modules/webpack-cli/node_modules/envinfo": {
- "version": "7.14.0",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz",
- "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==",
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
- "bin": {
- "envinfo": "dist/cli.js"
- },
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/webpack-cli/node_modules/interpret": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
- "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
+ "node_modules/tinypool": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz",
+ "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=10.13.0"
+ "node": "^18.0.0 || >=20.0.0"
}
},
- "node_modules/webpack-cli/node_modules/rechoir": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
- "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
+ "node_modules/tinyrainbow": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz",
+ "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==",
"dev": true,
- "dependencies": {
- "resolve": "^1.20.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 10.13.0"
+ "node": ">=14.0.0"
}
},
- "node_modules/webpack-merge": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz",
- "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==",
+ "node_modules/tinyspy": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz",
+ "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==",
"dev": true,
- "dependencies": {
- "clone-deep": "^4.0.1",
- "flat": "^5.0.2",
- "wildcard": "^2.0.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=18.0.0"
+ "node": ">=14.0.0"
}
},
- "node_modules/webpack-sources": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz",
- "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==",
+ "node_modules/tmp": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz",
+ "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=10.13.0"
+ "node": ">=14.14"
}
},
- "node_modules/webpack-virtual-modules": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
- "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==",
- "dev": true
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
},
- "node_modules/webpack/node_modules/@types/estree": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
- "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
"dev": true,
"license": "MIT"
},
- "node_modules/webpack/node_modules/eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "node_modules/treeverse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-3.0.0.tgz",
+ "integrity": "sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==",
"dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- },
+ "license": "ISC",
"engines": {
- "node": ">=8.0.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/webpack/node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "node_modules/trim-newlines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
+ "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4.0"
+ "node": ">=8"
}
},
- "node_modules/webpack/node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
+ "node_modules/ts-api-utils": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz",
+ "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.12"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4"
+ }
},
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "node_modules/tsconfig-paths": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
+ "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
+ "json5": "^2.2.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "node_modules/tsconfig-paths/node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/tsx": {
+ "version": "4.21.0",
+ "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz",
+ "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==",
+ "license": "MIT",
"dependencies": {
- "isexe": "^2.0.0"
+ "esbuild": "~0.27.0",
+ "get-tsconfig": "^4.7.5"
},
"bin": {
- "node-which": "bin/node-which"
+ "tsx": "dist/cli.mjs"
},
"engines": {
- "node": ">= 8"
+ "node": ">=18.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
}
},
- "node_modules/which-boxed-primitive": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
- "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
+ "node_modules/tuf-js": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz",
+ "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-bigint": "^1.1.0",
- "is-boolean-object": "^1.2.1",
- "is-number-object": "^1.1.1",
- "is-string": "^1.1.1",
- "is-symbol": "^1.1.1"
+ "@tufjs/models": "2.0.1",
+ "debug": "^4.3.4",
+ "make-fetch-happen": "^13.0.1"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/which-builtin-type": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
- "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bound": "^1.0.2",
- "function.prototype.name": "^1.1.6",
- "has-tostringtag": "^1.0.2",
- "is-async-function": "^2.0.0",
- "is-date-object": "^1.1.0",
- "is-finalizationregistry": "^1.1.0",
- "is-generator-function": "^1.0.10",
- "is-regex": "^1.2.1",
- "is-weakref": "^1.0.2",
- "isarray": "^2.0.5",
- "which-boxed-primitive": "^1.1.0",
- "which-collection": "^1.0.2",
- "which-typed-array": "^1.1.16"
+ "prelude-ls": "^1.2.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/which-builtin-type/node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/which-collection": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
- "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
+ "node_modules/typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
- "dependencies": {
- "is-map": "^2.0.3",
- "is-set": "^2.0.3",
- "is-weakmap": "^2.0.2",
- "is-weakset": "^2.0.3"
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=14.17"
}
},
- "node_modules/which-typed-array": {
- "version": "1.1.19",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
- "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
+ "node_modules/uglify-js": {
+ "version": "3.19.3",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
+ "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
"dev": true,
- "dependencies": {
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.4",
- "for-each": "^0.3.5",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "has-tostringtag": "^1.0.2"
+ "license": "BSD-2-Clause",
+ "optional": true,
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=0.8.0"
}
},
- "node_modules/wide-align": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+ "node_modules/undici-types": {
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
+ "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
+ "license": "MIT"
+ },
+ "node_modules/unique-filename": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz",
+ "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
+ "unique-slug": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/widest-line": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz",
- "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==",
+ "node_modules/unique-slug": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz",
+ "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "string-width": "^5.0.1"
+ "imurmurhash": "^0.1.4"
},
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/widest-line/node_modules/ansi-regex": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "node_modules/universal-user-agent": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
+ "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ "node": ">= 10.0.0"
}
},
- "node_modules/widest-line/node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
- },
- "node_modules/widest-line/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "node_modules/upath": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz",
+ "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==",
"dev": true,
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=4",
+ "yarn": "*"
}
},
- "node_modules/widest-line/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ "punycode": "^2.1.0"
}
},
- "node_modules/wildcard": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
- "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
- "dev": true
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "license": "MIT"
},
- "node_modules/word-wrap": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
- "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "node_modules/uuid": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
+ "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
+ "dev": true,
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/validate-npm-package-name": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
+ "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": ">=0.10.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dev": true
- },
- "node_modules/workbox-background-sync": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz",
- "integrity": "sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==",
- "dev": true,
- "dependencies": {
- "idb": "^7.0.1",
- "workbox-core": "7.3.0"
- }
- },
- "node_modules/workbox-broadcast-update": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz",
- "integrity": "sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==",
- "dev": true,
- "dependencies": {
- "workbox-core": "7.3.0"
- }
- },
- "node_modules/workbox-build": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.3.0.tgz",
- "integrity": "sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==",
- "dev": true,
- "dependencies": {
- "@apideck/better-ajv-errors": "^0.3.1",
- "@babel/core": "^7.24.4",
- "@babel/preset-env": "^7.11.0",
- "@babel/runtime": "^7.11.2",
- "@rollup/plugin-babel": "^5.2.0",
- "@rollup/plugin-node-resolve": "^15.2.3",
- "@rollup/plugin-replace": "^2.4.1",
- "@rollup/plugin-terser": "^0.4.3",
- "@surma/rollup-plugin-off-main-thread": "^2.2.3",
- "ajv": "^8.6.0",
- "common-tags": "^1.8.0",
- "fast-json-stable-stringify": "^2.1.0",
- "fs-extra": "^9.0.1",
- "glob": "^7.1.6",
- "lodash": "^4.17.20",
- "pretty-bytes": "^5.3.0",
- "rollup": "^2.43.1",
- "source-map": "^0.8.0-beta.0",
- "stringify-object": "^3.3.0",
- "strip-comments": "^2.0.1",
- "tempy": "^0.6.0",
- "upath": "^1.2.0",
- "workbox-background-sync": "7.3.0",
- "workbox-broadcast-update": "7.3.0",
- "workbox-cacheable-response": "7.3.0",
- "workbox-core": "7.3.0",
- "workbox-expiration": "7.3.0",
- "workbox-google-analytics": "7.3.0",
- "workbox-navigation-preload": "7.3.0",
- "workbox-precaching": "7.3.0",
- "workbox-range-requests": "7.3.0",
- "workbox-recipes": "7.3.0",
- "workbox-routing": "7.3.0",
- "workbox-strategies": "7.3.0",
- "workbox-streams": "7.3.0",
- "workbox-sw": "7.3.0",
- "workbox-window": "7.3.0"
+ "node_modules/vite": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz",
+ "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.27.0",
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3",
+ "postcss": "^8.5.6",
+ "rollup": "^4.43.0",
+ "tinyglobby": "^0.2.15"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
},
"engines": {
- "node": ">=16.0.0"
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^20.19.0 || >=22.12.0",
+ "jiti": ">=1.21.0",
+ "less": "^4.0.0",
+ "lightningcss": "^1.21.0",
+ "sass": "^1.70.0",
+ "sass-embedded": "^1.70.0",
+ "stylus": ">=0.54.8",
+ "sugarss": "^5.0.0",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
}
},
- "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz",
- "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==",
+ "node_modules/vite-node": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz",
+ "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "json-schema": "^0.4.0",
- "jsonpointer": "^5.0.0",
- "leven": "^3.1.0"
+ "cac": "^6.7.14",
+ "debug": "^4.4.1",
+ "es-module-lexer": "^1.7.0",
+ "pathe": "^2.0.3",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
+ },
+ "bin": {
+ "vite-node": "vite-node.mjs"
},
"engines": {
- "node": ">=10"
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
},
- "peerDependencies": {
- "ajv": ">=8"
+ "funding": {
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/workbox-build/node_modules/@rollup/plugin-babel": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
- "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==",
+ "node_modules/vite/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
"dev": true,
- "dependencies": {
- "@babel/helper-module-imports": "^7.10.4",
- "@rollup/pluginutils": "^3.1.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=12.0.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0",
- "@types/babel__core": "^7.1.9",
- "rollup": "^1.20.0||^2.0.0"
+ "picomatch": "^3 || ^4"
},
"peerDependenciesMeta": {
- "@types/babel__core": {
+ "picomatch": {
"optional": true
}
}
},
- "node_modules/workbox-build/node_modules/@rollup/plugin-replace": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz",
- "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==",
+ "node_modules/vite/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
- "dependencies": {
- "@rollup/pluginutils": "^3.1.0",
- "magic-string": "^0.25.7"
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
},
- "peerDependencies": {
- "rollup": "^1.20.0 || ^2.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/workbox-build/node_modules/@rollup/pluginutils": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
- "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
+ "node_modules/vitest": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz",
+ "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/estree": "0.0.39",
- "estree-walker": "^1.0.1",
- "picomatch": "^2.2.2"
+ "@types/chai": "^5.2.2",
+ "@vitest/expect": "3.2.4",
+ "@vitest/mocker": "3.2.4",
+ "@vitest/pretty-format": "^3.2.4",
+ "@vitest/runner": "3.2.4",
+ "@vitest/snapshot": "3.2.4",
+ "@vitest/spy": "3.2.4",
+ "@vitest/utils": "3.2.4",
+ "chai": "^5.2.0",
+ "debug": "^4.4.1",
+ "expect-type": "^1.2.1",
+ "magic-string": "^0.30.17",
+ "pathe": "^2.0.3",
+ "picomatch": "^4.0.2",
+ "std-env": "^3.9.0",
+ "tinybench": "^2.9.0",
+ "tinyexec": "^0.3.2",
+ "tinyglobby": "^0.2.14",
+ "tinypool": "^1.1.1",
+ "tinyrainbow": "^2.0.0",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0",
+ "vite-node": "3.2.4",
+ "why-is-node-running": "^2.3.0"
+ },
+ "bin": {
+ "vitest": "vitest.mjs"
},
"engines": {
- "node": ">= 8.0.0"
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
},
"peerDependencies": {
- "rollup": "^1.20.0||^2.0.0"
+ "@edge-runtime/vm": "*",
+ "@types/debug": "^4.1.12",
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "@vitest/browser": "3.2.4",
+ "@vitest/ui": "3.2.4",
+ "happy-dom": "*",
+ "jsdom": "*"
+ },
+ "peerDependenciesMeta": {
+ "@edge-runtime/vm": {
+ "optional": true
+ },
+ "@types/debug": {
+ "optional": true
+ },
+ "@types/node": {
+ "optional": true
+ },
+ "@vitest/browser": {
+ "optional": true
+ },
+ "@vitest/ui": {
+ "optional": true
+ },
+ "happy-dom": {
+ "optional": true
+ },
+ "jsdom": {
+ "optional": true
+ }
}
},
- "node_modules/workbox-build/node_modules/@types/estree": {
- "version": "0.0.39",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
- "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
- "dev": true
- },
- "node_modules/workbox-build/node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "node_modules/vitest/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.3",
- "fast-uri": "^3.0.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2"
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/workbox-build/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/walk-up-path": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz",
+ "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==",
"dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
+ "license": "ISC"
},
- "node_modules/workbox-build/node_modules/estree-walker": {
+ "node_modules/wcwidth": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
- "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
- "dev": true
- },
- "node_modules/workbox-build/node_modules/fs-extra": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
- "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "license": "MIT",
"dependencies": {
- "at-least-node": "^1.0.0",
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
+ "defaults": "^1.0.3"
}
},
- "node_modules/workbox-build/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
"dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/workbox-build/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
+ "license": "BSD-2-Clause"
},
- "node_modules/workbox-build/node_modules/magic-string": {
- "version": "0.25.9",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
- "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "sourcemap-codec": "^1.4.8"
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
}
},
- "node_modules/workbox-build/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/workbox-build/node_modules/pretty-bytes": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
- "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
- "dev": true,
- "engines": {
- "node": ">=6"
+ "isexe": "^2.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/workbox-build/node_modules/rollup": {
- "version": "2.79.2",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz",
- "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==",
- "dev": true,
"bin": {
- "rollup": "dist/bin/rollup"
+ "node-which": "bin/node-which"
},
"engines": {
- "node": ">=10.0.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
+ "node": ">= 8"
}
},
- "node_modules/workbox-build/node_modules/source-map": {
- "version": "0.8.0-beta.0",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
- "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
+ "node_modules/why-is-node-running": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
+ "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "whatwg-url": "^7.0.0"
+ "siginfo": "^2.0.0",
+ "stackback": "0.0.2"
+ },
+ "bin": {
+ "why-is-node-running": "cli.js"
},
"engines": {
- "node": ">= 8"
+ "node": ">=8"
}
},
- "node_modules/workbox-build/node_modules/tr46": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
- "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
+ "node_modules/wide-align": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "punycode": "^2.1.0"
+ "string-width": "^1.0.2 || 2 || 3 || 4"
}
},
- "node_modules/workbox-build/node_modules/upath": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
- "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4",
- "yarn": "*"
- }
- },
- "node_modules/workbox-build/node_modules/webidl-conversions": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
- "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
- "dev": true
- },
- "node_modules/workbox-build/node_modules/whatwg-url": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
- "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
- "dev": true,
- "dependencies": {
- "lodash.sortby": "^4.7.0",
- "tr46": "^1.0.1",
- "webidl-conversions": "^4.0.2"
- }
- },
- "node_modules/workbox-cacheable-response": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz",
- "integrity": "sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==",
- "dev": true,
- "dependencies": {
- "workbox-core": "7.3.0"
- }
- },
- "node_modules/workbox-core": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.3.0.tgz",
- "integrity": "sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==",
- "dev": true
- },
- "node_modules/workbox-expiration": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.3.0.tgz",
- "integrity": "sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==",
- "dev": true,
- "dependencies": {
- "idb": "^7.0.1",
- "workbox-core": "7.3.0"
- }
- },
- "node_modules/workbox-google-analytics": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz",
- "integrity": "sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==",
- "dev": true,
- "dependencies": {
- "workbox-background-sync": "7.3.0",
- "workbox-core": "7.3.0",
- "workbox-routing": "7.3.0",
- "workbox-strategies": "7.3.0"
- }
- },
- "node_modules/workbox-navigation-preload": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz",
- "integrity": "sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==",
- "dev": true,
- "dependencies": {
- "workbox-core": "7.3.0"
- }
- },
- "node_modules/workbox-precaching": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.3.0.tgz",
- "integrity": "sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==",
- "dev": true,
- "dependencies": {
- "workbox-core": "7.3.0",
- "workbox-routing": "7.3.0",
- "workbox-strategies": "7.3.0"
- }
- },
- "node_modules/workbox-range-requests": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz",
- "integrity": "sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==",
- "dev": true,
- "dependencies": {
- "workbox-core": "7.3.0"
- }
- },
- "node_modules/workbox-recipes": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.3.0.tgz",
- "integrity": "sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==",
- "dev": true,
- "dependencies": {
- "workbox-cacheable-response": "7.3.0",
- "workbox-core": "7.3.0",
- "workbox-expiration": "7.3.0",
- "workbox-precaching": "7.3.0",
- "workbox-routing": "7.3.0",
- "workbox-strategies": "7.3.0"
- }
- },
- "node_modules/workbox-routing": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.3.0.tgz",
- "integrity": "sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==",
- "dev": true,
- "dependencies": {
- "workbox-core": "7.3.0"
- }
- },
- "node_modules/workbox-strategies": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.3.0.tgz",
- "integrity": "sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==",
- "dev": true,
- "dependencies": {
- "workbox-core": "7.3.0"
- }
- },
- "node_modules/workbox-streams": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.3.0.tgz",
- "integrity": "sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==",
- "dev": true,
- "dependencies": {
- "workbox-core": "7.3.0",
- "workbox-routing": "7.3.0"
- }
- },
- "node_modules/workbox-sw": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.3.0.tgz",
- "integrity": "sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==",
- "dev": true
- },
- "node_modules/workbox-window": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.3.0.tgz",
- "integrity": "sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==",
- "dev": true,
- "dependencies": {
- "@types/trusted-types": "^2.0.2",
- "workbox-core": "7.3.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/workerpool": {
- "version": "9.3.3",
- "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-9.3.3.tgz",
- "integrity": "sha512-slxCaKbYjEdFT/o2rH9xS1hf4uRDch1w7Uo+apxhZ+sf/1d9e0ZVkn42kPNGP2dgjIx6YFvSevj0zHvbWe2jdw==",
+ "node_modules/wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
"dev": true,
- "license": "Apache-2.0"
+ "license": "MIT"
},
"node_modules/wrap-ansi": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
"integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -24881,6 +11310,7 @@
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -24898,6 +11328,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -24912,6 +11343,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -24925,13 +11357,16 @@
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/write-file-atomic": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
"integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"imurmurhash": "^0.1.4",
"signal-exit": "^4.0.1"
@@ -24940,11 +11375,25 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
+ "node_modules/write-file-atomic/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/write-json-file": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz",
"integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"detect-indent": "^5.0.0",
"graceful-fs": "^4.1.15",
@@ -24962,6 +11411,7 @@
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
"integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"pify": "^4.0.1",
"semver": "^5.6.0"
@@ -24975,6 +11425,7 @@
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -24984,21 +11435,17 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver"
}
},
- "node_modules/write-json-file/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
"node_modules/write-json-file/node_modules/write-file-atomic": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
"integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"graceful-fs": "^4.1.11",
"imurmurhash": "^0.1.4",
@@ -25010,6 +11457,7 @@
"resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz",
"integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"sort-keys": "^2.0.0",
"type-fest": "^0.4.1",
@@ -25024,56 +11472,17 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz",
"integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=6"
}
},
- "node_modules/ws": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
- "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/xdg-basedir": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz",
- "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/xmlhttprequest-ssl": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz",
- "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
"node_modules/xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.4"
}
@@ -25083,6 +11492,7 @@
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=10"
}
@@ -25091,18 +11501,23 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/yaml": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz",
- "integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==",
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz",
+ "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==",
"dev": true,
+ "license": "ISC",
"bin": {
"yaml": "bin.mjs"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 14.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/eemeli"
}
},
"node_modules/yargs": {
@@ -25110,6 +11525,7 @@
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
@@ -25128,85 +11544,17 @@
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=12"
}
},
- "node_modules/yargs-unparser": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
- "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
- "dev": true,
- "dependencies": {
- "camelcase": "^6.0.0",
- "decamelize": "^4.0.0",
- "flat": "^5.0.2",
- "is-plain-obj": "^2.1.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs-unparser/node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/yargs-unparser/node_modules/decamelize": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
- "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/yargs-unparser/node_modules/is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yauzl": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.2.0.tgz",
- "integrity": "sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==",
- "dev": true,
- "dependencies": {
- "buffer-crc32": "~0.2.3",
- "pend": "~1.2.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yn": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -25214,384 +11562,36 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/yoctocolors-cjs": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz",
- "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/zod": {
- "version": "3.24.3",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.3.tgz",
- "integrity": "sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- },
- "node_modules/zwitch": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
- "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "packages/adapter-commons": {
- "name": "@feathersjs/adapter-commons",
- "version": "5.0.34",
- "license": "MIT",
- "dependencies": {
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34"
- },
- "devDependencies": {
- "@types/mocha": "^10.0.10",
- "@types/mongodb": "^4.0.6",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "mongodb": "^6.18.0",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 12"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/feathers"
- }
- },
- "packages/adapter-tests": {
- "name": "@feathersjs/adapter-tests",
- "version": "5.0.34",
- "license": "MIT",
- "devDependencies": {
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 12"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/feathers"
- }
- },
- "packages/authentication": {
- "name": "@feathersjs/authentication",
- "version": "5.0.34",
- "license": "MIT",
- "dependencies": {
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "@feathersjs/hooks": "^0.9.0",
- "@feathersjs/schema": "^5.0.34",
- "@feathersjs/transport-commons": "^5.0.34",
- "@types/jsonwebtoken": "^9.0.10",
- "jsonwebtoken": "^9.0.2",
- "lodash": "^4.17.21",
- "long-timeout": "^0.1.1",
- "uuid": "^11.1.0"
- },
- "devDependencies": {
- "@feathersjs/memory": "^5.0.34",
- "@types/lodash": "^4.17.20",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "@types/uuid": "^10.0.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
- }
- },
- "packages/authentication-client": {
- "name": "@feathersjs/authentication-client",
- "version": "5.0.34",
- "license": "MIT",
- "dependencies": {
- "@feathersjs/authentication": "^5.0.34",
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34"
- },
- "devDependencies": {
- "@feathersjs/authentication-local": "^5.0.34",
- "@feathersjs/express": "^5.0.34",
- "@feathersjs/memory": "^5.0.34",
- "@feathersjs/rest-client": "^5.0.34",
- "@feathersjs/socketio": "^5.0.34",
- "@feathersjs/socketio-client": "^5.0.34",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "axios": "^1.11.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
- }
- },
- "packages/authentication-local": {
- "name": "@feathersjs/authentication-local",
- "version": "5.0.34",
- "license": "MIT",
- "dependencies": {
- "@feathersjs/authentication": "^5.0.34",
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "bcryptjs": "^3.0.2",
- "lodash": "^4.17.21"
- },
- "devDependencies": {
- "@feathersjs/memory": "^5.0.34",
- "@feathersjs/schema": "^5.0.34",
- "@types/bcryptjs": "^2.4.6",
- "@types/lodash": "^4.17.20",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
- }
- },
- "packages/authentication-oauth": {
- "name": "@feathersjs/authentication-oauth",
- "version": "5.0.34",
- "license": "MIT",
- "dependencies": {
- "@feathersjs/authentication": "^5.0.34",
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/express": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "@feathersjs/koa": "^5.0.34",
- "@feathersjs/schema": "^5.0.34",
- "cookie-session": "^2.1.1",
- "grant": "^5.4.24",
- "koa-session": "^7.0.2",
- "qs": "^6.14.0"
- },
- "devDependencies": {
- "@feathersjs/memory": "^5.0.34",
- "@types/cookie-session": "^2.0.49",
- "@types/express": "^4.17.21",
- "@types/koa-session": "^6.4.5",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "@types/tough-cookie": "^4.0.5",
- "axios": "^1.11.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "tough-cookie": "^5.1.2",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
- }
- },
- "packages/authentication/node_modules/uuid": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
- "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "bin": {
- "uuid": "dist/esm/bin/uuid"
- }
- },
- "packages/cli": {
- "name": "@feathersjs/cli",
- "version": "5.0.34",
- "license": "MIT",
- "dependencies": {
- "@feathersjs/generators": "^5.0.34",
- "chalk": "^5.4.1",
- "commander": "^13.1.0"
- },
- "bin": {
- "feathers": "bin/feathers.js"
- },
- "devDependencies": {
- "@feathersjs/adapter-commons": "^5.0.34",
- "@feathersjs/authentication": "^5.0.34",
- "@feathersjs/authentication-client": "^5.0.34",
- "@feathersjs/authentication-local": "^5.0.34",
- "@feathersjs/authentication-oauth": "^5.0.34",
- "@feathersjs/configuration": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/express": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "@feathersjs/knex": "^5.0.34",
- "@feathersjs/koa": "^5.0.34",
- "@feathersjs/mongodb": "^5.0.34",
- "@feathersjs/rest-client": "^5.0.34",
- "@feathersjs/schema": "^5.0.34",
- "@feathersjs/socketio": "^5.0.34",
- "@feathersjs/transport-commons": "^5.0.34",
- "@feathersjs/typebox": "^5.0.34",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "@types/prettier": "^2.7.3",
- "axios": "^1.11.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "type-fest": "^4.41.0",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
- }
- },
- "packages/cli/node_modules/commander": {
- "version": "13.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz",
- "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==",
- "engines": {
- "node": ">=18"
- }
- },
- "packages/client": {
- "name": "@feathersjs/client",
- "version": "5.0.34",
- "license": "MIT",
- "dependencies": {
- "@feathersjs/authentication-client": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "@feathersjs/rest-client": "^5.0.34",
- "@feathersjs/socketio-client": "^5.0.34"
- },
- "devDependencies": {
- "@babel/core": "^7.28.0",
- "@babel/preset-env": "^7.28.0",
- "@feathersjs/express": "^5.0.34",
- "@feathersjs/memory": "^5.0.34",
- "@feathersjs/socketio": "^5.0.34",
- "@feathersjs/tests": "^5.0.34",
- "babel-loader": "^10.0.0",
- "mocha": "^11.7.1",
- "node-fetch": "^2.6.1",
- "shx": "^0.4.0",
- "socket.io-client": "^4.8.1",
- "superagent": "^10.2.3",
- "ts-loader": "^9.5.2",
- "typescript": "^5.9.2",
- "webpack": "^5.101.0",
- "webpack-cli": "^6.0.1",
- "webpack-merge": "^6.0.1"
- },
- "engines": {
- "node": ">= 12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
- }
- },
- "packages/commons": {
- "name": "@feathersjs/commons",
- "version": "5.0.34",
- "license": "MIT",
- "devDependencies": {
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
- }
- },
- "packages/configuration": {
- "name": "@feathersjs/configuration",
- "version": "5.0.34",
- "license": "MIT",
- "dependencies": {
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "@feathersjs/schema": "^5.0.34",
- "@types/config": "^3.3.5",
- "config": "^4.1.0"
- },
- "devDependencies": {
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
+ "node_modules/yoctocolors-cjs": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz",
+ "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==",
+ "license": "MIT",
"engines": {
- "node": ">= 12"
+ "node": ">=18"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"packages/create-feathers": {
- "version": "5.0.34",
+ "version": "6.0.0-pre.11",
"license": "MIT",
"dependencies": {
- "@feathersjs/cli": "^5.0.34"
+ "@featherscloud/pinion": "^0.5.5",
+ "commander": "^12.1.0",
+ "type-fest": "^0.21.3"
},
"bin": {
"create-feathers": "bin/create-feathers.js"
},
+ "devDependencies": {
+ "@types/node": "^24.1.0",
+ "@vitest/coverage-v8": "^3.2.4",
+ "shx": "^0.4.0",
+ "typescript": "^5.8.0",
+ "vitest": "^3.2.4"
+ },
"engines": {
"node": ">= 18"
},
@@ -25600,498 +11600,347 @@
"url": "https://github.com/sponsors/daffl"
}
},
- "packages/errors": {
- "name": "@feathersjs/errors",
- "version": "5.0.34",
+ "packages/create-feathers/node_modules/@types/node": {
+ "version": "24.12.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.0.tgz",
+ "integrity": "sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==",
+ "dev": true,
"license": "MIT",
- "devDependencies": {
- "@feathersjs/feathers": "^5.0.34",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 12"
+ "dependencies": {
+ "undici-types": "~7.16.0"
}
},
- "packages/express": {
- "name": "@feathersjs/express",
- "version": "5.0.34",
+ "packages/create-feathers/node_modules/undici-types": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
+ "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "packages/feathers": {
+ "version": "6.0.0-pre.11",
"license": "MIT",
- "dependencies": {
- "@feathersjs/authentication": "^5.0.34",
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "@feathersjs/transport-commons": "^5.0.34",
- "@types/compression": "^1.8.1",
- "@types/cors": "^2.8.19",
- "@types/express": "^4.17.21",
- "@types/express-serve-static-core": "^4.19.5",
- "compression": "^1.8.1",
- "cors": "^2.8.5",
- "express": "^4.21.2"
- },
"devDependencies": {
- "@feathersjs/authentication-local": "^5.0.34",
- "@feathersjs/tests": "^5.0.34",
- "@types/lodash": "^4.17.20",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "axios": "^1.11.0",
- "lodash": "^4.17.21",
- "mocha": "^11.7.1",
+ "@types/node": "^25.5.0",
+ "@vitest/coverage-v8": "^4.1.0",
"shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
+ "typescript": "^5.9.3",
+ "vitest": "^4.1.0"
},
"engines": {
- "node": ">= 12"
+ "node": ">= 20"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/daffl"
}
},
- "packages/feathers": {
- "name": "@feathersjs/feathers",
- "version": "5.0.34",
+ "packages/feathers/node_modules/@vitest/coverage-v8": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.0.tgz",
+ "integrity": "sha512-nDWulKeik2bL2Va/Wl4x7DLuTKAXa906iRFooIRPR+huHkcvp9QDkPQ2RJdmjOFrqOqvNfoSQLF68deE3xC3CQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/hooks": "^0.9.0",
- "events": "^3.3.0"
+ "@bcoe/v8-coverage": "^1.0.2",
+ "@vitest/utils": "4.1.0",
+ "ast-v8-to-istanbul": "^1.0.0",
+ "istanbul-lib-coverage": "^3.2.2",
+ "istanbul-lib-report": "^3.0.1",
+ "istanbul-reports": "^3.2.0",
+ "magicast": "^0.5.2",
+ "obug": "^2.1.1",
+ "std-env": "^4.0.0-rc.1",
+ "tinyrainbow": "^3.0.3"
},
- "devDependencies": {
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
+ "funding": {
+ "url": "https://opencollective.com/vitest"
},
- "engines": {
- "node": ">= 12"
+ "peerDependencies": {
+ "@vitest/browser": "4.1.0",
+ "vitest": "4.1.0"
},
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
+ "peerDependenciesMeta": {
+ "@vitest/browser": {
+ "optional": true
+ }
}
},
- "packages/generators": {
- "name": "@feathersjs/generators",
- "version": "5.0.34",
+ "packages/feathers/node_modules/@vitest/expect": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.0.tgz",
+ "integrity": "sha512-EIxG7k4wlWweuCLG9Y5InKFwpMEOyrMb6ZJ1ihYu02LVj/bzUwn2VMU+13PinsjRW75XnITeFrQBMH5+dLvCDA==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@featherscloud/pinion": "^0.5.5",
- "chalk": "^5.4.1",
- "lodash": "^4.17.21",
- "prettier": "^3.6.2",
- "typescript": "^5.9.2"
- },
- "devDependencies": {
- "@feathersjs/adapter-commons": "^5.0.34",
- "@feathersjs/authentication": "^5.0.34",
- "@feathersjs/authentication-client": "^5.0.34",
- "@feathersjs/authentication-local": "^5.0.34",
- "@feathersjs/authentication-oauth": "^5.0.34",
- "@feathersjs/configuration": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/express": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "@feathersjs/knex": "^5.0.34",
- "@feathersjs/koa": "^5.0.34",
- "@feathersjs/mongodb": "^5.0.34",
- "@feathersjs/rest-client": "^5.0.34",
- "@feathersjs/schema": "^5.0.34",
- "@feathersjs/socketio": "^5.0.34",
- "@feathersjs/transport-commons": "^5.0.34",
- "@feathersjs/typebox": "^5.0.34",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "@types/prettier": "^2.7.3",
- "axios": "^1.11.0",
- "knex": "^3.1.0",
- "mocha": "^11.7.1",
- "mongodb": "^6.18.0",
- "mssql": "^11.0.1",
- "mysql": "^2.18.1",
- "pg": "^8.16.3",
- "shx": "^0.4.0",
- "sqlite3": "^5.1.7",
- "tsx": "^4.20.3",
- "type-fest": "^4.41.0",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 16"
+ "@standard-schema/spec": "^1.1.0",
+ "@types/chai": "^5.2.2",
+ "@vitest/spy": "4.1.0",
+ "@vitest/utils": "4.1.0",
+ "chai": "^6.2.2",
+ "tinyrainbow": "^3.0.3"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
+ "url": "https://opencollective.com/vitest"
}
},
- "packages/knex": {
- "name": "@feathersjs/knex",
- "version": "5.0.34",
+ "packages/feathers/node_modules/@vitest/mocker": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.0.tgz",
+ "integrity": "sha512-evxREh+Hork43+Y4IOhTo+h5lGmVRyjqI739Rz4RlUPqwrkFFDF6EMvOOYjTx4E8Tl6gyCLRL8Mu7Ry12a13Tw==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@feathersjs/adapter-commons": "^5.0.34",
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34"
- },
- "devDependencies": {
- "@feathersjs/adapter-tests": "^5.0.34",
- "@feathersjs/schema": "^5.0.34",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "knex": "^3.1.0",
- "mocha": "^11.7.1",
- "pg": "^8.16.3",
- "shx": "^0.4.0",
- "sqlite3": "^5.1.7",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 14"
+ "@vitest/spy": "4.1.0",
+ "estree-walker": "^3.0.3",
+ "magic-string": "^0.30.21"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
+ "url": "https://opencollective.com/vitest"
},
"peerDependencies": {
- "knex": ">=3.1.0"
- }
- },
- "packages/koa": {
- "name": "@feathersjs/koa",
- "version": "5.0.34",
- "license": "MIT",
- "dependencies": {
- "@feathersjs/authentication": "^5.0.34",
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "@feathersjs/transport-commons": "^5.0.34",
- "@koa/cors": "^5.0.0",
- "@types/koa": "^2.15.0",
- "@types/koa__cors": "^5.0.0",
- "@types/koa-qs": "^2.0.3",
- "@types/koa-static": "^4.0.4",
- "koa": "^3.0.1",
- "koa-body": "^6.0.1",
- "koa-compose": "^4.1.0",
- "koa-qs": "^3.0.0",
- "koa-static": "^5.0.0"
- },
- "devDependencies": {
- "@feathersjs/authentication-local": "^5.0.34",
- "@feathersjs/memory": "^5.0.34",
- "@feathersjs/tests": "^5.0.34",
- "@types/koa-compose": "^3.2.8",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "axios": "^1.11.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
+ "msw": "^2.4.9",
+ "vite": "^6.0.0 || ^7.0.0 || ^8.0.0-0"
},
- "engines": {
- "node": ">= 14"
+ "peerDependenciesMeta": {
+ "msw": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ }
}
},
- "packages/memory": {
- "name": "@feathersjs/memory",
- "version": "5.0.34",
+ "packages/feathers/node_modules/@vitest/pretty-format": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.0.tgz",
+ "integrity": "sha512-3RZLZlh88Ib0J7NQTRATfc/3ZPOnSUn2uDBUoGNn5T36+bALixmzphN26OUD3LRXWkJu4H0s5vvUeqBiw+kS0A==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@feathersjs/adapter-commons": "^5.0.34",
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "sift": "^17.1.3"
- },
- "devDependencies": {
- "@feathersjs/adapter-tests": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
+ "tinyrainbow": "^3.0.3"
},
- "engines": {
- "node": ">= 12"
+ "funding": {
+ "url": "https://opencollective.com/vitest"
}
},
- "packages/mongodb": {
- "name": "@feathersjs/mongodb",
- "version": "5.0.34",
+ "packages/feathers/node_modules/@vitest/runner": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.0.tgz",
+ "integrity": "sha512-Duvx2OzQ7d6OjchL+trw+aSrb9idh7pnNfxrklo14p3zmNL4qPCDeIJAK+eBKYjkIwG96Bc6vYuxhqDXQOWpoQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@feathersjs/adapter-commons": "^5.0.34",
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34"
- },
- "devDependencies": {
- "@feathersjs/adapter-tests": "^5.0.34",
- "@feathersjs/schema": "^5.0.34",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "mongodb-memory-server": "^10.1.4",
- "shx": "^0.4.0",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 14"
+ "@vitest/utils": "4.1.0",
+ "pathe": "^2.0.3"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
- },
- "peerDependencies": {
- "mongodb": "^6.18.0"
+ "url": "https://opencollective.com/vitest"
}
},
- "packages/rest-client": {
- "name": "@feathersjs/rest-client",
- "version": "5.0.34",
+ "packages/feathers/node_modules/@vitest/snapshot": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.0.tgz",
+ "integrity": "sha512-0Vy9euT1kgsnj1CHttwi9i9o+4rRLEaPRSOJ5gyv579GJkNpgJK+B4HSv/rAWixx2wdAFci1X4CEPjiu2bXIMg==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "@types/superagent": "^8.1.9",
- "qs": "^6.14.0"
- },
- "devDependencies": {
- "@feathersjs/express": "^5.0.34",
- "@feathersjs/memory": "^5.0.34",
- "@feathersjs/tests": "^5.0.34",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "@types/node-fetch": "^2.6.13",
- "@types/qs": "^6.14.0",
- "axios": "^1.11.0",
- "mocha": "^11.7.1",
- "node-fetch": "^2.6.1",
- "rxjs": "^7.8.2",
- "shx": "^0.4.0",
- "superagent": "^10.2.3",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 12"
+ "@vitest/pretty-format": "4.1.0",
+ "@vitest/utils": "4.1.0",
+ "magic-string": "^0.30.21",
+ "pathe": "^2.0.3"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
+ "url": "https://opencollective.com/vitest"
}
},
- "packages/schema": {
- "name": "@feathersjs/schema",
- "version": "5.0.34",
+ "packages/feathers/node_modules/@vitest/spy": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.0.tgz",
+ "integrity": "sha512-pz77k+PgNpyMDv2FV6qmk5ZVau6c3R8HC8v342T2xlFxQKTrSeYw9waIJG8KgV9fFwAtTu4ceRzMivPTH6wSxw==",
+ "dev": true,
"license": "MIT",
- "dependencies": {
- "@feathersjs/adapter-commons": "^5.0.34",
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "@feathersjs/hooks": "^0.9.0",
- "@types/json-schema": "^7.0.15",
- "ajv": "^8.17.1",
- "ajv-formats": "^3.0.1",
- "json-schema-to-ts": "^3.1.1"
- },
- "devDependencies": {
- "@feathersjs/memory": "^5.0.34",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "ajv-formats": "^3.0.1",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 12"
- },
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
- },
- "peerDependencies": {
- "typescript": ">=5.8"
+ "url": "https://opencollective.com/vitest"
}
},
- "packages/schema/node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "packages/feathers/node_modules/@vitest/utils": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.0.tgz",
+ "integrity": "sha512-XfPXT6a8TZY3dcGY8EdwsBulFCIw+BeeX0RZn2x/BtiY/75YGh8FeWGG8QISN/WhaqSrE2OrlDgtF8q5uhOTmw==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "fast-deep-equal": "^3.1.3",
- "fast-uri": "^3.0.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2"
+ "@vitest/pretty-format": "4.1.0",
+ "convert-source-map": "^2.0.0",
+ "tinyrainbow": "^3.0.3"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "url": "https://opencollective.com/vitest"
}
},
- "packages/schema/node_modules/json-schema-traverse": {
+ "packages/feathers/node_modules/ast-v8-to-istanbul": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
- },
- "packages/socketio": {
- "name": "@feathersjs/socketio",
- "version": "5.0.34",
+ "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.0.tgz",
+ "integrity": "sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "@feathersjs/transport-commons": "^5.0.34",
- "socket.io": "^4.8.1"
- },
- "devDependencies": {
- "@feathersjs/express": "^5.0.34",
- "@feathersjs/memory": "^5.0.34",
- "@feathersjs/tests": "^5.0.34",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "lodash": "^4.17.21",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "socket.io-client": "^4.8.1",
- "typescript": "^5.9.2"
- },
- "engines": {
- "node": ">= 12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
+ "@jridgewell/trace-mapping": "^0.3.31",
+ "estree-walker": "^3.0.3",
+ "js-tokens": "^10.0.0"
}
},
- "packages/socketio-client": {
- "name": "@feathersjs/socketio-client",
- "version": "5.0.34",
+ "packages/feathers/node_modules/chai": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz",
+ "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==",
+ "dev": true,
"license": "MIT",
- "dependencies": {
- "@feathersjs/feathers": "^5.0.34",
- "@feathersjs/transport-commons": "^5.0.34"
- },
- "devDependencies": {
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/memory": "^5.0.34",
- "@feathersjs/socketio": "^5.0.34",
- "@feathersjs/tests": "^5.0.34",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "socket.io-client": "^4.8.1",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
"engines": {
- "node": ">= 12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
+ "node": ">=18"
}
},
- "packages/tests": {
- "name": "@feathersjs/tests",
- "version": "5.0.34",
+ "packages/feathers/node_modules/es-module-lexer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz",
+ "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "packages/feathers/node_modules/magicast": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.2.tgz",
+ "integrity": "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@types/lodash": "^4.17.20",
- "axios": "^1.11.0",
- "lodash": "^4.17.21"
- },
- "devDependencies": {
- "@feathersjs/feathers": "^5.0.34",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
+ "@babel/parser": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "source-map-js": "^1.2.1"
+ }
+ },
+ "packages/feathers/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 12"
+ "node": ">=12"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "packages/transport-commons": {
- "name": "@feathersjs/transport-commons",
- "version": "5.0.34",
+ "packages/feathers/node_modules/std-env": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.0.0.tgz",
+ "integrity": "sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "packages/feathers/node_modules/tinyexec": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.4.tgz",
+ "integrity": "sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==",
+ "dev": true,
"license": "MIT",
- "dependencies": {
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "encodeurl": "^2.0.0",
- "lodash": "^4.17.21"
- },
- "devDependencies": {
- "@types/encodeurl": "^1.0.3",
- "@types/lodash": "^4.17.20",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
"engines": {
- "node": ">= 12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
+ "node": ">=18"
}
},
- "packages/typebox": {
- "name": "@feathersjs/typebox",
- "version": "5.0.34",
+ "packages/feathers/node_modules/tinyrainbow": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz",
+ "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==",
+ "dev": true,
"license": "MIT",
- "dependencies": {
- "@feathersjs/schema": "^5.0.34",
- "@sinclair/typebox": "^0.25.0"
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "packages/feathers/node_modules/vitest": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.0.tgz",
+ "integrity": "sha512-YbDrMF9jM2Lqc++2530UourxZHmkKLxrs4+mYhEwqWS97WJ7wOYEkcr+QfRgJ3PW9wz3odRijLZjHEaRLTNbqw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/expect": "4.1.0",
+ "@vitest/mocker": "4.1.0",
+ "@vitest/pretty-format": "4.1.0",
+ "@vitest/runner": "4.1.0",
+ "@vitest/snapshot": "4.1.0",
+ "@vitest/spy": "4.1.0",
+ "@vitest/utils": "4.1.0",
+ "es-module-lexer": "^2.0.0",
+ "expect-type": "^1.3.0",
+ "magic-string": "^0.30.21",
+ "obug": "^2.1.1",
+ "pathe": "^2.0.3",
+ "picomatch": "^4.0.3",
+ "std-env": "^4.0.0-rc.1",
+ "tinybench": "^2.9.0",
+ "tinyexec": "^1.0.2",
+ "tinyglobby": "^0.2.15",
+ "tinyrainbow": "^3.0.3",
+ "vite": "^6.0.0 || ^7.0.0 || ^8.0.0-0",
+ "why-is-node-running": "^2.3.0"
},
- "devDependencies": {
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "typescript": "^5.9.2"
+ "bin": {
+ "vitest": "vitest.mjs"
},
"engines": {
- "node": ">= 12"
+ "node": "^20.0.0 || ^22.0.0 || >=24.0.0"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "@edge-runtime/vm": "*",
+ "@opentelemetry/api": "^1.9.0",
+ "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0",
+ "@vitest/browser-playwright": "4.1.0",
+ "@vitest/browser-preview": "4.1.0",
+ "@vitest/browser-webdriverio": "4.1.0",
+ "@vitest/ui": "4.1.0",
+ "happy-dom": "*",
+ "jsdom": "*",
+ "vite": "^6.0.0 || ^7.0.0 || ^8.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "@edge-runtime/vm": {
+ "optional": true
+ },
+ "@opentelemetry/api": {
+ "optional": true
+ },
+ "@types/node": {
+ "optional": true
+ },
+ "@vitest/browser-playwright": {
+ "optional": true
+ },
+ "@vitest/browser-preview": {
+ "optional": true
+ },
+ "@vitest/browser-webdriverio": {
+ "optional": true
+ },
+ "@vitest/ui": {
+ "optional": true
+ },
+ "happy-dom": {
+ "optional": true
+ },
+ "jsdom": {
+ "optional": true
+ },
+ "vite": {
+ "optional": false
+ }
}
- },
- "packages/typebox/node_modules/@sinclair/typebox": {
- "version": "0.25.24",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz",
- "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ=="
}
}
}
diff --git a/package.json b/package.json
index d9d51eb9d3..285241c66e 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,8 @@
{
- "name": "@feathersjs/feathers",
+ "name": "feathers",
"private": true,
- "homepage": "http://feathersjs.com",
+ "description": "The API and real-time application framework",
+ "homepage": "https://feathersjs.com",
"repository": {
"type": "git",
"url": "git://github.com/feathersjs/feathers.git"
@@ -20,10 +21,9 @@
"url": "https://github.com/feathersjs/feathers/issues"
},
"engines": {
- "node": ">= 20"
+ "node": ">= 22"
},
"workspaces": [
- "docs",
"packages/*"
],
"scripts": {
@@ -34,27 +34,29 @@
"publish:premajor": "lerna publish premajor --preid pre --pre-dist-tag pre && git commit -am \"chore: Update version and changelog\" && git push origin",
"publish:prerelease": "lerna publish prerelease --preid pre --pre-dist-tag pre --dist-tag pre --force-publish && git commit -am \"chore: Update version and changelog\" && git push origin",
"prettier": "npx prettier \"packages/{,!(node_modules)/**/(src|test)/**/}*.ts\" --write",
- "eslint": "eslint \"packages/**/*.ts\" --fix",
+ "eslint": "ESLINT_USE_FLAT_CONFIG=false eslint \"packages/**/*.ts\" --fix",
"lint": "npm run prettier && npm run eslint",
"compile": "lerna run compile",
"build:docs": "npm run build --workspace docs",
- "update-dependencies": "npm exec --workspaces --include-workspace-root -- ncu -u --dep prod,dev,optional,peer -x node-fetch,\"@sinclair/typebox\",\"@types/express\",\"@types/express-serve-static-core\",commander,express",
+ "update-dependencies": "npm exec --workspaces --include-workspace-root -- ncu -u --dep prod,dev,optional,peer",
"clean": "find . -name node_modules -exec rm -rf '{}' + && find . -name package-lock.json -exec rm -rf '{}' +",
"test:deno": "deno test --config deno/tsconfig.json deno/test.ts",
- "test": "npm run lint && npm run compile && c8 lerna run test --ignore @feathersjs/tests",
- "generate:package": "pinion run generators/package.ts"
+ "test": "npm run lint && npm run compile && vitest run --coverage",
+ "vitest": "vitest run --coverage",
+ "dev": "vitest"
},
"devDependencies": {
- "@featherscloud/pinion": "^0.5.4",
- "@typescript-eslint/eslint-plugin": "^7.8.0",
- "@typescript-eslint/parser": "^7.8.0",
- "c8": "^9.1.0",
- "eslint": "^8.57.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-prettier": "^5.1.3",
- "lerna": "^8.1.2",
- "npm-check-updates": "^16.14.20",
- "prettier": "^3.2.5",
- "typescript": "^5.4.5"
+ "@featherscloud/pinion": "^0.5.5",
+ "@typescript-eslint/eslint-plugin": "^8.38.0",
+ "@typescript-eslint/parser": "^8.38.0",
+ "@vitest/coverage-v8": "^3.2.4",
+ "eslint": "^9.32.0",
+ "eslint-config-prettier": "^10.1.8",
+ "eslint-plugin-prettier": "^5.5.3",
+ "lerna": "^8.2.3",
+ "npm-check-updates": "^18.0.2",
+ "prettier": "^3.6.2",
+ "typescript": "^5.8.0",
+ "vitest": "^3.2.4"
}
}
diff --git a/packages/adapter-commons/CHANGELOG.md b/packages/adapter-commons/CHANGELOG.md
deleted file mode 100644
index 3a060d245b..0000000000
--- a/packages/adapter-commons/CHANGELOG.md
+++ /dev/null
@@ -1,646 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file.
-See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-
-## [5.0.34](https://github.com/feathersjs/feathers/compare/v5.0.33...v5.0.34) (2025-05-03)
-
-### Bug Fixes
-
-- Update dependencies ([#3584](https://github.com/feathersjs/feathers/issues/3584)) ([119fa4e](https://github.com/feathersjs/feathers/commit/119fa4e1ade8b0078aa235083d566e2538b3a084))
-
-## [5.0.33](https://github.com/feathersjs/feathers/compare/v5.0.32...v5.0.33) (2025-02-24)
-
-### Bug Fixes
-
-- **dependencies:** Update dependencies ([#3571](https://github.com/feathersjs/feathers/issues/3571)) ([ad611cb](https://github.com/feathersjs/feathers/commit/ad611cb6ffb1dc31d603ba5817331318c5a23217))
-
-## [5.0.32](https://github.com/feathersjs/feathers/compare/v5.0.31...v5.0.32) (2025-02-01)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.31](https://github.com/feathersjs/feathers/compare/v5.0.30...v5.0.31) (2024-10-31)
-
-### Bug Fixes
-
-- **dependencies:** Update all dependencies ([#3545](https://github.com/feathersjs/feathers/issues/3545)) ([221b92b](https://github.com/feathersjs/feathers/commit/221b92bb0ee5d54fb1036742968797cb02e56da2))
-
-## [5.0.30](https://github.com/feathersjs/feathers/compare/v5.0.29...v5.0.30) (2024-09-02)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.29](https://github.com/feathersjs/feathers/compare/v5.0.28...v5.0.29) (2024-07-10)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.28](https://github.com/feathersjs/feathers/compare/v5.0.27...v5.0.28) (2024-07-10)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.27](https://github.com/feathersjs/feathers/compare/v5.0.26...v5.0.27) (2024-06-18)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.26](https://github.com/feathersjs/feathers/compare/v5.0.25...v5.0.26) (2024-06-09)
-
-### Bug Fixes
-
-- **adapter-commons:** Faster sorter ([#3495](https://github.com/feathersjs/feathers/issues/3495)) ([22243e4](https://github.com/feathersjs/feathers/commit/22243e4d92edc1a7343b4cf42be6dfb22e8b86d5))
-
-## [5.0.25](https://github.com/feathersjs/feathers/compare/v5.0.24...v5.0.25) (2024-05-03)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.24](https://github.com/feathersjs/feathers/compare/v5.0.23...v5.0.24) (2024-03-13)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.23](https://github.com/feathersjs/feathers/compare/v5.0.22...v5.0.23) (2024-02-25)
-
-### Bug Fixes
-
-- **core:** Update to latest feathersjs/hooks ([#3434](https://github.com/feathersjs/feathers/issues/3434)) ([1499ccc](https://github.com/feathersjs/feathers/commit/1499ccc41fb3ebba97b2c84e0cb19bc48ad3c651))
-
-## [5.0.22](https://github.com/feathersjs/feathers/compare/v5.0.21...v5.0.22) (2024-02-15)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.21](https://github.com/feathersjs/feathers/compare/v5.0.20...v5.0.21) (2024-01-25)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.20](https://github.com/feathersjs/feathers/compare/v5.0.19...v5.0.20) (2024-01-24)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.19](https://github.com/feathersjs/feathers/compare/v5.0.18...v5.0.19) (2024-01-23)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.18](https://github.com/feathersjs/feathers/compare/v5.0.17...v5.0.18) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.17](https://github.com/feathersjs/feathers/compare/v5.0.16...v5.0.17) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.16](https://github.com/feathersjs/feathers/compare/v5.0.15...v5.0.16) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.15](https://github.com/feathersjs/feathers/compare/v5.0.14...v5.0.15) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.14](https://github.com/feathersjs/feathers/compare/v5.0.13...v5.0.14) (2024-01-05)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.13](https://github.com/feathersjs/feathers/compare/v5.0.12...v5.0.13) (2023-12-29)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.12](https://github.com/feathersjs/feathers/compare/v5.0.11...v5.0.12) (2023-11-28)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.11](https://github.com/feathersjs/feathers/compare/v5.0.10...v5.0.11) (2023-10-11)
-
-### Bug Fixes
-
-- **knex:** Update all dependencies and Knex peer ([#3308](https://github.com/feathersjs/feathers/issues/3308)) ([d2f9860](https://github.com/feathersjs/feathers/commit/d2f986036c4741cce2339d8abbcc6b2eb037a12a))
-
-## [5.0.10](https://github.com/feathersjs/feathers/compare/v5.0.9...v5.0.10) (2023-10-03)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.9](https://github.com/feathersjs/feathers/compare/v5.0.8...v5.0.9) (2023-09-27)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.8](https://github.com/feathersjs/feathers/compare/v5.0.7...v5.0.8) (2023-07-19)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.7](https://github.com/feathersjs/feathers/compare/v5.0.6...v5.0.7) (2023-07-14)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.6](https://github.com/feathersjs/feathers/compare/v5.0.5...v5.0.6) (2023-06-15)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.5](https://github.com/feathersjs/feathers/compare/v5.0.4...v5.0.5) (2023-04-28)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [5.0.4](https://github.com/feathersjs/feathers/compare/v5.0.3...v5.0.4) (2023-04-12)
-
-### Bug Fixes
-
-- Make sure all Readme files are up to date ([#3154](https://github.com/feathersjs/feathers/issues/3154)) ([a5f0b38](https://github.com/feathersjs/feathers/commit/a5f0b38bbf2a11486415a39533bcc6c67fb51e3e))
-
-## [5.0.3](https://github.com/feathersjs/feathers/compare/v5.0.2...v5.0.3) (2023-04-05)
-
-### Bug Fixes
-
-- **dependencies:** Update all dependencies ([#3139](https://github.com/feathersjs/feathers/issues/3139)) ([f24276e](https://github.com/feathersjs/feathers/commit/f24276e9a909e2e58a0730c730258ce1f70f4028))
-
-## [5.0.1](https://github.com/feathersjs/feathers/compare/v5.0.0...v5.0.1) (2023-03-15)
-
-### Bug Fixes
-
-- **core:** Add PaginationParams to general find method ([#3095](https://github.com/feathersjs/feathers/issues/3095)) ([8ebdcf5](https://github.com/feathersjs/feathers/commit/8ebdcf5107fae5fa23920390052b871033de3a0a))
-- **core:** Use Symbol.for to instantiate shared symbols ([#3087](https://github.com/feathersjs/feathers/issues/3087)) ([7f3fc21](https://github.com/feathersjs/feathers/commit/7f3fc2167576f228f8183568eb52b077160e8d65))
-
-# [5.0.0](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.38...v5.0.0) (2023-02-24)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.38](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.37...v5.0.0-pre.38) (2023-02-17)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.37](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.36...v5.0.0-pre.37) (2023-02-09)
-
-### Features
-
-- **mongodb:** Add Object ID keyword converter and update MongoDB CLI & docs ([#3041](https://github.com/feathersjs/feathers/issues/3041)) ([ca0994e](https://github.com/feathersjs/feathers/commit/ca0994eaecb5a31f310bc980d106834e11f24f41))
-
-# [5.0.0-pre.36](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.35...v5.0.0-pre.36) (2023-01-29)
-
-### Bug Fixes
-
-- **databases:** Ensure that query sanitization is not necessary when using query schemas ([#3022](https://github.com/feathersjs/feathers/issues/3022)) ([dbf514e](https://github.com/feathersjs/feathers/commit/dbf514e85d1508b95c007462a39b3cadd4ff391d))
-
-### Features
-
-- **database:** Add and to the query syntax ([#3021](https://github.com/feathersjs/feathers/issues/3021)) ([00cb0d9](https://github.com/feathersjs/feathers/commit/00cb0d9c302ae951ae007d3d6ceba33e254edd9c))
-
-# [5.0.0-pre.35](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.34...v5.0.0-pre.35) (2023-01-12)
-
-### Features
-
-- **generators:** Move core code generators to shared generators package ([#2982](https://github.com/feathersjs/feathers/issues/2982)) ([0328d22](https://github.com/feathersjs/feathers/commit/0328d2292153870bc43958f73d2c6f288a8cec17))
-
-# [5.0.0-pre.34](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.33...v5.0.0-pre.34) (2022-12-14)
-
-### Bug Fixes
-
-- **adapter-commons:** multiple type definition issues ([#2876](https://github.com/feathersjs/feathers/issues/2876)) ([4ff1ed0](https://github.com/feathersjs/feathers/commit/4ff1ed084eb2b2cb687de27a28c96a0dad4530b7))
-
-### Features
-
-- **adapter:** Add patch data type to adapters and refactor AdapterBase usage ([#2906](https://github.com/feathersjs/feathers/issues/2906)) ([9ddc2e6](https://github.com/feathersjs/feathers/commit/9ddc2e6b028f026f939d6af68125847e5c6734b4))
-
-# [5.0.0-pre.33](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.32...v5.0.0-pre.33) (2022-11-08)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.32](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.31...v5.0.0-pre.32) (2022-10-26)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.31](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.30...v5.0.0-pre.31) (2022-10-12)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.30](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.29...v5.0.0-pre.30) (2022-10-07)
-
-### Features
-
-- **core:** Allow to unregister services at runtime ([#2756](https://github.com/feathersjs/feathers/issues/2756)) ([d16601f](https://github.com/feathersjs/feathers/commit/d16601f2277dca5357866ffdefba2a611f6dc7fa))
-
-# [5.0.0-pre.29](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.28...v5.0.0-pre.29) (2022-09-16)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.28](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.27...v5.0.0-pre.28) (2022-08-03)
-
-### Bug Fixes
-
-- **cli:** Improve generated application and client ([#2701](https://github.com/feathersjs/feathers/issues/2701)) ([bd55ffb](https://github.com/feathersjs/feathers/commit/bd55ffb812e89bf215f4515e7f137656ea888c3f))
-
-# [5.0.0-pre.27](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.26...v5.0.0-pre.27) (2022-07-13)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.26](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.25...v5.0.0-pre.26) (2022-06-22)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.25](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.24...v5.0.0-pre.25) (2022-06-22)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.24](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.23...v5.0.0-pre.24) (2022-06-21)
-
-### Features
-
-- **knex:** Add KnexJS SQL database adapter to core ([#2671](https://github.com/feathersjs/feathers/issues/2671)) ([9380fff](https://github.com/feathersjs/feathers/commit/9380fff58596e8bb90b8bb098d2795b7eadfec20))
-
-# [5.0.0-pre.23](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.22...v5.0.0-pre.23) (2022-06-06)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.22](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.21...v5.0.0-pre.22) (2022-05-24)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.21](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.20...v5.0.0-pre.21) (2022-05-23)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.20](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.19...v5.0.0-pre.20) (2022-05-04)
-
-### Bug Fixes
-
-- **dependencies:** Lock monorepo package version numbers ([#2623](https://github.com/feathersjs/feathers/issues/2623)) ([5640c10](https://github.com/feathersjs/feathers/commit/5640c1020cc139994e695d658c08bad3494db507))
-
-# [5.0.0-pre.19](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.18...v5.0.0-pre.19) (2022-05-01)
-
-### Bug Fixes
-
-- **adapter-commons:** Clarify adapter query filtering ([#2607](https://github.com/feathersjs/feathers/issues/2607)) ([2dac771](https://github.com/feathersjs/feathers/commit/2dac771b0a3298d6dd25994d05186701b0617718))
-
-### Features
-
-- **mongodb:** Add feathers-mongodb adapter as @feathersjs/mongodb ([#2610](https://github.com/feathersjs/feathers/issues/2610)) ([6d43734](https://github.com/feathersjs/feathers/commit/6d43734a53db02c435cafc52a22dca414e5d0940))
-- **typescript:** Improve adapter typings ([#2605](https://github.com/feathersjs/feathers/issues/2605)) ([3b2ca0a](https://github.com/feathersjs/feathers/commit/3b2ca0a6a8e03e8390272c4d7e930b4bffdaacf5))
-- **typescript:** Improve params and query typeability ([#2600](https://github.com/feathersjs/feathers/issues/2600)) ([df28b76](https://github.com/feathersjs/feathers/commit/df28b7619161f1df5e700326f52cca1a92dc5d28))
-
-### BREAKING CHANGES
-
-- **adapter-commons:** Changes the common adapter base class to use `sanitizeQuery` and `sanitizeData`
-
-# [5.0.0-pre.18](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.17...v5.0.0-pre.18) (2022-04-11)
-
-### Features
-
-- **core:** Add app.teardown functionality ([#2570](https://github.com/feathersjs/feathers/issues/2570)) ([fcdf524](https://github.com/feathersjs/feathers/commit/fcdf524ae1995bb59265d39f12e98b7794bed023))
-- **core:** Finalize app.teardown() functionality ([#2584](https://github.com/feathersjs/feathers/issues/2584)) ([1a166f3](https://github.com/feathersjs/feathers/commit/1a166f3ded811ecacf0ae8cb67880bc9fa2eeafa))
-
-# [5.0.0-pre.17](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.16...v5.0.0-pre.17) (2022-02-15)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.16](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.15...v5.0.0-pre.16) (2022-01-12)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.15](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.14...v5.0.0-pre.15) (2021-11-27)
-
-### Bug Fixes
-
-- **adapter-commons:** clean up in sort.ts and select function ([#2492](https://github.com/feathersjs/feathers/issues/2492)) ([c3ec8a4](https://github.com/feathersjs/feathers/commit/c3ec8a418bdc85506e3c5100015720a45454d8d3))
-- **adapter-commons:** Fix sorting for embedded objects ([#2488](https://github.com/feathersjs/feathers/issues/2488)) ([9c22f70](https://github.com/feathersjs/feathers/commit/9c22f70a838cb6341775d91705a7527c8fc5590e))
-- **typescript:** Overall typing improvements ([#2478](https://github.com/feathersjs/feathers/issues/2478)) ([b8eb804](https://github.com/feathersjs/feathers/commit/b8eb804158556d9651a8607e3c3fda15e0bfd110))
-
-# [5.0.0-pre.14](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.13...v5.0.0-pre.14) (2021-10-13)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.13](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.12...v5.0.0-pre.13) (2021-10-13)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.12](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.11...v5.0.0-pre.12) (2021-10-12)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.11](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.10...v5.0.0-pre.11) (2021-10-06)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.10](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.9...v5.0.0-pre.10) (2021-09-19)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.9](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.8...v5.0.0-pre.9) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.8](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.7...v5.0.0-pre.8) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.7](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.6...v5.0.0-pre.7) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.6](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.5...v5.0.0-pre.6) (2021-08-08)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-pre.5](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.4...v5.0.0-pre.5) (2021-06-23)
-
-### Bug Fixes
-
-- Update database adapter common repository urls ([#2380](https://github.com/feathersjs/feathers/issues/2380)) ([3f4db68](https://github.com/feathersjs/feathers/commit/3f4db68d6700c7d9023ecd17d0d39893f75a19fd))
-
-### Features
-
-- **adapter-commons:** Add support for params.adapter option and move memory adapter to @feathersjs/memory ([#2367](https://github.com/feathersjs/feathers/issues/2367)) ([a43e7da](https://github.com/feathersjs/feathers/commit/a43e7da22b6b981a96d1321736ea9a0cb924fb4f))
-- **typescript:** Allow to pass generic service options to adapter services ([#2392](https://github.com/feathersjs/feathers/issues/2392)) ([f9431f2](https://github.com/feathersjs/feathers/commit/f9431f242354f804cafb835519f98dd405ac4f0b))
-
-# [5.0.0-pre.4](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.3...v5.0.0-pre.4) (2021-05-13)
-
-### Bug Fixes
-
-- **typescript:** Move Paginated type back for better compatibility ([#2350](https://github.com/feathersjs/feathers/issues/2350)) ([2917d05](https://github.com/feathersjs/feathers/commit/2917d05fffb4716d3c4cdaa5ac6a1aee0972e8a6))
-
-# [5.0.0-pre.3](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.2...v5.0.0-pre.3) (2021-04-21)
-
-### Bug Fixes
-
-- **typescript:** Improve TypeScript backwards compatibility ([#2310](https://github.com/feathersjs/feathers/issues/2310)) ([f33be73](https://github.com/feathersjs/feathers/commit/f33be73fc46a533efb15df9aab0658e3240d3897))
-
-# [5.0.0-pre.2](https://github.com/feathersjs/feathers/compare/v5.0.0-beta.1...v5.0.0-pre.2) (2021-04-06)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [5.0.0-beta.1](https://github.com/feathersjs/feathers/compare/v5.0.0-beta.0...v5.0.0-beta.1) (2021-04-03)
-
-### Bug Fixes
-
-- **dependencies:** Fix transport-commons dependency and update other dependencies ([#2284](https://github.com/feathersjs/feathers/issues/2284)) ([05b03b2](https://github.com/feathersjs/feathers/commit/05b03b27b40604d956047e3021d8053c3a137616))
-
-### Features
-
-- **adapter-commons:** Added mongoDB like search in embedded objects ([687e3c7](https://github.com/feathersjs/feathers/commit/687e3c7c36904221b2707d0220c0893e3cb1faa9))
-
-# [5.0.0-beta.0](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.1...v5.0.0-beta.0) (2021-03-28)
-
-### Bug Fixes
-
-- **adapter-commons:** Always respect paginate.max ([#2267](https://github.com/feathersjs/feathers/issues/2267)) ([f588257](https://github.com/feathersjs/feathers/commit/f5882575536624ed3a32bb6e3ff1919fa17e366d))
-- Update Grant usage and other dependencies ([#2264](https://github.com/feathersjs/feathers/issues/2264)) ([7b0f8fa](https://github.com/feathersjs/feathers/commit/7b0f8fad252419ed0ad0bf259cdf3104d322ab60))
-- **adapter-commons:** Return missing overloads ([#2203](https://github.com/feathersjs/feathers/issues/2203)) ([bbe7e2a](https://github.com/feathersjs/feathers/commit/bbe7e2a131633e9a6e7aac7f7fa02a312bca63c7))
-
-### Features
-
-- Feathers v5 core refactoring and features ([#2255](https://github.com/feathersjs/feathers/issues/2255)) ([2dafb7c](https://github.com/feathersjs/feathers/commit/2dafb7ce14ba57406aeec13d10ca45b1e709bee9))
-
-# [5.0.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.5.11...v5.0.0-pre.1) (2020-12-17)
-
-### Features
-
-- **memory:** Move feathers-memory into @feathersjs/memory ([#2153](https://github.com/feathersjs/feathers/issues/2153)) ([dd61fe3](https://github.com/feathersjs/feathers/commit/dd61fe371fb0502f78b8ccbe1f45a030e31ecff6))
-
-## [4.5.11](https://github.com/feathersjs/feathers/compare/v4.5.10...v4.5.11) (2020-12-05)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [4.5.7](https://github.com/feathersjs/feathers/compare/v4.5.6...v4.5.7) (2020-10-21)
-
-### Bug Fixes
-
-- **typescript:** Remove remaining overloads ([a29fabc](https://github.com/feathersjs/databases/commit/a29fabc9cf6050793a5e93948507ce3e19a235dd))
-
-## [4.5.6](https://github.com/feathersjs/feathers/compare/v4.5.5...v4.5.6) (2020-10-21)
-
-### Bug Fixes
-
-- Revert "fix(adapter-commons): Add missing overloads ([#4](https://github.com/feathersjs/databases/issues/4))" ([dfaa850](https://github.com/feathersjs/databases/commit/dfaa8500644021f78d6234a79358f1b26ce2c8d3))
-
-## [4.5.5](https://github.com/feathersjs/feathers/compare/v4.5.4...v4.5.5) (2020-10-21)
-
-### Bug Fixes
-
-- **typescript:** Revert "fix: add overloads for `find` ([#9](https://github.com/feathersjs/databases/issues/9))" ([85c20b2](https://github.com/feathersjs/databases/commit/85c20b267e67192169ded97dd5056f116a5ad7b5))
-
-## [4.5.4](https://github.com/feathersjs/feathers/compare/v4.5.3...v4.5.4) (2020-09-27)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## 4.5.3 (2020-09-24)
-
-### Bug Fixes
-
-- add overloads for `find` ([#9](https://github.com/feathersjs/databases/issues/9)) ([87c7c29](https://github.com/feathersjs/databases/commit/87c7c29ef017b3cae135e7b7597a7e63fb7d0961))
-- **adapter-commons:** Add missing overloads ([#4](https://github.com/feathersjs/databases/issues/4)) ([b6c80ff](https://github.com/feathersjs/databases/commit/b6c80ff39a32c1b023178f06cffbcaa6d08c554d))
-- Improve Service typings for DB Common API ([#1](https://github.com/feathersjs/databases/issues/1)) ([fd3b949](https://github.com/feathersjs/databases/commit/fd3b9496b0a46f8fd9779c2603faeeb92bd1afc1))
-
-## [4.5.2](https://github.com/feathersjs/feathers/compare/v4.5.1...v4.5.2) (2020-03-04)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [4.5.1](https://github.com/feathersjs/feathers/compare/v4.5.0...v4.5.1) (2020-01-24)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [4.5.0](https://github.com/feathersjs/feathers/compare/v4.4.3...v4.5.0) (2020-01-18)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [4.4.3](https://github.com/feathersjs/feathers/compare/v4.4.1...v4.4.3) (2019-12-06)
-
-### Bug Fixes
-
-- **adapter-commons:** Filter arrays in queries ([#1724](https://github.com/feathersjs/feathers/issues/1724)) ([872b669](https://github.com/feathersjs/feathers/commit/872b66906a806ab92ca41b5f6f504ff0af1ce79e))
-
-## [4.4.1](https://github.com/feathersjs/feathers/compare/v4.4.0...v4.4.1) (2019-11-27)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [4.4.0](https://github.com/feathersjs/feathers/compare/v4.3.11...v4.4.0) (2019-11-27)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [4.3.11](https://github.com/feathersjs/feathers/compare/v4.3.10...v4.3.11) (2019-11-11)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [4.3.10](https://github.com/feathersjs/feathers/compare/v4.3.9...v4.3.10) (2019-10-26)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [4.3.9](https://github.com/feathersjs/feathers/compare/v4.3.8...v4.3.9) (2019-10-26)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [4.3.8](https://github.com/feathersjs/feathers/compare/v4.3.7...v4.3.8) (2019-10-14)
-
-### Bug Fixes
-
-- Remove adapter commons type alternatives ([#1620](https://github.com/feathersjs/feathers/issues/1620)) ([c9f3086](https://github.com/feathersjs/feathers/commit/c9f3086344420b57dbce7c4169cf550c97509f0d))
-
-## [4.3.7](https://github.com/feathersjs/feathers/compare/v4.3.6...v4.3.7) (2019-10-14)
-
-### Bug Fixes
-
-- improve Service and AdapterService types ([#1567](https://github.com/feathersjs/feathers/issues/1567)) ([baad6a2](https://github.com/feathersjs/feathers/commit/baad6a26f0f543b712ccb40359b3933ad3a21392))
-
-## [4.3.6](https://github.com/feathersjs/feathers/compare/v4.3.5...v4.3.6) (2019-10-07)
-
-### Bug Fixes
-
-- Check query for NaN ([#1607](https://github.com/feathersjs/feathers/issues/1607)) ([f1a781f](https://github.com/feathersjs/feathers/commit/f1a781f))
-
-## [4.3.4](https://github.com/feathersjs/feathers/compare/v4.3.3...v4.3.4) (2019-10-03)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [4.3.3](https://github.com/feathersjs/feathers/compare/v4.3.2...v4.3.3) (2019-09-21)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [4.3.2](https://github.com/feathersjs/feathers/compare/v4.3.1...v4.3.2) (2019-09-16)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-## [4.3.1](https://github.com/feathersjs/feathers/compare/v4.3.0...v4.3.1) (2019-09-09)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [4.3.0](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.4...v4.3.0) (2019-08-27)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [4.3.0-pre.4](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.3...v4.3.0-pre.4) (2019-08-22)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [4.3.0-pre.3](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.2...v4.3.0-pre.3) (2019-08-19)
-
-### Bug Fixes
-
-- Update all dependencies ([7d53a00](https://github.com/feathersjs/feathers/commit/7d53a00))
-
-# [4.3.0-pre.2](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.1...v4.3.0-pre.2) (2019-08-02)
-
-### Bug Fixes
-
-- @feathersjs/adapter-commons: `update` id is non-nullable ([#1468](https://github.com/feathersjs/feathers/issues/1468)) ([43ec802](https://github.com/feathersjs/feathers/commit/43ec802))
-
-# [4.3.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.5...v4.3.0-pre.1) (2019-07-11)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [4.0.0-pre.5](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.4...v4.0.0-pre.5) (2019-07-10)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [4.0.0-pre.4](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.3...v4.0.0-pre.4) (2019-07-05)
-
-### Bug Fixes
-
-- @feathersjs/adapter-commons: remove data from `remove` arguments ([#1426](https://github.com/feathersjs/feathers/issues/1426)) ([fd54ae9](https://github.com/feathersjs/feathers/commit/fd54ae9))
-
-### Features
-
-- adapter-commons: add `allowsMulti(method)` to AdapterService ([#1431](https://github.com/feathersjs/feathers/issues/1431)) ([e688851](https://github.com/feathersjs/feathers/commit/e688851))
-- Add hook-less methods and service option types to adapter-commons ([#1433](https://github.com/feathersjs/feathers/issues/1433)) ([857f54a](https://github.com/feathersjs/feathers/commit/857f54a))
-
-# [4.0.0-pre.3](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.2...v4.0.0-pre.3) (2019-06-01)
-
-### Bug Fixes
-
-- Update dependencies and fix tests ([#1373](https://github.com/feathersjs/feathers/issues/1373)) ([d743a7f](https://github.com/feathersjs/feathers/commit/d743a7f))
-
-# [4.0.0-pre.2](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.1...v4.0.0-pre.2) (2019-05-15)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [4.0.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.0...v4.0.0-pre.1) (2019-05-08)
-
-**Note:** Version bump only for package @feathersjs/adapter-commons
-
-# [4.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v3.2.0-pre.1...v4.0.0-pre.0) (2019-04-21)
-
-### Bug Fixes
-
-- Update all dependencies to latest ([#1206](https://github.com/feathersjs/feathers/issues/1206)) ([e51e0f6](https://github.com/feathersjs/feathers/commit/e51e0f6))
-- **adapter-commons:** Keep Symbols when filtering a query ([#1141](https://github.com/feathersjs/feathers/issues/1141)) ([c9f55d8](https://github.com/feathersjs/feathers/commit/c9f55d8))
-- **chore:** Add .npmignore to adapter-commons ([8e129d8](https://github.com/feathersjs/feathers/commit/8e129d8))
-- Add whitelist and filter support to common adapter service ([#1132](https://github.com/feathersjs/feathers/issues/1132)) ([df1daaa](https://github.com/feathersjs/feathers/commit/df1daaa))
-- Fix AdapterService multi option when set to true ([#1134](https://github.com/feathersjs/feathers/issues/1134)) ([40402fc](https://github.com/feathersjs/feathers/commit/40402fc))
-- Throw error in `filterQuery` when query parameter is unknown ([#1131](https://github.com/feathersjs/feathers/issues/1131)) ([cd1a183](https://github.com/feathersjs/feathers/commit/cd1a183))
-- Update adapter common tests ([#1135](https://github.com/feathersjs/feathers/issues/1135)) ([8166dda](https://github.com/feathersjs/feathers/commit/8166dda))
-- Update adapter common tests to check for falsy ([#1140](https://github.com/feathersjs/feathers/issues/1140)) ([2856722](https://github.com/feathersjs/feathers/commit/2856722))
-
-### chore
-
-- **package:** Move adapter tests into their own module ([#1164](https://github.com/feathersjs/feathers/issues/1164)) ([dcc1e6b](https://github.com/feathersjs/feathers/commit/dcc1e6b))
-
-### Features
-
-- Add TypeScript definitions ([#1275](https://github.com/feathersjs/feathers/issues/1275)) ([9dd6713](https://github.com/feathersjs/feathers/commit/9dd6713))
-- Authentication v3 core server implementation ([#1205](https://github.com/feathersjs/feathers/issues/1205)) ([1bd7591](https://github.com/feathersjs/feathers/commit/1bd7591))
-- Common database adapter utilities and test suite ([#1130](https://github.com/feathersjs/feathers/issues/1130)) ([17b3dc8](https://github.com/feathersjs/feathers/commit/17b3dc8))
-
-### BREAKING CHANGES
-
-- **package:** Removes adapter tests from @feathersjs/adapter-commons
-- Move database adapter utilities from @feathersjs/commons into its own module
-
-# [2.0.0](https://github.com/feathersjs/feathers/compare/@feathersjs/adapter-commons@1.0.7...@feathersjs/adapter-commons@2.0.0) (2019-01-10)
-
-### chore
-
-- **package:** Move adapter tests into their own module ([#1164](https://github.com/feathersjs/feathers/issues/1164)) ([dcc1e6b](https://github.com/feathersjs/feathers/commit/dcc1e6b))
-
-### BREAKING CHANGES
-
-- **package:** Removes adapter tests from @feathersjs/adapter-commons
-
-## [1.0.7](https://github.com/feathersjs/feathers/compare/@feathersjs/adapter-commons@1.0.6...@feathersjs/adapter-commons@1.0.7) (2019-01-02)
-
-### Bug Fixes
-
-- **chore:** Add .npmignore to adapter-commons ([8e129d8](https://github.com/feathersjs/feathers/commit/8e129d8))
-
-## [1.0.6](https://github.com/feathersjs/feathers/compare/@feathersjs/adapter-commons@1.0.5...@feathersjs/adapter-commons@1.0.6) (2018-12-21)
-
-### Bug Fixes
-
-- **adapter-commons:** Keep Symbols when filtering a query ([#1141](https://github.com/feathersjs/feathers/issues/1141)) ([c9f55d8](https://github.com/feathersjs/feathers/commit/c9f55d8))
-
-## [1.0.5](https://github.com/feathersjs/feathers/compare/@feathersjs/adapter-commons@1.0.4...@feathersjs/adapter-commons@1.0.5) (2018-12-20)
-
-### Bug Fixes
-
-- Update adapter common tests to check for falsy ([#1140](https://github.com/feathersjs/feathers/issues/1140)) ([2856722](https://github.com/feathersjs/feathers/commit/2856722))
-
-## [1.0.4](https://github.com/feathersjs/feathers/compare/@feathersjs/adapter-commons@1.0.3...@feathersjs/adapter-commons@1.0.4) (2018-12-17)
-
-### Bug Fixes
-
-- Update adapter common tests ([#1135](https://github.com/feathersjs/feathers/issues/1135)) ([8166dda](https://github.com/feathersjs/feathers/commit/8166dda))
-
-
-
-## [1.0.3](https://github.com/feathersjs/feathers/compare/@feathersjs/adapter-commons@1.0.2...@feathersjs/adapter-commons@1.0.3) (2018-12-17)
-
-### Bug Fixes
-
-- Fix AdapterService multi option when set to true ([#1134](https://github.com/feathersjs/feathers/issues/1134)) ([40402fc](https://github.com/feathersjs/feathers/commit/40402fc))
-
-
-
-## [1.0.2](https://github.com/feathersjs/feathers/compare/@feathersjs/adapter-commons@1.0.1...@feathersjs/adapter-commons@1.0.2) (2018-12-17)
-
-### Bug Fixes
-
-- Add whitelist and filter support to common adapter service ([#1132](https://github.com/feathersjs/feathers/issues/1132)) ([df1daaa](https://github.com/feathersjs/feathers/commit/df1daaa))
-
-
-
-## [1.0.1](https://github.com/feathersjs/feathers/compare/@feathersjs/adapter-commons@1.0.0...@feathersjs/adapter-commons@1.0.1) (2018-12-17)
-
-### Bug Fixes
-
-- Throw error in `filterQuery` when query parameter is unknown ([#1131](https://github.com/feathersjs/feathers/issues/1131)) ([cd1a183](https://github.com/feathersjs/feathers/commit/cd1a183))
-
-
-
-# 1.0.0 (2018-12-16)
-
-### Features
-
-- Common database adapter utilities and test suite ([#1130](https://github.com/feathersjs/feathers/issues/1130)) ([17b3dc8](https://github.com/feathersjs/feathers/commit/17b3dc8))
-
-### BREAKING CHANGES
-
-- Move database adapter utilities from @feathersjs/commons into its own module
diff --git a/packages/adapter-commons/LICENSE b/packages/adapter-commons/LICENSE
deleted file mode 100644
index 7712f870f3..0000000000
--- a/packages/adapter-commons/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2024 Feathers Contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
diff --git a/packages/adapter-commons/README.md b/packages/adapter-commons/README.md
deleted file mode 100644
index 4e9d263c6f..0000000000
--- a/packages/adapter-commons/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Feathers Adapter Commons
-
-[](https://github.com/feathersjs/feathers/actions?query=workflow%3A%22Node.js+CI%22)
-[](https://www.npmjs.com/package/@feathersjs/adapter-commons)
-[](https://discord.gg/qa8kez8QBx)
-
-> Shared utility functions for Feathers adatabase adapters
-
-## Installation
-
-```
-npm install @feathersjs/adapter-commons --save
-```
-
-## Documentation
-
-Refer to the [Feathers database adapter documentation](https://feathersjs.com/api/databases/common.html) for more details.
-
-## Authors
-
-[Feathers contributors](https://github.com/feathersjs/adapter-commons/graphs/contributors)
-
-## License
-
-Copyright (c) 2024 [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
-
-Licensed under the [MIT license](LICENSE).
diff --git a/packages/adapter-commons/package.json b/packages/adapter-commons/package.json
deleted file mode 100644
index 44277b1835..0000000000
--- a/packages/adapter-commons/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "name": "@feathersjs/adapter-commons",
- "version": "5.0.34",
- "description": "Shared database adapter utility functions",
- "homepage": "https://feathersjs.com",
- "keywords": [
- "feathers"
- ],
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/feathers"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/feathersjs/feathers.git",
- "directory": "packages/adapter-commons"
- },
- "author": {
- "name": "Feathers contributor",
- "email": "hello@feathersjs.com",
- "url": "https://feathersjs.com"
- },
- "contributors": [],
- "bugs": {
- "url": "https://github.com/feathersjs/feathers/issues"
- },
- "engines": {
- "node": ">= 12"
- },
- "main": "lib/",
- "types": "lib/",
- "scripts": {
- "prepublish": "npm run compile",
- "pack": "npm pack --pack-destination ../generators/test/build",
- "compile": "shx rm -rf lib/ && tsc && npm run pack",
- "test": "mocha --config ../../.mocharc.json --recursive test/**.test.ts test/**/*.test.ts"
- },
- "directories": {
- "lib": "lib"
- },
- "files": [
- "CHANGELOG.md",
- "LICENSE",
- "README.md",
- "src/**",
- "lib/**"
- ],
- "publishConfig": {
- "access": "public"
- },
- "dependencies": {
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34"
- },
- "devDependencies": {
- "@types/mocha": "^10.0.10",
- "@types/mongodb": "^4.0.6",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "mongodb": "^6.18.0",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "gitHead": "90caf635aec850550b9d37bea2762af959d9e8d5"
-}
diff --git a/packages/adapter-commons/src/declarations.ts b/packages/adapter-commons/src/declarations.ts
deleted file mode 100644
index ce35da3dca..0000000000
--- a/packages/adapter-commons/src/declarations.ts
+++ /dev/null
@@ -1,162 +0,0 @@
-import { Query, Params, Paginated, Id, PaginationParams, PaginationOptions } from '@feathersjs/feathers'
-
-export type FilterQueryOptions = {
- filters?: FilterSettings
- operators?: string[]
- paginate?: PaginationParams
-}
-
-export type QueryFilter = (value: any, options: FilterQueryOptions) => any
-
-export type FilterSettings = {
- [key: string]: QueryFilter | true
-}
-
-// re-export from @feathersjs/feathers to prevent breaking changes
-export { PaginationOptions, PaginationParams }
-
-export interface AdapterServiceOptions {
- /**
- * Whether to allow multiple updates for everything (`true`) or specific methods (e.g. `['create', 'remove']`)
- */
- multi?: boolean | string[]
- /**
- * The name of the id property
- */
- id?: string
- /**
- * Pagination settings for this service
- */
- paginate?: PaginationParams
- /**
- * A list of additional property query operators to allow in a query
- *
- * @deprecated No longer needed when a query schema is used
- */
- operators?: string[]
- /**
- * An object of additional top level query filters, e.g. `{ $populate: true }`
- * Can also be a converter function like `{ $ignoreCase: (value) => value === 'true' ? true : false }`
- *
- * @deprecated No longer needed when a query schema is used
- */
- filters?: FilterSettings
- /**
- * @deprecated Use service `events` option when registering the service with `app.use`.
- */
- events?: string[]
- /**
- * @deprecated No longer needed when a query schema is used
- */
- whitelist?: string[]
-}
-
-export interface AdapterQuery extends Query {
- $limit?: number
- $skip?: number
- $select?: string[]
- $sort?: { [key: string]: 1 | -1 }
-}
-/**
- * Additional `params` that can be passed to an adapter service method call.
- */
-export interface AdapterParams<
- Q = AdapterQuery,
- A extends Partial = Partial
-> extends Params {
- adapter?: A
- paginate?: PaginationParams
-}
-
-/**
- * Hook-less (internal) service methods. Directly call database adapter service methods
- * without running any service-level hooks or sanitization. This can be useful if you need the raw data
- * from the service and don't want to trigger any of its hooks.
- *
- * Important: These methods are only available internally on the server, not on the client
- * side and only for the Feathers database adapters.
- *
- * These methods do not trigger events.
- *
- * @see {@link https://docs.feathersjs.com/guides/migrating.html#hook-less-service-methods}
- */
-export interface InternalServiceMethods<
- Result = any,
- Data = Result,
- PatchData = Partial,
- Params extends AdapterParams = AdapterParams,
- IdType = Id
-> {
- /**
- * Retrieve all resources from this service.
- * Does not sanitize the query and should only be used on the server.
- *
- * @param _params - Service call parameters {@link Params}
- */
- _find(_params?: Params & { paginate?: PaginationOptions }): Promise>
- _find(_params?: Params & { paginate: false }): Promise
- _find(params?: Params): Promise>
-
- /**
- * Retrieve a single resource matching the given ID, skipping any service-level hooks.
- * Does not sanitize the query and should only be used on the server.
- *
- * @param id - ID of the resource to locate
- * @param params - Service call parameters {@link Params}
- * @see {@link HookLessServiceMethods}
- * @see {@link https://docs.feathersjs.com/api/services.html#get-id-params|Feathers API Documentation: .get(id, params)}
- */
- _get(id: IdType, params?: Params): Promise
-
- /**
- * Create a new resource for this service, skipping any service-level hooks.
- * Does not sanitize data or checks if multiple updates are allowed and should only be used on the server.
- *
- * @param data - Data to insert into this service.
- * @param params - Service call parameters {@link Params}
- * @see {@link HookLessServiceMethods}
- * @see {@link https://docs.feathersjs.com/api/services.html#create-data-params|Feathers API Documentation: .create(data, params)}
- */
- _create(data: Data, params?: Params): Promise
- _create(data: Data[], params?: Params): Promise
- _create(data: Data | Data[], params?: Params): Promise
-
- /**
- * Completely replace the resource identified by id, skipping any service-level hooks.
- * Does not sanitize data or query and should only be used on the server.
- *
- * @param id - ID of the resource to be updated
- * @param data - Data to be put in place of the current resource.
- * @param params - Service call parameters {@link Params}
- * @see {@link HookLessServiceMethods}
- * @see {@link https://docs.feathersjs.com/api/services.html#update-id-data-params|Feathers API Documentation: .update(id, data, params)}
- */
- _update(id: IdType, data: Data, params?: Params): Promise
-
- /**
- * Merge any resources matching the given ID with the given data, skipping any service-level hooks.
- * Does not sanitize the data or query and should only be used on the server.
- *
- * @param id - ID of the resource to be patched
- * @param data - Data to merge with the current resource.
- * @param params - Service call parameters {@link Params}
- * @see {@link HookLessServiceMethods}
- * @see {@link https://docs.feathersjs.com/api/services.html#patch-id-data-params|Feathers API Documentation: .patch(id, data, params)}
- */
- _patch(id: null, data: PatchData, params?: Params): Promise
- _patch(id: IdType, data: PatchData, params?: Params): Promise
- _patch(id: IdType | null, data: PatchData, params?: Params): Promise
-
- /**
- * Remove resources matching the given ID from the this service, skipping any service-level hooks.
- * Does not sanitize query and should only be used on the server.
- *
- * @param id - ID of the resource to be removed
- * @param params - Service call parameters {@link Params}
- * @see {@link HookLessServiceMethods}
- * @see {@link https://docs.feathersjs.com/api/services.html#remove-id-params|Feathers API Documentation: .remove(id, params)}
- */
- _remove(id: null, params?: Params): Promise
- _remove(id: IdType, params?: Params): Promise
- _remove(id: IdType | null, params?: Params): Promise
-}
diff --git a/packages/adapter-commons/src/index.ts b/packages/adapter-commons/src/index.ts
deleted file mode 100644
index 8007e44e00..0000000000
--- a/packages/adapter-commons/src/index.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { _ } from '@feathersjs/commons'
-import { Params } from '@feathersjs/feathers'
-
-export * from './declarations'
-export * from './service'
-export * from './query'
-export * from './sort'
-
-// Return a function that filters a result object or array
-// and picks only the fields passed as `params.query.$select`
-// and additional `otherFields`
-export function select(params: Params, ...otherFields: string[]) {
- const queryFields: string[] | undefined = params?.query?.$select
-
- if (!queryFields) {
- return (result: any) => result
- }
-
- const resultFields = queryFields.concat(otherFields)
- const convert = (result: any) => _.pick(result, ...resultFields)
-
- return (result: any) => {
- if (Array.isArray(result)) {
- return result.map(convert)
- }
-
- return convert(result)
- }
-}
diff --git a/packages/adapter-commons/src/query.ts b/packages/adapter-commons/src/query.ts
deleted file mode 100644
index 1dc31ffdec..0000000000
--- a/packages/adapter-commons/src/query.ts
+++ /dev/null
@@ -1,158 +0,0 @@
-import { _ } from '@feathersjs/commons'
-import { BadRequest } from '@feathersjs/errors'
-import { Query } from '@feathersjs/feathers'
-import { FilterQueryOptions, FilterSettings, PaginationParams } from './declarations'
-
-const parse = (value: any) => (typeof value !== 'undefined' ? parseInt(value, 10) : value)
-
-const isPlainObject = (value: any) => _.isObject(value) && value.constructor === {}.constructor
-
-const validateQueryProperty = (query: any, operators: string[] = []): Query => {
- if (!isPlainObject(query)) {
- return query
- }
-
- for (const key of Object.keys(query)) {
- if (key.startsWith('$') && !operators.includes(key)) {
- throw new BadRequest(`Invalid query parameter ${key}`, query)
- }
-
- const value = query[key]
-
- if (isPlainObject(value)) {
- query[key] = validateQueryProperty(value, operators)
- }
- }
-
- return {
- ...query
- }
-}
-
-const getFilters = (query: Query, settings: FilterQueryOptions) => {
- const filterNames = Object.keys(settings.filters)
-
- return filterNames.reduce(
- (current, key) => {
- const queryValue = query[key]
- const filter = settings.filters[key]
-
- if (filter) {
- const value = typeof filter === 'function' ? filter(queryValue, settings) : queryValue
-
- if (value !== undefined) {
- current[key] = value
- }
- }
-
- return current
- },
- {} as { [key: string]: any }
- )
-}
-
-const getQuery = (query: Query, settings: FilterQueryOptions) => {
- const keys = Object.keys(query).concat(Object.getOwnPropertySymbols(query) as any as string[])
-
- return keys.reduce((result, key) => {
- if (typeof key === 'string' && key.startsWith('$')) {
- if (settings.filters[key] === undefined) {
- throw new BadRequest(`Invalid filter value ${key}`)
- }
- } else {
- result[key] = validateQueryProperty(query[key], settings.operators)
- }
-
- return result
- }, {} as Query)
-}
-
-/**
- * Returns the converted `$limit` value based on the `paginate` configuration.
- * @param _limit The limit value
- * @param paginate The pagination options
- * @returns The converted $limit value
- */
-export const getLimit = (_limit: any, paginate?: PaginationParams) => {
- const limit = parse(_limit)
-
- if (paginate && (paginate.default || paginate.max)) {
- const base = paginate.default || 0
- const lower = typeof limit === 'number' && !isNaN(limit) && limit >= 0 ? limit : base
- const upper = typeof paginate.max === 'number' ? paginate.max : Number.MAX_VALUE
-
- return Math.min(lower, upper)
- }
-
- return limit
-}
-
-export const OPERATORS = ['$in', '$nin', '$lt', '$lte', '$gt', '$gte', '$ne', '$or']
-
-export const FILTERS: FilterSettings = {
- $skip: (value: any) => parse(value),
- $sort: (sort: any): { [key: string]: number } => {
- if (typeof sort !== 'object' || Array.isArray(sort)) {
- return sort
- }
-
- return Object.keys(sort).reduce(
- (result, key) => {
- result[key] = typeof sort[key] === 'object' ? sort[key] : parse(sort[key])
-
- return result
- },
- {} as { [key: string]: number }
- )
- },
- $limit: (_limit: any, { paginate }: FilterQueryOptions) => getLimit(_limit, paginate),
- $select: (select: any) => {
- if (Array.isArray(select)) {
- return select.map((current) => `${current}`)
- }
-
- return select
- },
- $or: (or: any, { operators }: FilterQueryOptions) => {
- if (Array.isArray(or)) {
- return or.map((current) => validateQueryProperty(current, operators))
- }
-
- return or
- },
- $and: (and: any, { operators }: FilterQueryOptions) => {
- if (Array.isArray(and)) {
- return and.map((current) => validateQueryProperty(current, operators))
- }
-
- return and
- }
-}
-
-/**
- * Converts Feathers special query parameters and pagination settings
- * and returns them separately as `filters` and the rest of the query
- * as `query`. `options` also gets passed the pagination settings and
- * a list of additional `operators` to allow when querying properties.
- *
- * @param query The initial query
- * @param options Options for filtering the query
- * @returns An object with `query` which contains the query without `filters`
- * and `filters` which contains the converted values for each filter.
- */
-export function filterQuery(_query: Query, options: FilterQueryOptions = {}) {
- const query = _query || {}
- const settings = {
- ...options,
- filters: {
- ...FILTERS,
- ...options.filters
- },
- operators: OPERATORS.concat(options.operators || [])
- }
-
- return {
- filters: getFilters(query, settings),
- query: getQuery(query, settings)
- }
-}
diff --git a/packages/adapter-commons/src/service.ts b/packages/adapter-commons/src/service.ts
deleted file mode 100644
index cbaeb38718..0000000000
--- a/packages/adapter-commons/src/service.ts
+++ /dev/null
@@ -1,188 +0,0 @@
-import { Id, Paginated, Query } from '@feathersjs/feathers'
-import {
- AdapterParams,
- AdapterServiceOptions,
- InternalServiceMethods,
- PaginationOptions
-} from './declarations'
-import { filterQuery } from './query'
-
-export const VALIDATED = Symbol.for('@feathersjs/adapter/sanitized')
-
-const alwaysMulti: { [key: string]: boolean } = {
- find: true,
- get: false,
- update: false
-}
-
-/**
- * An abstract base class that a database adapter can extend from to implement the
- * `__find`, `__get`, `__update`, `__patch` and `__remove` methods.
- */
-export abstract class AdapterBase<
- Result = any,
- Data = Result,
- PatchData = Partial,
- ServiceParams extends AdapterParams = AdapterParams,
- Options extends AdapterServiceOptions = AdapterServiceOptions,
- IdType = Id
-> implements InternalServiceMethods
-{
- options: Options
-
- constructor(options: Options) {
- this.options = {
- id: 'id',
- events: [],
- paginate: false,
- multi: false,
- filters: {},
- operators: [],
- ...options
- }
- }
-
- get id() {
- return this.options.id
- }
-
- get events() {
- return this.options.events
- }
-
- /**
- * Check if this adapter allows multiple updates for a method.
- * @param method The method name to check.
- * @param params The service call params.
- * @returns Wether or not multiple updates are allowed.
- */
- allowsMulti(method: string, params: ServiceParams = {} as ServiceParams) {
- const always = alwaysMulti[method]
-
- if (typeof always !== 'undefined') {
- return always
- }
-
- const { multi } = this.getOptions(params)
-
- if (multi === true || !multi) {
- return multi
- }
-
- return multi.includes(method)
- }
-
- /**
- * Returns the combined options for a service call. Options will be merged
- * with `this.options` and `params.adapter` for dynamic overrides.
- *
- * @param params The parameters for the service method call
- * @returns The actual options for this call
- */
- getOptions(params: ServiceParams): Options {
- const paginate = params.paginate !== undefined ? params.paginate : this.options.paginate
-
- return {
- ...this.options,
- paginate,
- ...params.adapter
- }
- }
-
- /**
- * Returns a sanitized version of `params.query`, converting filter values
- * (like $limit and $skip) into the expected type. Will throw an error if
- * a `$` prefixed filter or operator value that is not allowed in `filters`
- * or `operators` is encountered.
- *
- * @param params The service call parameter.
- * @returns A new object containing the sanitized query.
- */
- async sanitizeQuery(params: ServiceParams = {} as ServiceParams): Promise {
- // We don't need legacy query sanitisation if the query has been validated by a schema already
- if (params.query && (params.query as any)[VALIDATED]) {
- return params.query || {}
- }
-
- const options = this.getOptions(params)
- const { query, filters } = filterQuery(params.query, options)
-
- return {
- ...filters,
- ...query
- }
- }
-
- /**
- * Retrieve all resources from this service.
- * Does not sanitize the query and should only be used on the server.
- *
- * @param _params - Service call parameters {@link ServiceParams}
- */
- abstract _find(_params?: ServiceParams & { paginate?: PaginationOptions }): Promise>
- abstract _find(_params?: ServiceParams & { paginate: false }): Promise
- abstract _find(params?: ServiceParams): Promise>
-
- /**
- * Retrieve a single resource matching the given ID, skipping any service-level hooks.
- * Does not sanitize the query and should only be used on the server.
- *
- * @param id - ID of the resource to locate
- * @param params - Service call parameters {@link ServiceParams}
- * @see {@link HookLessServiceMethods}
- * @see {@link https://docs.feathersjs.com/api/services.html#get-id-params|Feathers API Documentation: .get(id, params)}
- */
- abstract _get(id: IdType, params?: ServiceParams): Promise
-
- /**
- * Create a new resource for this service, skipping any service-level hooks.
- * Does not check if multiple updates are allowed and should only be used on the server.
- *
- * @param data - Data to insert into this service.
- * @param params - Service call parameters {@link ServiceParams}
- * @see {@link HookLessServiceMethods}
- * @see {@link https://docs.feathersjs.com/api/services.html#create-data-params|Feathers API Documentation: .create(data, params)}
- */
- abstract _create(data: Data, params?: ServiceParams): Promise
- abstract _create(data: Data[], params?: ServiceParams): Promise
- abstract _create(data: Data | Data[], params?: ServiceParams): Promise
-
- /**
- * Completely replace the resource identified by id, skipping any service-level hooks.
- * Does not sanitize the query and should only be used on the server.
- *
- * @param id - ID of the resource to be updated
- * @param data - Data to be put in place of the current resource.
- * @param params - Service call parameters {@link ServiceParams}
- * @see {@link HookLessServiceMethods}
- * @see {@link https://docs.feathersjs.com/api/services.html#update-id-data-params|Feathers API Documentation: .update(id, data, params)}
- */
- abstract _update(id: IdType, data: Data, params?: ServiceParams): Promise
-
- /**
- * Merge any resources matching the given ID with the given data, skipping any service-level hooks.
- * Does not sanitize the query and should only be used on the server.
- *
- * @param id - ID of the resource to be patched
- * @param data - Data to merge with the current resource.
- * @param params - Service call parameters {@link ServiceParams}
- * @see {@link HookLessServiceMethods}
- * @see {@link https://docs.feathersjs.com/api/services.html#patch-id-data-params|Feathers API Documentation: .patch(id, data, params)}
- */
- abstract _patch(id: null, data: PatchData, params?: ServiceParams): Promise
- abstract _patch(id: IdType, data: PatchData, params?: ServiceParams): Promise
- abstract _patch(id: IdType | null, data: PatchData, params?: ServiceParams): Promise
-
- /**
- * Remove resources matching the given ID from the this service, skipping any service-level hooks.
- * Does not sanitize query and should only be used on the server.
- *
- * @param id - ID of the resource to be removed
- * @param params - Service call parameters {@link ServiceParams}
- * @see {@link HookLessServiceMethods}
- * @see {@link https://docs.feathersjs.com/api/services.html#remove-id-params|Feathers API Documentation: .remove(id, params)}
- */
- abstract _remove(id: null, params?: ServiceParams): Promise
- abstract _remove(id: IdType, params?: ServiceParams): Promise
- abstract _remove(id: IdType | null, params?: ServiceParams): Promise
-}
diff --git a/packages/adapter-commons/src/sort.ts b/packages/adapter-commons/src/sort.ts
deleted file mode 100644
index d84cb69cc1..0000000000
--- a/packages/adapter-commons/src/sort.ts
+++ /dev/null
@@ -1,129 +0,0 @@
-// Sorting algorithm taken from NeDB (https://github.com/louischatriot/nedb)
-// See https://github.com/louischatriot/nedb/blob/e3f0078499aa1005a59d0c2372e425ab789145c1/lib/model.js#L189
-
-export function compareNSB(a: number | string | boolean, b: number | string | boolean): 0 | 1 | -1 {
- if (a === b) {
- return 0
- }
-
- return a < b ? -1 : 1
-}
-
-export function compareArrays(a: any[], b: any[]): 0 | 1 | -1 {
- for (let i = 0, l = Math.min(a.length, b.length); i < l; i++) {
- const comparison = compare(a[i], b[i])
-
- if (comparison !== 0) {
- return comparison
- }
- }
-
- // Common section was identical, longest one wins
- return compareNSB(a.length, b.length)
-}
-
-export function compare(
- a: any,
- b: any,
- compareStrings: (a: any, b: any) => 0 | 1 | -1 = compareNSB
-): 0 | 1 | -1 {
- if (a === b) {
- return 0
- }
-
- // null or undefined
- if (a == null) {
- return -1
- }
- if (b == null) {
- return 1
- }
-
- // detect typeof once
- const typeofA = typeof a
- const typeofB = typeof b
-
- // Numbers
- if (typeofA === 'number') {
- return typeofB === 'number' ? compareNSB(a, b) : -1
- }
- if (typeofB === 'number') {
- return 1
- }
-
- // Strings
- if (typeofA === 'string') {
- return typeofB === 'string' ? compareStrings(a, b) : -1
- }
- if (typeofB === 'string') {
- return 1
- }
-
- // Booleans
- if (typeofA === 'boolean') {
- return typeofB === 'boolean' ? compareNSB(a, b) : -1
- }
- if (typeofB === 'boolean') {
- return 1
- }
-
- // Dates
- if (a instanceof Date) {
- return b instanceof Date ? compareNSB(a.getTime(), b.getTime()) : -1
- }
- if (b instanceof Date) {
- return 1
- }
-
- // Arrays (first element is most significant and so on)
- if (Array.isArray(a)) {
- return Array.isArray(b) ? compareArrays(a, b) : -1
- }
- if (Array.isArray(b)) {
- return 1
- }
-
- // Objects
- const aKeys = Object.keys(a).sort()
- const bKeys = Object.keys(b).sort()
-
- for (let i = 0, l = Math.min(aKeys.length, bKeys.length); i < l; i++) {
- const comparison = compare(a[aKeys[i]], b[bKeys[i]])
-
- if (comparison !== 0) {
- return comparison
- }
- }
-
- return compareNSB(aKeys.length, bKeys.length)
-}
-
-// lodash-y get - probably want to use lodash get instead
-const get = (value: any, path: string[]) => path.reduce((value, key) => value[key], value)
-
-// An in-memory sorting function according to the
-// $sort special query parameter
-export function sorter($sort: { [key: string]: -1 | 1 }) {
- const compares = Object.keys($sort).map((key) => {
- const direction = $sort[key]
-
- if (!key.includes('.')) {
- return (a: any, b: any) => direction * compare(a[key], b[key])
- } else {
- const path = key.split('.')
- return (a: any, b: any) => direction * compare(get(a, path), get(b, path))
- }
- })
-
- return function (a: any, b: any) {
- for (const compare of compares) {
- const comparison = compare(a, b)
-
- if (comparison !== 0) {
- return comparison
- }
- }
-
- return 0
- }
-}
diff --git a/packages/adapter-commons/test/commons.test.ts b/packages/adapter-commons/test/commons.test.ts
deleted file mode 100644
index b0f5eb8d23..0000000000
--- a/packages/adapter-commons/test/commons.test.ts
+++ /dev/null
@@ -1,91 +0,0 @@
-import assert from 'assert'
-import { select } from '../src'
-
-describe('@feathersjs/adapter-commons', () => {
- describe('select', () => {
- it('select', () => {
- const selector = select({
- query: { $select: ['name', 'age'] }
- })
-
- return Promise.resolve({
- name: 'David',
- age: 3,
- test: 'me'
- })
- .then(selector)
- .then((result) =>
- assert.deepStrictEqual(result, {
- name: 'David',
- age: 3
- })
- )
- })
-
- it('select with arrays', () => {
- const selector = select({
- query: { $select: ['name', 'age'] }
- })
-
- return Promise.resolve([
- {
- name: 'David',
- age: 3,
- test: 'me'
- },
- {
- name: 'D',
- age: 4,
- test: 'you'
- }
- ])
- .then(selector)
- .then((result) =>
- assert.deepStrictEqual(result, [
- {
- name: 'David',
- age: 3
- },
- {
- name: 'D',
- age: 4
- }
- ])
- )
- })
-
- it('select with no query', () => {
- const selector = select({})
- const data = {
- name: 'David'
- }
-
- return Promise.resolve(data)
- .then(selector)
- .then((result) => assert.deepStrictEqual(result, data))
- })
-
- it('select with other fields', () => {
- const selector = select(
- {
- query: { $select: ['name'] }
- },
- 'id'
- )
- const data = {
- id: 'me',
- name: 'David',
- age: 10
- }
-
- return Promise.resolve(data)
- .then(selector)
- .then((result) =>
- assert.deepStrictEqual(result, {
- id: 'me',
- name: 'David'
- })
- )
- })
- })
-})
diff --git a/packages/adapter-commons/test/fixture.ts b/packages/adapter-commons/test/fixture.ts
deleted file mode 100644
index 43bd667d06..0000000000
--- a/packages/adapter-commons/test/fixture.ts
+++ /dev/null
@@ -1,115 +0,0 @@
-import { AdapterBase, AdapterParams, PaginationOptions } from '../src'
-import { Id, NullableId, Paginated } from '@feathersjs/feathers'
-import { BadRequest, MethodNotAllowed } from '@feathersjs/errors/lib'
-
-export type Data = {
- id: Id
-}
-
-export class MethodBase extends AdapterBase, AdapterParams> {
- async _find(_params?: AdapterParams & { paginate?: PaginationOptions }): Promise>
- async _find(_params?: AdapterParams & { paginate: false }): Promise
- async _find(params?: AdapterParams): Promise> {
- if (params && params.paginate === false) {
- return []
- }
-
- return {
- total: 0,
- limit: 10,
- skip: 0,
- data: []
- }
- }
-
- async _get(id: Id, _params?: AdapterParams): Promise {
- return { id }
- }
-
- async _create(data: Data, _params?: AdapterParams): Promise
- async _create(data: Data[], _params?: AdapterParams): Promise
- async _create(data: Data | Data[], _params?: AdapterParams): Promise
- async _create(data: Data | Data[], _params?: AdapterParams): Promise {
- if (Array.isArray(data)) {
- return [
- {
- id: 'something'
- }
- ]
- }
-
- return {
- id: 'something'
- }
- }
-
- async _update(id: Id, _data: Data, _params?: AdapterParams) {
- return Promise.resolve({ id: id ?? _data.id })
- }
-
- async _patch(id: null, _data: Partial, _params?: AdapterParams): Promise
- async _patch(id: Id, _data: Partial, _params?: AdapterParams): Promise
- async _patch(id: NullableId, _data: Partial, _params?: AdapterParams): Promise
- async _patch(id: NullableId, _data: Partial, _params?: AdapterParams): Promise {
- if (id === null) {
- return []
- }
-
- return { id }
- }
-
- async _remove(id: null, _params?: AdapterParams): Promise
- async _remove(id: Id, _params?: AdapterParams): Promise
- async _remove(id: NullableId, _params?: AdapterParams): Promise
- async _remove(id: NullableId, _params?: AdapterParams) {
- if (id === null) {
- return [] as Data[]
- }
-
- return { id }
- }
-}
-
-export class MethodService extends MethodBase {
- find(params?: AdapterParams): Promise> {
- return this._find(params)
- }
-
- get(id: Id, params?: AdapterParams): Promise {
- return this._get(id, params)
- }
-
- async create(data: Data[], _params?: AdapterParams): Promise
- async create(data: Data, _params?: AdapterParams): Promise
- async create(data: Data | Data[], params?: AdapterParams): Promise {
- if (Array.isArray(data) && !this.allowsMulti('create', params)) {
- throw new MethodNotAllowed('Can not create multiple entries')
- }
-
- return this._create(data, params)
- }
-
- async update(id: Id, data: Data, params?: AdapterParams) {
- if (id === null || Array.isArray(data)) {
- throw new BadRequest("You can not replace multiple instances. Did you mean 'patch'?")
- }
-
- return this._update(id, data, params)
- }
-
- async patch(id: NullableId, data: Partial, params?: AdapterParams) {
- if (id === null && !this.allowsMulti('patch', params)) {
- throw new MethodNotAllowed('Can not patch multiple entries')
- }
-
- return this._patch(id, data, params)
- }
-
- async remove(id: NullableId, params?: AdapterParams) {
- if (id === null && !this.allowsMulti('remove', params)) {
- throw new MethodNotAllowed('Can not remove multiple entries')
- }
-
- return this._remove(id, params)
- }
-}
diff --git a/packages/adapter-commons/test/query.test.ts b/packages/adapter-commons/test/query.test.ts
deleted file mode 100644
index 805704c97e..0000000000
--- a/packages/adapter-commons/test/query.test.ts
+++ /dev/null
@@ -1,313 +0,0 @@
-import assert from 'assert'
-import { ObjectId } from 'mongodb'
-import { filterQuery } from '../src'
-
-describe('@feathersjs/adapter-commons/filterQuery', () => {
- describe('$sort', () => {
- it('returns $sort when present in query', () => {
- const originalQuery = { $sort: { name: 1 } }
- const { filters, query } = filterQuery(originalQuery)
-
- assert.strictEqual(filters.$sort.name, 1)
- assert.deepStrictEqual(query, {})
- assert.deepStrictEqual(
- originalQuery,
- {
- $sort: { name: 1 }
- },
- 'does not modify original query'
- )
- })
-
- it('returns $sort when present in query as an object', () => {
- const { filters, query } = filterQuery({
- $sort: { name: { something: 10 } }
- })
-
- assert.strictEqual(filters.$sort.name.something, 10)
- assert.deepStrictEqual(query, {})
- })
-
- it('converts strings in $sort', () => {
- const { filters, query } = filterQuery({ $sort: { test: '-1' } })
-
- assert.strictEqual(filters.$sort.test, -1)
- assert.deepStrictEqual(query, {})
- })
-
- it('does not convert $sort arrays', () => {
- const $sort = [
- ['test', '-1'],
- ['a', '1']
- ]
- const { filters, query } = filterQuery({ $sort })
-
- assert.strictEqual(filters.$sort, $sort)
- assert.deepStrictEqual(query, {})
- })
-
- it('throws an error when special parameter is not known', () => {
- try {
- const query = { $foo: 1 }
- filterQuery(query)
- assert.ok(false, 'Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'BadRequest')
- assert.strictEqual(error.message, 'Invalid filter value $foo')
- }
- })
-
- it('returns undefined when not present in query', () => {
- const query = { foo: 1 }
- const { filters } = filterQuery(query)
-
- assert.strictEqual(filters.$sort, undefined)
- })
- })
-
- describe('$limit', () => {
- let testQuery: any
-
- beforeEach(() => {
- testQuery = { $limit: 1 }
- })
-
- it('returns $limit when present in query', () => {
- const { filters, query } = filterQuery(testQuery)
-
- assert.strictEqual(filters.$limit, 1)
- assert.deepStrictEqual(query, {})
- })
-
- it('returns undefined when not present in query', () => {
- const query = { foo: 1 }
- const { filters } = filterQuery(query)
-
- assert.strictEqual(filters.$limit, undefined)
- })
-
- it('removes $limit from query when present', () => {
- assert.deepStrictEqual(filterQuery(testQuery).query, {})
- })
-
- it('parses $limit strings into integers (#4)', () => {
- const { filters } = filterQuery({ $limit: '2' })
-
- assert.strictEqual(filters.$limit, 2)
- })
-
- it('allows $limit 0', () => {
- const { filters } = filterQuery({ $limit: 0 }, { paginate: { default: 10 } })
-
- assert.strictEqual(filters.$limit, 0)
- })
-
- describe('pagination', () => {
- it('limits with default pagination', () => {
- const { filters } = filterQuery({}, { paginate: { default: 10 } })
- const { filters: filtersNeg } = filterQuery({ $limit: -20 }, { paginate: { default: 5, max: 10 } })
-
- assert.strictEqual(filters.$limit, 10)
- assert.strictEqual(filtersNeg.$limit, 5)
- })
-
- it('limits with max pagination', () => {
- const { filters } = filterQuery({ $limit: 20 }, { paginate: { default: 5, max: 10 } })
-
- assert.strictEqual(filters.$limit, 10)
- })
-
- it('limits with default pagination when not a number', () => {
- const { filters } = filterQuery({ $limit: 'something' }, { paginate: { default: 5, max: 10 } })
-
- assert.strictEqual(filters.$limit, 5)
- })
-
- it('limits to 0 when no paginate.default and not a number', () => {
- const { filters } = filterQuery({ $limit: 'something' }, { paginate: { max: 10 } })
-
- assert.strictEqual(filters.$limit, 0)
- })
-
- it('still uses paginate.max when there is no paginate.default (#2104)', () => {
- const { filters } = filterQuery({ $limit: 100 }, { paginate: { max: 10 } })
-
- assert.strictEqual(filters.$limit, 10)
- })
- })
- })
-
- describe('$skip', () => {
- let testQuery: any
-
- beforeEach(() => {
- testQuery = { $skip: 1 }
- })
-
- it('returns $skip when present in query', () => {
- const { filters } = filterQuery(testQuery)
-
- assert.strictEqual(filters.$skip, 1)
- })
-
- it('removes $skip from query when present', () => {
- assert.deepStrictEqual(filterQuery(testQuery).query, {})
- })
-
- it('returns undefined when not present in query', () => {
- const query = { foo: 1 }
- const { filters } = filterQuery(query)
-
- assert.strictEqual(filters.$skip, undefined)
- })
-
- it('parses $skip strings into integers (#4)', () => {
- const { filters } = filterQuery({ $skip: '33' })
-
- assert.strictEqual(filters.$skip, 33)
- })
- })
-
- describe('$select', () => {
- let testQuery: any
-
- beforeEach(() => {
- testQuery = { $select: 1 }
- })
-
- it('returns $select when present in query', () => {
- const { filters } = filterQuery(testQuery)
-
- assert.strictEqual(filters.$select, 1)
- })
-
- it('removes $select from query when present', () => {
- assert.deepStrictEqual(filterQuery(testQuery).query, {})
- })
-
- it('returns undefined when not present in query', () => {
- const query = { foo: 1 }
- const { filters } = filterQuery(query)
-
- assert.strictEqual(filters.$select, undefined)
- })
-
- it('includes Symbols', () => {
- const TEST = Symbol('testing')
- const original = {
- [TEST]: 'message',
- other: true,
- sub: { [TEST]: 'othermessage' }
- }
-
- const { query } = filterQuery(original)
-
- assert.deepStrictEqual(query, {
- [TEST]: 'message',
- other: true,
- sub: { [TEST]: 'othermessage' }
- })
- })
-
- it('only converts plain objects', () => {
- const userId = new ObjectId()
- const original = {
- userId
- }
-
- const { query } = filterQuery(original)
-
- assert.deepStrictEqual(query, original)
- })
- })
-
- describe('arrays', () => {
- it('validates queries in arrays', () => {
- assert.throws(
- () => {
- filterQuery({
- $or: [{ $exists: false }]
- })
- },
- {
- name: 'BadRequest',
- message: 'Invalid query parameter $exists'
- }
- )
- })
-
- it('allows default operators in $or', () => {
- const { filters } = filterQuery({
- $or: [{ value: { $gte: 10 } }]
- })
-
- assert.deepStrictEqual(filters, {
- $or: [{ value: { $gte: 10 } }]
- })
- })
- })
-
- describe('additional filters', () => {
- it('throw error when not set as additionals', () => {
- try {
- filterQuery({ $select: 1, $known: 1 })
- assert.ok(false, 'Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.message, 'Invalid filter value $known')
- }
- })
-
- it('returns default and known additional filters (array)', () => {
- const query = { $select: ['a', 'b'], $known: 1, $unknown: 1 }
- const { filters } = filterQuery(query, {
- filters: {
- $known: true,
- $unknown: true
- }
- })
-
- assert.strictEqual(filters.$unknown, 1)
- assert.strictEqual(filters.$known, 1)
- assert.deepStrictEqual(filters.$select, ['a', 'b'])
- })
-
- it('returns default and known additional filters (object)', () => {
- const { filters } = filterQuery(
- {
- $known: 1,
- $select: 1
- },
- { filters: { $known: (value: any) => value.toString() } }
- )
-
- assert.strictEqual(filters.$unknown, undefined)
- assert.strictEqual(filters.$known, '1')
- assert.strictEqual(filters.$select, 1)
- })
- })
-
- describe('additional operators', () => {
- it('returns query with default and known additional operators', () => {
- const { query } = filterQuery(
- {
- prop: { $ne: 1, $known: 1 }
- },
- { operators: ['$known'] }
- )
-
- assert.deepStrictEqual(query, { prop: { $ne: 1, $known: 1 } })
- })
-
- it('throws an error with unknown query operator', () => {
- assert.throws(
- () =>
- filterQuery({
- prop: { $unknown: 'something' }
- }),
- {
- message: 'Invalid query parameter $unknown'
- }
- )
- })
- })
-})
diff --git a/packages/adapter-commons/test/service.test.ts b/packages/adapter-commons/test/service.test.ts
deleted file mode 100644
index ed5cc4a4c6..0000000000
--- a/packages/adapter-commons/test/service.test.ts
+++ /dev/null
@@ -1,227 +0,0 @@
-/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/ban-ts-comment */
-import assert from 'assert'
-import { VALIDATED } from '../src'
-import { MethodService } from './fixture'
-
-const METHODS: ['find', 'get', 'create', 'update', 'patch', 'remove'] = [
- 'find',
- 'get',
- 'create',
- 'update',
- 'patch',
- 'remove'
-]
-
-describe('@feathersjs/adapter-commons/service', () => {
- describe('works when methods exist', () => {
- METHODS.forEach((method) => {
- it(`${method}`, () => {
- const service = new MethodService({})
- const args: any[] = []
-
- if (method !== 'find') {
- args.push('test')
- }
-
- if (method === 'update' || method === 'patch') {
- args.push({})
- }
-
- // @ts-ignore
- return service[method](...args)
- })
- })
-
- it('does not allow multi patch', async () => {
- const service = new MethodService({})
-
- await assert.rejects(() => service.patch(null, {}), {
- name: 'MethodNotAllowed',
- message: 'Can not patch multiple entries'
- })
- })
-
- it('does not allow multi remove', async () => {
- const service = new MethodService({})
-
- await assert.rejects(() => service.remove(null, {}), {
- name: 'MethodNotAllowed',
- message: 'Can not remove multiple entries'
- })
- })
-
- it('does not allow multi create', async () => {
- const service = new MethodService({})
-
- await assert.rejects(() => service.create([], {}), {
- name: 'MethodNotAllowed',
- message: 'Can not create multiple entries'
- })
- })
-
- it('multi can be set to true', async () => {
- const service = new MethodService({})
-
- service.options.multi = true
-
- await service.create([])
- })
- })
-
- it('sanitizeQuery', async () => {
- const service = new MethodService({
- filters: {
- $something: true
- },
- operators: ['$test']
- })
-
- assert.deepStrictEqual(
- await service.sanitizeQuery({
- query: { $limit: '10', test: 'me' } as any
- }),
- { $limit: 10, test: 'me' }
- )
-
- assert.deepStrictEqual(
- await service.sanitizeQuery({
- adapter: {
- paginate: { max: 2 }
- },
- query: { $limit: '10', test: 'me' } as any
- }),
- { $limit: 2, test: 'me' }
- )
-
- await assert.rejects(
- () =>
- service.sanitizeQuery({
- query: { name: { $bla: 'me' } }
- }),
- {
- message: 'Invalid query parameter $bla'
- }
- )
-
- assert.deepStrictEqual(
- await service.sanitizeQuery({
- adapter: {
- operators: ['$bla']
- },
- query: { name: { $bla: 'Dave' } }
- }),
- { name: { $bla: 'Dave' } }
- )
-
- const validatedQuery = { name: { $bla: 'me' } }
-
- Object.defineProperty(validatedQuery, VALIDATED, { value: true })
-
- assert.deepStrictEqual(
- await service.sanitizeQuery({
- query: validatedQuery
- }),
- validatedQuery,
- 'validated queries are not sanitized'
- )
- })
-
- it('getOptions', () => {
- const service = new MethodService({
- multi: true,
- paginate: {
- default: 1,
- max: 10
- }
- })
- const opts = service.getOptions({
- adapter: {
- multi: ['create'],
- paginate: {
- default: 10,
- max: 100
- }
- }
- })
-
- assert.deepStrictEqual(opts, {
- id: 'id',
- events: [],
- paginate: { default: 10, max: 100 },
- multi: ['create'],
- filters: {},
- operators: []
- })
-
- const notPaginated = service.getOptions({
- paginate: false
- })
-
- assert.deepStrictEqual(notPaginated, {
- id: 'id',
- events: [],
- paginate: false,
- multi: true,
- filters: {},
- operators: []
- })
- })
-
- it('allowsMulti', () => {
- context('with true', () => {
- const service = new MethodService({ multi: true })
-
- it('does return true for multiple methodes', () => {
- assert.equal(service.allowsMulti('patch'), true)
- })
-
- it('does return false for always non-multiple methodes', () => {
- assert.equal(service.allowsMulti('update'), false)
- })
-
- it('does return true for unknown methods', () => {
- assert.equal(service.allowsMulti('other'), true)
- })
- })
-
- context('with false', () => {
- const service = new MethodService({ multi: false })
-
- it('does return false for multiple methodes', () => {
- assert.equal(service.allowsMulti('remove'), false)
- })
-
- it('does return true for always multiple methodes', () => {
- assert.equal(service.allowsMulti('find'), true)
- })
-
- it('does return false for unknown methods', () => {
- assert.equal(service.allowsMulti('other'), false)
- })
- })
-
- context('with array', () => {
- const service = new MethodService({ multi: ['create', 'get', 'other'] })
-
- it('does return true for specified multiple methodes', () => {
- assert.equal(service.allowsMulti('create'), true)
- })
-
- it('does return false for non-specified multiple methodes', () => {
- assert.equal(service.allowsMulti('patch'), false)
- })
-
- it('does return false for specified always multiple methodes', () => {
- assert.equal(service.allowsMulti('get'), false)
- })
-
- it('does return true for specified unknown methodes', () => {
- assert.equal(service.allowsMulti('other'), true)
- })
-
- it('does return false for non-specified unknown methodes', () => {
- assert.equal(service.allowsMulti('another'), false)
- })
- })
- })
-})
diff --git a/packages/adapter-commons/test/sort.test.ts b/packages/adapter-commons/test/sort.test.ts
deleted file mode 100644
index d361c681af..0000000000
--- a/packages/adapter-commons/test/sort.test.ts
+++ /dev/null
@@ -1,384 +0,0 @@
-import assert from 'assert'
-import { sorter } from '../src'
-
-describe('@feathersjs/adapter-commons', () => {
- describe('sorter', () => {
- it('simple sorter', () => {
- const array = [
- {
- name: 'David'
- },
- {
- name: 'Eric'
- }
- ]
-
- const sort = sorter({
- name: -1
- })
-
- assert.deepStrictEqual(array.sort(sort), [
- {
- name: 'Eric'
- },
- {
- name: 'David'
- }
- ])
- })
-
- it('simple sorter with arrays', () => {
- const array = [
- {
- names: ['a', 'b']
- },
- {
- names: ['c', 'd']
- }
- ]
-
- const sort = sorter({
- names: -1
- })
-
- assert.deepStrictEqual(array.sort(sort), [
- {
- names: ['c', 'd']
- },
- {
- names: ['a', 'b']
- }
- ])
- })
-
- it('simple sorter with objects', () => {
- const array = [
- {
- names: {
- first: 'Dave',
- last: 'L'
- }
- },
- {
- names: {
- first: 'A',
- last: 'B'
- }
- }
- ]
-
- const sort = sorter({
- names: 1
- })
-
- assert.deepStrictEqual(array.sort(sort), [
- {
- names: {
- first: 'A',
- last: 'B'
- }
- },
- {
- names: {
- first: 'Dave',
- last: 'L'
- }
- }
- ])
- })
-
- it('two property sorter', () => {
- const array = [
- {
- name: 'David',
- counter: 0
- },
- {
- name: 'Eric',
- counter: 1
- },
- {
- name: 'David',
- counter: 1
- },
- {
- name: 'Eric',
- counter: 0
- }
- ]
-
- const sort = sorter({
- name: -1,
- counter: 1
- })
-
- assert.deepStrictEqual(array.sort(sort), [
- { name: 'Eric', counter: 0 },
- { name: 'Eric', counter: 1 },
- { name: 'David', counter: 0 },
- { name: 'David', counter: 1 }
- ])
- })
-
- it('two property sorter with names', () => {
- const array = [
- {
- name: 'David',
- counter: 0
- },
- {
- name: 'Eric',
- counter: 1
- },
- {
- name: 'Andrew',
- counter: 1
- },
- {
- name: 'David',
- counter: 1
- },
- {
- name: 'Andrew',
- counter: 0
- },
- {
- name: 'Eric',
- counter: 0
- }
- ]
-
- const sort = sorter({
- name: -1,
- counter: 1
- })
-
- assert.deepStrictEqual(array.sort(sort), [
- { name: 'Eric', counter: 0 },
- { name: 'Eric', counter: 1 },
- { name: 'David', counter: 0 },
- { name: 'David', counter: 1 },
- { name: 'Andrew', counter: 0 },
- { name: 'Andrew', counter: 1 }
- ])
- })
-
- it('three property sorter with names', () => {
- const array = [
- {
- name: 'David',
- counter: 0,
- age: 2
- },
- {
- name: 'Eric',
- counter: 1,
- age: 2
- },
- {
- name: 'David',
- counter: 1,
- age: 1
- },
- {
- name: 'Eric',
- counter: 0,
- age: 1
- },
- {
- name: 'Andrew',
- counter: 0,
- age: 2
- },
- {
- name: 'Andrew',
- counter: 0,
- age: 1
- }
- ]
-
- const sort = sorter({
- name: -1,
- counter: 1,
- age: -1
- })
-
- assert.deepStrictEqual(array.sort(sort), [
- { name: 'Eric', counter: 0, age: 1 },
- { name: 'Eric', counter: 1, age: 2 },
- { name: 'David', counter: 0, age: 2 },
- { name: 'David', counter: 1, age: 1 },
- { name: 'Andrew', counter: 0, age: 2 },
- { name: 'Andrew', counter: 0, age: 1 }
- ])
- })
- })
-
- describe('sorter mongoDB-like sorting on embedded objects', () => {
- let data: any[] = []
-
- beforeEach(() => {
- data = [
- { _id: 1, item: { category: 'cake', type: 'chiffon' }, amount: 10 },
- {
- _id: 2,
- item: { category: 'cookies', type: 'chocolate chip' },
- amount: 50
- },
- {
- _id: 3,
- item: { category: 'cookies', type: 'chocolate chip' },
- amount: 15
- },
- { _id: 4, item: { category: 'cake', type: 'lemon' }, amount: 30 },
- { _id: 5, item: { category: 'cake', type: 'carrot' }, amount: 20 },
- { _id: 6, item: { category: 'brownies', type: 'blondie' }, amount: 10 }
- ]
- })
-
- it('straight test', () => {
- const sort = sorter({
- amount: -1
- })
-
- assert.deepStrictEqual(data.sort(sort), [
- {
- _id: 2,
- item: { category: 'cookies', type: 'chocolate chip' },
- amount: 50
- },
- { _id: 4, item: { category: 'cake', type: 'lemon' }, amount: 30 },
- { _id: 5, item: { category: 'cake', type: 'carrot' }, amount: 20 },
- {
- _id: 3,
- item: { category: 'cookies', type: 'chocolate chip' },
- amount: 15
- },
- { _id: 1, item: { category: 'cake', type: 'chiffon' }, amount: 10 },
- { _id: 6, item: { category: 'brownies', type: 'blondie' }, amount: 10 }
- ])
- })
-
- it('embedded sort 1', () => {
- const sort = sorter({
- 'item.category': 1,
- 'item.type': 1
- })
-
- assert.deepStrictEqual(data.sort(sort), [
- { _id: 6, item: { category: 'brownies', type: 'blondie' }, amount: 10 },
- { _id: 5, item: { category: 'cake', type: 'carrot' }, amount: 20 },
- { _id: 1, item: { category: 'cake', type: 'chiffon' }, amount: 10 },
- { _id: 4, item: { category: 'cake', type: 'lemon' }, amount: 30 },
- {
- _id: 2,
- item: { category: 'cookies', type: 'chocolate chip' },
- amount: 50
- },
- {
- _id: 3,
- item: { category: 'cookies', type: 'chocolate chip' },
- amount: 15
- }
- ])
- })
-
- it('embedded sort 2', () => {
- const sort = sorter({
- 'item.category': 1,
- 'item.type': 1,
- amount: 1
- })
-
- assert.deepStrictEqual(data.sort(sort), [
- { _id: 6, item: { category: 'brownies', type: 'blondie' }, amount: 10 },
- { _id: 5, item: { category: 'cake', type: 'carrot' }, amount: 20 },
- { _id: 1, item: { category: 'cake', type: 'chiffon' }, amount: 10 },
- { _id: 4, item: { category: 'cake', type: 'lemon' }, amount: 30 },
- {
- _id: 3,
- item: { category: 'cookies', type: 'chocolate chip' },
- amount: 15
- },
- {
- _id: 2,
- item: { category: 'cookies', type: 'chocolate chip' },
- amount: 50
- }
- ])
- })
-
- it('embedded sort 3', () => {
- const sort = sorter({
- 'item.category': 1,
- 'item.type': 1,
- amount: -1
- })
-
- assert.deepStrictEqual(data.sort(sort), [
- { _id: 6, item: { category: 'brownies', type: 'blondie' }, amount: 10 },
- { _id: 5, item: { category: 'cake', type: 'carrot' }, amount: 20 },
- { _id: 1, item: { category: 'cake', type: 'chiffon' }, amount: 10 },
- { _id: 4, item: { category: 'cake', type: 'lemon' }, amount: 30 },
- {
- _id: 2,
- item: { category: 'cookies', type: 'chocolate chip' },
- amount: 50
- },
- {
- _id: 3,
- item: { category: 'cookies', type: 'chocolate chip' },
- amount: 15
- }
- ])
- })
-
- it('embedded sort 4', () => {
- const sort = sorter({
- amount: -1,
- 'item.category': 1
- })
-
- assert.deepStrictEqual(data.sort(sort), [
- {
- _id: 2,
- item: { category: 'cookies', type: 'chocolate chip' },
- amount: 50
- },
- { _id: 4, item: { category: 'cake', type: 'lemon' }, amount: 30 },
- { _id: 5, item: { category: 'cake', type: 'carrot' }, amount: 20 },
- {
- _id: 3,
- item: { category: 'cookies', type: 'chocolate chip' },
- amount: 15
- },
- { _id: 6, item: { category: 'brownies', type: 'blondie' }, amount: 10 },
- { _id: 1, item: { category: 'cake', type: 'chiffon' }, amount: 10 }
- ])
- })
-
- it('embedded sort 5', () => {
- const sort = sorter({
- 'item.category': 1,
- amount: 1
- })
-
- assert.deepStrictEqual(data.sort(sort), [
- { _id: 6, item: { category: 'brownies', type: 'blondie' }, amount: 10 },
- { _id: 1, item: { category: 'cake', type: 'chiffon' }, amount: 10 },
- { _id: 5, item: { category: 'cake', type: 'carrot' }, amount: 20 },
- { _id: 4, item: { category: 'cake', type: 'lemon' }, amount: 30 },
- {
- _id: 3,
- item: { category: 'cookies', type: 'chocolate chip' },
- amount: 15
- },
- {
- _id: 2,
- item: { category: 'cookies', type: 'chocolate chip' },
- amount: 50
- }
- ])
- })
- })
-})
diff --git a/packages/adapter-commons/tsconfig.json b/packages/adapter-commons/tsconfig.json
deleted file mode 100644
index 316fd41336..0000000000
--- a/packages/adapter-commons/tsconfig.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "extends": "../../tsconfig",
- "include": [
- "src/**/*.ts"
- ],
- "compilerOptions": {
- "outDir": "lib"
- }
-}
diff --git a/packages/adapter-tests/CHANGELOG.md b/packages/adapter-tests/CHANGELOG.md
deleted file mode 100644
index 178df23c33..0000000000
--- a/packages/adapter-tests/CHANGELOG.md
+++ /dev/null
@@ -1,509 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file.
-See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-
-## [5.0.34](https://github.com/feathersjs/feathers/compare/v5.0.33...v5.0.34) (2025-05-03)
-
-### Bug Fixes
-
-- Update dependencies ([#3584](https://github.com/feathersjs/feathers/issues/3584)) ([119fa4e](https://github.com/feathersjs/feathers/commit/119fa4e1ade8b0078aa235083d566e2538b3a084))
-
-## [5.0.33](https://github.com/feathersjs/feathers/compare/v5.0.32...v5.0.33) (2025-02-24)
-
-### Bug Fixes
-
-- **dependencies:** Update dependencies ([#3571](https://github.com/feathersjs/feathers/issues/3571)) ([ad611cb](https://github.com/feathersjs/feathers/commit/ad611cb6ffb1dc31d603ba5817331318c5a23217))
-
-## [5.0.32](https://github.com/feathersjs/feathers/compare/v5.0.31...v5.0.32) (2025-02-01)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.31](https://github.com/feathersjs/feathers/compare/v5.0.30...v5.0.31) (2024-10-31)
-
-### Bug Fixes
-
-- **dependencies:** Update all dependencies ([#3545](https://github.com/feathersjs/feathers/issues/3545)) ([221b92b](https://github.com/feathersjs/feathers/commit/221b92bb0ee5d54fb1036742968797cb02e56da2))
-
-## [5.0.30](https://github.com/feathersjs/feathers/compare/v5.0.29...v5.0.30) (2024-09-02)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.29](https://github.com/feathersjs/feathers/compare/v5.0.28...v5.0.29) (2024-07-10)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.28](https://github.com/feathersjs/feathers/compare/v5.0.27...v5.0.28) (2024-07-10)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.27](https://github.com/feathersjs/feathers/compare/v5.0.26...v5.0.27) (2024-06-18)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.26](https://github.com/feathersjs/feathers/compare/v5.0.25...v5.0.26) (2024-06-09)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.25](https://github.com/feathersjs/feathers/compare/v5.0.24...v5.0.25) (2024-05-03)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.24](https://github.com/feathersjs/feathers/compare/v5.0.23...v5.0.24) (2024-03-13)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.23](https://github.com/feathersjs/feathers/compare/v5.0.22...v5.0.23) (2024-02-25)
-
-### Bug Fixes
-
-- **core:** Update to latest feathersjs/hooks ([#3434](https://github.com/feathersjs/feathers/issues/3434)) ([1499ccc](https://github.com/feathersjs/feathers/commit/1499ccc41fb3ebba97b2c84e0cb19bc48ad3c651))
-
-## [5.0.22](https://github.com/feathersjs/feathers/compare/v5.0.21...v5.0.22) (2024-02-15)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.21](https://github.com/feathersjs/feathers/compare/v5.0.20...v5.0.21) (2024-01-25)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.20](https://github.com/feathersjs/feathers/compare/v5.0.19...v5.0.20) (2024-01-24)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.19](https://github.com/feathersjs/feathers/compare/v5.0.18...v5.0.19) (2024-01-23)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.18](https://github.com/feathersjs/feathers/compare/v5.0.17...v5.0.18) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.17](https://github.com/feathersjs/feathers/compare/v5.0.16...v5.0.17) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.16](https://github.com/feathersjs/feathers/compare/v5.0.15...v5.0.16) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.15](https://github.com/feathersjs/feathers/compare/v5.0.14...v5.0.15) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.14](https://github.com/feathersjs/feathers/compare/v5.0.13...v5.0.14) (2024-01-05)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.13](https://github.com/feathersjs/feathers/compare/v5.0.12...v5.0.13) (2023-12-29)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.12](https://github.com/feathersjs/feathers/compare/v5.0.11...v5.0.12) (2023-11-28)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.11](https://github.com/feathersjs/feathers/compare/v5.0.10...v5.0.11) (2023-10-11)
-
-### Bug Fixes
-
-- **knex:** Update all dependencies and Knex peer ([#3308](https://github.com/feathersjs/feathers/issues/3308)) ([d2f9860](https://github.com/feathersjs/feathers/commit/d2f986036c4741cce2339d8abbcc6b2eb037a12a))
-
-## [5.0.10](https://github.com/feathersjs/feathers/compare/v5.0.9...v5.0.10) (2023-10-03)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.9](https://github.com/feathersjs/feathers/compare/v5.0.8...v5.0.9) (2023-09-27)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.8](https://github.com/feathersjs/feathers/compare/v5.0.7...v5.0.8) (2023-07-19)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.7](https://github.com/feathersjs/feathers/compare/v5.0.6...v5.0.7) (2023-07-14)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.6](https://github.com/feathersjs/feathers/compare/v5.0.5...v5.0.6) (2023-06-15)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [5.0.5](https://github.com/feathersjs/feathers/compare/v5.0.4...v5.0.5) (2023-04-28)
-
-### Bug Fixes
-
-- **typebox:** Revert to TypeBox 0.25 ([#3183](https://github.com/feathersjs/feathers/issues/3183)) ([cacedf5](https://github.com/feathersjs/feathers/commit/cacedf59e3d2df836777f0cd06ab1b2484ed87c5))
-
-## [5.0.4](https://github.com/feathersjs/feathers/compare/v5.0.3...v5.0.4) (2023-04-12)
-
-### Bug Fixes
-
-- **adapter-commons:** Support non-default import to ease use with ESM projects ([d06f2cf](https://github.com/feathersjs/feathers/commit/d06f2cfcadda7dc23f0e2bec44f64e6be8500d02))
-
-## [5.0.3](https://github.com/feathersjs/feathers/compare/v5.0.2...v5.0.3) (2023-04-05)
-
-### Bug Fixes
-
-- **dependencies:** Update all dependencies ([#3139](https://github.com/feathersjs/feathers/issues/3139)) ([f24276e](https://github.com/feathersjs/feathers/commit/f24276e9a909e2e58a0730c730258ce1f70f4028))
-
-## [5.0.1](https://github.com/feathersjs/feathers/compare/v5.0.0...v5.0.1) (2023-03-15)
-
-### Bug Fixes
-
-- **memory/mongodb:** $select as only property & force 'id' in '$select' ([#3081](https://github.com/feathersjs/feathers/issues/3081)) ([fbe3cf5](https://github.com/feathersjs/feathers/commit/fbe3cf5199e102b5aeda2ae33828d5034df3d105))
-
-# [5.0.0](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.38...v5.0.0) (2023-02-24)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.38](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.37...v5.0.0-pre.38) (2023-02-17)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.37](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.36...v5.0.0-pre.37) (2023-02-09)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.36](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.35...v5.0.0-pre.36) (2023-01-29)
-
-### Bug Fixes
-
-- **databases:** Improve documentation for adapters and allow dynamic Knex adapter options ([#3019](https://github.com/feathersjs/feathers/issues/3019)) ([66c4b5e](https://github.com/feathersjs/feathers/commit/66c4b5e72000dd03acb57fca1cad4737c85c9c9e))
-
-### Features
-
-- **database:** Add and to the query syntax ([#3021](https://github.com/feathersjs/feathers/issues/3021)) ([00cb0d9](https://github.com/feathersjs/feathers/commit/00cb0d9c302ae951ae007d3d6ceba33e254edd9c))
-
-# [5.0.0-pre.35](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.34...v5.0.0-pre.35) (2023-01-12)
-
-### Features
-
-- **generators:** Move core code generators to shared generators package ([#2982](https://github.com/feathersjs/feathers/issues/2982)) ([0328d22](https://github.com/feathersjs/feathers/commit/0328d2292153870bc43958f73d2c6f288a8cec17))
-
-# [5.0.0-pre.34](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.33...v5.0.0-pre.34) (2022-12-14)
-
-### Features
-
-- **adapter:** Add patch data type to adapters and refactor AdapterBase usage ([#2906](https://github.com/feathersjs/feathers/issues/2906)) ([9ddc2e6](https://github.com/feathersjs/feathers/commit/9ddc2e6b028f026f939d6af68125847e5c6734b4))
-
-# [5.0.0-pre.33](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.32...v5.0.0-pre.33) (2022-11-08)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.32](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.31...v5.0.0-pre.32) (2022-10-26)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.31](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.30...v5.0.0-pre.31) (2022-10-12)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.30](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.29...v5.0.0-pre.30) (2022-10-07)
-
-### Features
-
-- **core:** Allow to unregister services at runtime ([#2756](https://github.com/feathersjs/feathers/issues/2756)) ([d16601f](https://github.com/feathersjs/feathers/commit/d16601f2277dca5357866ffdefba2a611f6dc7fa))
-
-# [5.0.0-pre.29](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.28...v5.0.0-pre.29) (2022-09-16)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.28](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.27...v5.0.0-pre.28) (2022-08-03)
-
-### Bug Fixes
-
-- **cli:** Improve generated application and client ([#2701](https://github.com/feathersjs/feathers/issues/2701)) ([bd55ffb](https://github.com/feathersjs/feathers/commit/bd55ffb812e89bf215f4515e7f137656ea888c3f))
-
-# [5.0.0-pre.27](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.26...v5.0.0-pre.27) (2022-07-13)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.26](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.25...v5.0.0-pre.26) (2022-06-22)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.25](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.24...v5.0.0-pre.25) (2022-06-22)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.24](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.23...v5.0.0-pre.24) (2022-06-21)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.23](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.22...v5.0.0-pre.23) (2022-06-06)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.22](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.21...v5.0.0-pre.22) (2022-05-24)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.20](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.19...v5.0.0-pre.20) (2022-05-04)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.19](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.18...v5.0.0-pre.19) (2022-05-01)
-
-### Bug Fixes
-
-- **adapter-commons:** Clarify adapter query filtering ([#2607](https://github.com/feathersjs/feathers/issues/2607)) ([2dac771](https://github.com/feathersjs/feathers/commit/2dac771b0a3298d6dd25994d05186701b0617718))
-- **adapter-tests:** Ensure multi tests can run standalone ([#2608](https://github.com/feathersjs/feathers/issues/2608)) ([d7243f2](https://github.com/feathersjs/feathers/commit/d7243f20e84d9dde428ad8dfc7f48388ca569e6e))
-
-### BREAKING CHANGES
-
-- **adapter-commons:** Changes the common adapter base class to use `sanitizeQuery` and `sanitizeData`
-
-# [5.0.0-pre.18](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.17...v5.0.0-pre.18) (2022-04-11)
-
-### Bug Fixes
-
-- **adapter-tests:** Add tests for pagination in multi updates ([#2472](https://github.com/feathersjs/feathers/issues/2472)) ([98a811a](https://github.com/feathersjs/feathers/commit/98a811ac605575ff812a08d0504729a5efe7a69c))
-
-# [5.0.0-pre.17](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.16...v5.0.0-pre.17) (2022-02-15)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.16](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.15...v5.0.0-pre.16) (2022-01-12)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.15](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.14...v5.0.0-pre.15) (2021-11-27)
-
-### Bug Fixes
-
-- **typescript:** Overall typing improvements ([#2478](https://github.com/feathersjs/feathers/issues/2478)) ([b8eb804](https://github.com/feathersjs/feathers/commit/b8eb804158556d9651a8607e3c3fda15e0bfd110))
-
-# [5.0.0-pre.14](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.13...v5.0.0-pre.14) (2021-10-13)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.13](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.12...v5.0.0-pre.13) (2021-10-13)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.12](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.11...v5.0.0-pre.12) (2021-10-12)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.11](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.10...v5.0.0-pre.11) (2021-10-06)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.10](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.9...v5.0.0-pre.10) (2021-09-19)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.9](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.8...v5.0.0-pre.9) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.8](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.7...v5.0.0-pre.8) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.7](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.6...v5.0.0-pre.7) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.6](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.5...v5.0.0-pre.6) (2021-08-08)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.5](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.4...v5.0.0-pre.5) (2021-06-23)
-
-### Bug Fixes
-
-- Update database adapter common repository urls ([#2380](https://github.com/feathersjs/feathers/issues/2380)) ([3f4db68](https://github.com/feathersjs/feathers/commit/3f4db68d6700c7d9023ecd17d0d39893f75a19fd))
-
-### Features
-
-- **adapter-commons:** Add support for params.adapter option and move memory adapter to @feathersjs/memory ([#2367](https://github.com/feathersjs/feathers/issues/2367)) ([a43e7da](https://github.com/feathersjs/feathers/commit/a43e7da22b6b981a96d1321736ea9a0cb924fb4f))
-
-# [5.0.0-pre.4](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.3...v5.0.0-pre.4) (2021-05-13)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-pre.3](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.2...v5.0.0-pre.3) (2021-04-21)
-
-### Bug Fixes
-
-- **typescript:** Improve TypeScript backwards compatibility ([#2310](https://github.com/feathersjs/feathers/issues/2310)) ([f33be73](https://github.com/feathersjs/feathers/commit/f33be73fc46a533efb15df9aab0658e3240d3897))
-
-# [5.0.0-pre.2](https://github.com/feathersjs/feathers/compare/v5.0.0-beta.1...v5.0.0-pre.2) (2021-04-06)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [5.0.0-beta.1](https://github.com/feathersjs/feathers/compare/v5.0.0-beta.0...v5.0.0-beta.1) (2021-04-03)
-
-### Bug Fixes
-
-- **adapter-tests:** Add test that verified paginated total ([#2273](https://github.com/feathersjs/feathers/issues/2273)) ([879bd6b](https://github.com/feathersjs/feathers/commit/879bd6b24f42e04eeeeba110ddddda3e1e1dea34))
-
-# [5.0.0-beta.0](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.1...v5.0.0-beta.0) (2021-03-28)
-
-### Features
-
-- **core:** Remove Uberproto ([#2178](https://github.com/feathersjs/feathers/issues/2178)) ([ddf8821](https://github.com/feathersjs/feathers/commit/ddf8821f53317e6a378657f7d66acb03a037ee47))
-
-### BREAKING CHANGES
-
-- **core:** Services no longer extend Uberproto objects and
- `service.mixin()` is no longer available.
-
-# [5.0.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.5.11...v5.0.0-pre.1) (2020-12-17)
-
-### Features
-
-- **memory:** Move feathers-memory into @feathersjs/memory ([#2153](https://github.com/feathersjs/feathers/issues/2153)) ([dd61fe3](https://github.com/feathersjs/feathers/commit/dd61fe371fb0502f78b8ccbe1f45a030e31ecff6))
-
-## [4.5.11](https://github.com/feathersjs/feathers/compare/v4.5.10...v4.5.11) (2020-12-05)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [4.5.4](https://github.com/feathersjs/feathers/compare/v4.5.3...v4.5.4) (2020-09-27)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## 4.5.3 (2020-09-24)
-
-### Bug Fixes
-
-- **adapter-tests:** Update multi patch + query tests ([#5](https://github.com/feathersjs/databases/issues/5)) ([84f1fe4](https://github.com/feathersjs/databases/commit/84f1fe4f13dc3a26891e43b965f75d08243f6c6f))
-
-## [4.5.2](https://github.com/feathersjs/feathers/compare/v4.5.1...v4.5.2) (2020-03-04)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [4.5.1](https://github.com/feathersjs/feathers/compare/v4.5.0...v4.5.1) (2020-01-24)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [4.5.0](https://github.com/feathersjs/feathers/compare/v4.4.3...v4.5.0) (2020-01-18)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [4.4.3](https://github.com/feathersjs/feathers/compare/v4.4.1...v4.4.3) (2019-12-06)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [4.4.1](https://github.com/feathersjs/feathers/compare/v4.4.0...v4.4.1) (2019-11-27)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [4.4.0](https://github.com/feathersjs/feathers/compare/v4.3.11...v4.4.0) (2019-11-27)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [4.3.11](https://github.com/feathersjs/feathers/compare/v4.3.10...v4.3.11) (2019-11-11)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [4.3.10](https://github.com/feathersjs/feathers/compare/v4.3.9...v4.3.10) (2019-10-26)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [4.3.9](https://github.com/feathersjs/feathers/compare/v4.3.8...v4.3.9) (2019-10-26)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [4.3.7](https://github.com/feathersjs/feathers/compare/v4.3.6...v4.3.7) (2019-10-14)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [4.3.4](https://github.com/feathersjs/feathers/compare/v4.3.3...v4.3.4) (2019-10-03)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [4.3.3](https://github.com/feathersjs/feathers/compare/v4.3.2...v4.3.3) (2019-09-21)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [4.3.2](https://github.com/feathersjs/feathers/compare/v4.3.1...v4.3.2) (2019-09-16)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-## [4.3.1](https://github.com/feathersjs/feathers/compare/v4.3.0...v4.3.1) (2019-09-09)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [4.3.0](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.4...v4.3.0) (2019-08-27)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [4.3.0-pre.4](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.3...v4.3.0-pre.4) (2019-08-22)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [4.3.0-pre.3](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.2...v4.3.0-pre.3) (2019-08-19)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [4.3.0-pre.2](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.1...v4.3.0-pre.2) (2019-08-02)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [4.3.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.5...v4.3.0-pre.1) (2019-07-11)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [4.0.0-pre.5](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.4...v4.0.0-pre.5) (2019-07-10)
-
-### Bug Fixes
-
-- Fix feathers-memory dependency that did not get updated ([9422b13](https://github.com/feathersjs/feathers/commit/9422b13))
-
-# [4.0.0-pre.4](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.3...v4.0.0-pre.4) (2019-07-05)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [4.0.0-pre.3](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.2...v4.0.0-pre.3) (2019-06-01)
-
-### Bug Fixes
-
-- Update dependencies and fix tests ([#1373](https://github.com/feathersjs/feathers/issues/1373)) ([d743a7f](https://github.com/feathersjs/feathers/commit/d743a7f))
-
-# [4.0.0-pre.2](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.1...v4.0.0-pre.2) (2019-05-15)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [4.0.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.0...v4.0.0-pre.1) (2019-05-08)
-
-**Note:** Version bump only for package @feathersjs/adapter-tests
-
-# [4.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v3.2.0-pre.1...v4.0.0-pre.0) (2019-04-21)
-
-### Bug Fixes
-
-- Add test to make sure different id in adapter query works ([#1165](https://github.com/feathersjs/feathers/issues/1165)) ([0ba4580](https://github.com/feathersjs/feathers/commit/0ba4580))
-- Update adapter tests to not rely on error instance ([#1202](https://github.com/feathersjs/feathers/issues/1202)) ([6885e0e](https://github.com/feathersjs/feathers/commit/6885e0e))
-- Update all dependencies to latest ([#1206](https://github.com/feathersjs/feathers/issues/1206)) ([e51e0f6](https://github.com/feathersjs/feathers/commit/e51e0f6))
-
-### chore
-
-- **package:** Move adapter tests into their own module ([#1164](https://github.com/feathersjs/feathers/issues/1164)) ([dcc1e6b](https://github.com/feathersjs/feathers/commit/dcc1e6b))
-
-### Features
-
-- Add TypeScript definitions ([#1275](https://github.com/feathersjs/feathers/issues/1275)) ([9dd6713](https://github.com/feathersjs/feathers/commit/9dd6713))
-- Authentication v3 core server implementation ([#1205](https://github.com/feathersjs/feathers/issues/1205)) ([1bd7591](https://github.com/feathersjs/feathers/commit/1bd7591))
-
-### BREAKING CHANGES
-
-- **package:** Removes adapter tests from @feathersjs/adapter-commons
-
-## [1.0.1](https://github.com/feathersjs/feathers/compare/@feathersjs/adapter-tests@1.0.0...@feathersjs/adapter-tests@1.0.1) (2019-01-10)
-
-### Bug Fixes
-
-- Add test to make sure different id in adapter query works ([#1165](https://github.com/feathersjs/feathers/issues/1165)) ([0ba4580](https://github.com/feathersjs/feathers/commit/0ba4580))
-
-# 1.0.0 (2019-01-10)
-
-### chore
-
-- **package:** Move adapter tests into their own module ([#1164](https://github.com/feathersjs/feathers/issues/1164)) ([dcc1e6b](https://github.com/feathersjs/feathers/commit/dcc1e6b))
-
-### BREAKING CHANGES
-
-- **package:** Removes adapter tests from @feathersjs/adapter-commons
diff --git a/packages/adapter-tests/LICENSE b/packages/adapter-tests/LICENSE
deleted file mode 100644
index 7712f870f3..0000000000
--- a/packages/adapter-tests/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2024 Feathers Contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
diff --git a/packages/adapter-tests/README.md b/packages/adapter-tests/README.md
deleted file mode 100644
index ebbe6fddc2..0000000000
--- a/packages/adapter-tests/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Feathers Adapter Tests
-
-[](https://github.com/feathersjs/feathers/actions?query=workflow%3A%22Node.js+CI%22)
-[](https://www.npmjs.com/package/@feathersjs/adapter-commons)
-[](https://discord.gg/qa8kez8QBx)
-
-> Feathers shared database adapter test suite
-
-## About
-
-This is a repository that contains the test suite for the common database adapter syntax. See the [API documentation](https://docs.feathersjs.com/api/databases/common.html) for more information.
-
-## Authors
-
-[Feathers contributors](https://github.com/feathersjs/adapter-tests/graphs/contributors)
-
-## License
-
-Copyright (c) 2024 [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
-
-Licensed under the [MIT license](LICENSE).
diff --git a/packages/adapter-tests/package.json b/packages/adapter-tests/package.json
deleted file mode 100644
index 7af3b02f5b..0000000000
--- a/packages/adapter-tests/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "name": "@feathersjs/adapter-tests",
- "version": "5.0.34",
- "description": "Feathers shared database adapter test suite",
- "homepage": "https://feathersjs.com",
- "keywords": [
- "feathers"
- ],
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/feathers"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/feathersjs/feathers.git",
- "directory": "packages/adapter-tests"
- },
- "author": {
- "name": "Feathers contributor",
- "email": "hello@feathersjs.com",
- "url": "https://feathersjs.com"
- },
- "contributors": [],
- "bugs": {
- "url": "https://github.com/feathersjs/feathers/issues"
- },
- "engines": {
- "node": ">= 12"
- },
- "main": "lib/",
- "types": "lib/",
- "scripts": {
- "prepublish": "npm run compile",
- "pack": "npm pack --pack-destination ../generators/test/build",
- "compile": "shx rm -rf lib/ && tsc && npm run pack",
- "test": "mocha --config ../../.mocharc.json --recursive test/**.test.ts test/**/*.test.ts"
- },
- "directories": {
- "lib": "lib"
- },
- "files": [
- "CHANGELOG.md",
- "LICENSE",
- "README.md",
- "src/**",
- "lib/**"
- ],
- "publishConfig": {
- "access": "public"
- },
- "devDependencies": {
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "gitHead": "90caf635aec850550b9d37bea2762af959d9e8d5"
-}
diff --git a/packages/adapter-tests/src/basic.ts b/packages/adapter-tests/src/basic.ts
deleted file mode 100644
index c19ad64a76..0000000000
--- a/packages/adapter-tests/src/basic.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-import assert from 'assert'
-import { AdapterBasicTest } from './declarations'
-
-export default (test: AdapterBasicTest, app: any, _errors: any, serviceName: string, idProp: string) => {
- describe('Basic Functionality', () => {
- let service: any
-
- beforeEach(() => {
- service = app.service(serviceName)
- })
-
- it('.id', () => {
- assert.strictEqual(service.id, idProp, 'id property is set to expected name')
- })
-
- test('.options', () => {
- assert.ok(service.options, 'Options are available in service.options')
- })
-
- test('.events', () => {
- assert.ok(service.events.includes('testing'), 'service.events is set and includes "testing"')
- })
-
- describe('Raw Methods', () => {
- test('._get', () => {
- assert.strictEqual(typeof service._get, 'function')
- })
-
- test('._find', () => {
- assert.strictEqual(typeof service._find, 'function')
- })
-
- test('._create', () => {
- assert.strictEqual(typeof service._create, 'function')
- })
-
- test('._update', () => {
- assert.strictEqual(typeof service._update, 'function')
- })
-
- test('._patch', () => {
- assert.strictEqual(typeof service._patch, 'function')
- })
-
- test('._remove', () => {
- assert.strictEqual(typeof service._remove, 'function')
- })
- })
- })
-}
diff --git a/packages/adapter-tests/src/declarations.ts b/packages/adapter-tests/src/declarations.ts
deleted file mode 100644
index 1674ced7bd..0000000000
--- a/packages/adapter-tests/src/declarations.ts
+++ /dev/null
@@ -1,98 +0,0 @@
-export type AdapterTest = (name: AdapterTestName, runner: any) => void
-
-export type AdapterBasicTest = (name: AdapterBasicTestName, runner: any) => void
-export type AdapterMethodsTest = (name: AdapterMethodsTestName, runner: any) => void
-export type AdapterSyntaxTest = (name: AdapterSyntaxTestName, runner: any) => void
-
-export type AdapterTestName = AdapterBasicTestName | AdapterMethodsTestName | AdapterSyntaxTestName
-
-export type AdapterBasicTestName =
- | '.id'
- | '.options'
- | '.events'
- | '._get'
- | '._find'
- | '._create'
- | '._update'
- | '._patch'
- | '._remove'
- | '.$get'
- | '.$find'
- | '.$create'
- | '.$update'
- | '.$patch'
- | '.$remove'
-
-export type AdapterMethodsTestName =
- | '.get'
- | '.get + $select'
- | '.get + id + query'
- | '.get + NotFound'
- | '.get + NotFound (integer)'
- | '.get + id + query id'
- | '.find'
- | '.remove'
- | '.remove + $select'
- | '.remove + id + query'
- | '.remove + NotFound'
- | '.remove + NotFound (integer)'
- | '.remove + multi'
- | '.remove + multi no pagination'
- | '.remove + id + query id'
- | '.update'
- | '.update + $select'
- | '.update + id + query'
- | '.update + NotFound'
- | '.update + NotFound (integer)'
- | '.update + query + NotFound'
- | '.update + id + query id'
- | '.patch'
- | '.patch + $select'
- | '.patch + id + query'
- | '.patch multiple'
- | '.patch multiple no pagination'
- | '.patch multi query same'
- | '.patch multi query changed'
- | '.patch + NotFound'
- | '.patch + NotFound (integer)'
- | '.patch + query + NotFound'
- | '.patch + id + query id'
- | '.create'
- | '.create + $select'
- | '.create multi'
- | '.create ignores query'
- | 'internal .find'
- | 'internal .get'
- | 'internal .create'
- | 'internal .update'
- | 'internal .patch'
- | 'internal .remove'
-
-export type AdapterSyntaxTestName =
- | '.find + equal'
- | '.find + equal multiple'
- | '.find + $sort'
- | '.find + $sort + string'
- | '.find + $limit'
- | '.find + $limit 0'
- | '.find + $skip'
- | '.find + $select'
- | '.find + $or'
- | '.find + $in'
- | '.find + $nin'
- | '.find + $lt'
- | '.find + $lte'
- | '.find + $gt'
- | '.find + $gte'
- | '.find + $ne'
- | '.find + $gt + $lt + $sort'
- | '.find + $or nested + $sort'
- | '.find + $and'
- | '.find + $and + $or'
- | 'params.adapter + paginate'
- | 'params.adapter + multi'
- | '.find + paginate'
- | '.find + paginate + query'
- | '.find + paginate + $limit + $skip'
- | '.find + paginate + $limit 0'
- | '.find + paginate + params'
diff --git a/packages/adapter-tests/src/index.ts b/packages/adapter-tests/src/index.ts
deleted file mode 100644
index 9a86033698..0000000000
--- a/packages/adapter-tests/src/index.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-/* eslint-disable no-console */
-import basicTests from './basic'
-import { AdapterTestName } from './declarations'
-import methodTests from './methods'
-import syntaxTests from './syntax'
-
-export const adapterTests = (testNames: AdapterTestName[]) => {
- return (app: any, errors: any, serviceName: any, idProp = 'id') => {
- if (!serviceName) {
- throw new Error('You must pass a service name')
- }
-
- const skippedTests: AdapterTestName[] = []
- const allTests: AdapterTestName[] = []
-
- const test = (name: AdapterTestName, runner: any) => {
- const skip = !testNames.includes(name)
- const its = skip ? it.skip : it
-
- if (skip) {
- skippedTests.push(name)
- }
-
- allTests.push(name)
-
- its(name, runner)
- }
-
- describe(`Adapter tests for '${serviceName}' service with '${idProp}' id property`, () => {
- after(() => {
- testNames.forEach((name) => {
- if (!allTests.includes(name)) {
- console.error(`WARNING: '${name}' test is not part of the test suite`)
- }
- })
- if (skippedTests.length) {
- console.log(
- `\nSkipped the following ${skippedTests.length} Feathers adapter test(s) out of ${allTests.length} total:`
- )
- console.log(JSON.stringify(skippedTests, null, ' '))
- }
- })
-
- basicTests(test, app, errors, serviceName, idProp)
- methodTests(test, app, errors, serviceName, idProp)
- syntaxTests(test, app, errors, serviceName, idProp)
- })
- }
-}
-
-export * from './declarations'
-
-export default adapterTests
-
-if (typeof module !== 'undefined') {
- module.exports = Object.assign(adapterTests, module.exports)
-}
diff --git a/packages/adapter-tests/src/methods.ts b/packages/adapter-tests/src/methods.ts
deleted file mode 100644
index 84d6c3f18f..0000000000
--- a/packages/adapter-tests/src/methods.ts
+++ /dev/null
@@ -1,773 +0,0 @@
-import assert from 'assert'
-import { AdapterMethodsTest } from './declarations'
-
-export default (test: AdapterMethodsTest, app: any, _errors: any, serviceName: string, idProp: string) => {
- describe(' Methods', () => {
- let doug: any
- let service: any
-
- beforeEach(async () => {
- service = app.service(serviceName)
- doug = await app.service(serviceName).create({
- name: 'Doug',
- age: 32
- })
- })
-
- afterEach(async () => {
- try {
- await app.service(serviceName).remove(doug[idProp])
- } catch (error: any) {}
- })
-
- describe('get', () => {
- test('.get', async () => {
- const data = await service.get(doug[idProp])
-
- assert.strictEqual(data[idProp].toString(), doug[idProp].toString(), `${idProp} id matches`)
- assert.strictEqual(data.name, 'Doug', 'data.name matches')
- assert.strictEqual(data.age, 32, 'data.age matches')
- })
-
- test('.get + $select', async () => {
- const data = await service.get(doug[idProp], {
- query: { $select: ['name'] }
- })
-
- assert.strictEqual(data[idProp].toString(), doug[idProp].toString(), `${idProp} id property matches`)
- assert.strictEqual(data.name, 'Doug', 'data.name matches')
- assert.ok(!data.age, 'data.age is falsy')
- })
-
- test('.get + id + query', async () => {
- try {
- await service.get(doug[idProp], {
- query: { name: 'Tester' }
- })
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error')
- }
- })
-
- test('.get + NotFound', async () => {
- try {
- await service.get('568225fbfe21222432e836ff')
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error')
- }
- })
-
- test('.get + NotFound (integer)', async () => {
- try {
- await service.get(123456789)
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error')
- }
- })
-
- test('.get + id + query id', async () => {
- const alice = await service.create({
- name: 'Alice',
- age: 12
- })
-
- try {
- await service.get(doug[idProp], {
- query: { [idProp]: alice[idProp] }
- })
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error')
- }
-
- await service.remove(alice[idProp])
- })
- })
-
- describe('find', () => {
- test('.find', async () => {
- const data = await service.find()
-
- assert.ok(Array.isArray(data), 'Data is an array')
- assert.strictEqual(data.length, 1, 'Got one entry')
- })
- })
-
- describe('remove', () => {
- test('.remove', async () => {
- const data = await service.remove(doug[idProp])
-
- assert.strictEqual(data.name, 'Doug', 'data.name matches')
- })
-
- test('.remove + $select', async () => {
- const data = await service.remove(doug[idProp], {
- query: { $select: ['name'] }
- })
-
- assert.strictEqual(data[idProp].toString(), doug[idProp].toString(), `${idProp} id property matches`)
- assert.strictEqual(data.name, 'Doug', 'data.name matches')
- assert.ok(!data.age, 'data.age is falsy')
- })
-
- test('.remove + id + query', async () => {
- try {
- await service.remove(doug[idProp], {
- query: { name: 'Tester' }
- })
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error')
- }
- })
-
- test('.remove + NotFound', async () => {
- try {
- await service.remove('568225fbfe21222432e836ff')
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error')
- }
- })
-
- test('.remove + NotFound (integer)', async () => {
- try {
- await service.remove(123456789)
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error')
- }
- })
-
- test('.remove + multi', async () => {
- try {
- await service.remove(null)
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(
- error.name,
- 'MethodNotAllowed',
- 'Removing multiple without option set throws MethodNotAllowed'
- )
- }
-
- service.options.multi = ['remove']
-
- await service.create({ name: 'Dave', age: 29, created: true })
- await service.create({
- name: 'David',
- age: 3,
- created: true
- })
-
- const data = await service.remove(null, {
- query: { created: true }
- })
-
- assert.strictEqual(data.length, 2)
-
- const names = data.map((person: any) => person.name)
-
- assert.ok(names.includes('Dave'), 'Dave removed')
- assert.ok(names.includes('David'), 'David removed')
- })
-
- test('.remove + multi no pagination', async () => {
- try {
- await service.remove(doug[idProp])
- } catch (error: any) {}
-
- const count = 14
- const defaultPaginate = 10
-
- assert.ok(count > defaultPaginate, 'count is bigger than default pagination')
-
- const multiBefore = service.options.multi
- const paginateBefore = service.options.paginate
-
- try {
- service.options.multi = true
- service.options.paginate = {
- default: defaultPaginate,
- max: 100
- }
-
- const emptyItems = await service.find({ paginate: false })
- assert.strictEqual(emptyItems.length, 0, 'no items before')
-
- const createdItems = await service.create(
- Array.from(Array(count)).map((_, i) => ({
- name: `name-${i}`,
- age: 3,
- created: true
- }))
- )
- assert.strictEqual(createdItems.length, count, `created ${count} items`)
-
- const foundItems = await service.find({ paginate: false })
- assert.strictEqual(foundItems.length, count, `created ${count} items`)
-
- const foundPaginatedItems = await service.find({})
- assert.strictEqual(foundPaginatedItems.data.length, defaultPaginate, 'found paginated items')
-
- const allItems = await service.remove(null, {
- query: { created: true }
- })
-
- assert.strictEqual(allItems.length, count, `removed all ${count} items`)
- } finally {
- await service.remove(null, {
- query: { created: true },
- paginate: false
- })
-
- service.options.multi = multiBefore
- service.options.paginate = paginateBefore
- }
- })
-
- test('.remove + id + query id', async () => {
- const alice = await service.create({
- name: 'Alice',
- age: 12
- })
-
- try {
- await service.remove(doug[idProp], {
- query: { [idProp]: alice[idProp] }
- })
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error')
- }
-
- await service.remove(alice[idProp])
- })
- })
-
- describe('update', () => {
- test('.update', async () => {
- const originalData = { [idProp]: doug[idProp], name: 'Dougler' }
- const originalCopy = Object.assign({}, originalData)
-
- const data = await service.update(doug[idProp], originalData)
-
- assert.deepStrictEqual(originalData, originalCopy, 'data was not modified')
- assert.strictEqual(data[idProp].toString(), doug[idProp].toString(), `${idProp} id matches`)
- assert.strictEqual(data.name, 'Dougler', 'data.name matches')
- assert.ok(!data.age, 'data.age is falsy')
- })
-
- test('.update + $select', async () => {
- const originalData = {
- [idProp]: doug[idProp],
- name: 'Dougler',
- age: 10
- }
-
- const data = await service.update(doug[idProp], originalData, {
- query: { $select: ['name'] }
- })
-
- assert.strictEqual(data[idProp].toString(), doug[idProp].toString(), `${idProp} id property matches`)
- assert.strictEqual(data.name, 'Dougler', 'data.name matches')
- assert.ok(!data.age, 'data.age is falsy')
- })
-
- test('.update + id + query', async () => {
- try {
- await service.update(
- doug[idProp],
- {
- name: 'Dougler'
- },
- {
- query: { name: 'Tester' }
- }
- )
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error')
- }
- })
-
- test('.update + NotFound', async () => {
- try {
- await service.update('568225fbfe21222432e836ff', {
- name: 'NotFound'
- })
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error')
- }
- })
-
- test('.update + NotFound (integer)', async () => {
- try {
- await service.update(123456789, {
- name: 'NotFound'
- })
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error')
- }
- })
-
- test('.update + query + NotFound', async () => {
- const dave = await service.create({ name: 'Dave' })
- try {
- await service.update(dave[idProp], { name: 'UpdatedDave' }, { query: { name: 'NotDave' } })
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error')
- }
- await service.remove(dave[idProp])
- })
-
- test('.update + id + query id', async () => {
- const alice = await service.create({
- name: 'Alice',
- age: 12
- })
-
- try {
- await service.update(
- doug[idProp],
- {
- name: 'Dougler',
- age: 33
- },
- {
- query: { [idProp]: alice[idProp] }
- }
- )
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error')
- }
-
- await service.remove(alice[idProp])
- })
- })
-
- describe('patch', () => {
- test('.patch', async () => {
- const originalData = { [idProp]: doug[idProp], name: 'PatchDoug' }
- const originalCopy = Object.assign({}, originalData)
-
- const data = await service.patch(doug[idProp], originalData)
-
- assert.deepStrictEqual(originalData, originalCopy, 'original data was not modified')
- assert.strictEqual(data[idProp].toString(), doug[idProp].toString(), `${idProp} id matches`)
- assert.strictEqual(data.name, 'PatchDoug', 'data.name matches')
- assert.strictEqual(data.age, 32, 'data.age matches')
- })
-
- test('.patch + $select', async () => {
- const originalData = { [idProp]: doug[idProp], name: 'PatchDoug' }
-
- const data = await service.patch(doug[idProp], originalData, {
- query: { $select: ['name'] }
- })
-
- assert.strictEqual(data[idProp].toString(), doug[idProp].toString(), `${idProp} id property matches`)
- assert.strictEqual(data.name, 'PatchDoug', 'data.name matches')
- assert.ok(!data.age, 'data.age is falsy')
- })
-
- test('.patch + id + query', async () => {
- try {
- await service.patch(
- doug[idProp],
- {
- name: 'id patched doug'
- },
- {
- query: { name: 'Tester' }
- }
- )
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error')
- }
- })
-
- test('.patch multiple', async () => {
- try {
- await service.patch(null, {})
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(
- error.name,
- 'MethodNotAllowed',
- 'Removing multiple without option set throws MethodNotAllowed'
- )
- }
-
- const params = {
- query: { created: true }
- }
- const dave = await service.create({
- name: 'Dave',
- age: 29,
- created: true
- })
- const david = await service.create({
- name: 'David',
- age: 3,
- created: true
- })
-
- service.options.multi = ['patch']
-
- const data = await service.patch(
- null,
- {
- age: 2
- },
- params
- )
-
- assert.strictEqual(data.length, 2, 'returned two entries')
- assert.strictEqual(data[0].age, 2, 'First entry age was updated')
- assert.strictEqual(data[1].age, 2, 'Second entry age was updated')
-
- await service.remove(dave[idProp])
- await service.remove(david[idProp])
- })
-
- test('.patch multiple no pagination', async () => {
- try {
- await service.remove(doug[idProp])
- } catch (error: any) {}
-
- const count = 14
- const defaultPaginate = 10
-
- assert.ok(count > defaultPaginate, 'count is bigger than default pagination')
-
- const multiBefore = service.options.multi
- const paginateBefore = service.options.paginate
-
- let ids: any[]
-
- try {
- service.options.multi = true
- service.options.paginate = {
- default: defaultPaginate,
- max: 100
- }
-
- const emptyItems = await service.find({ paginate: false })
- assert.strictEqual(emptyItems.length, 0, 'no items before')
-
- const createdItems = await service.create(
- Array.from(Array(count)).map((_, i) => ({
- name: `name-${i}`,
- age: 3,
- created: true
- }))
- )
- assert.strictEqual(createdItems.length, count, `created ${count} items`)
- ids = createdItems.map((item: any) => item[idProp])
-
- const foundItems = await service.find({ paginate: false })
- assert.strictEqual(foundItems.length, count, `created ${count} items`)
-
- const foundPaginatedItems = await service.find({})
- assert.strictEqual(foundPaginatedItems.data.length, defaultPaginate, 'found paginated data')
-
- const allItems = await service.patch(null, { age: 4 }, { query: { created: true } })
-
- assert.strictEqual(allItems.length, count, `patched all ${count} items`)
- } finally {
- service.options.multi = multiBefore
- service.options.paginate = paginateBefore
- if (ids) {
- await Promise.all(ids.map((id) => service.remove(id)))
- }
- }
- })
-
- test('.patch multi query same', async () => {
- const service = app.service(serviceName)
- const multiBefore = service.options.multi
-
- service.options.multi = true
-
- const params = {
- query: { age: { $lt: 10 } }
- }
- const dave = await service.create({
- name: 'Dave',
- age: 8,
- created: true
- })
- const david = await service.create({
- name: 'David',
- age: 4,
- created: true
- })
-
- const data = await service.patch(
- null,
- {
- age: 2
- },
- params
- )
-
- assert.strictEqual(data.length, 2, 'returned two entries')
- assert.strictEqual(data[0].age, 2, 'First entry age was updated')
- assert.strictEqual(data[1].age, 2, 'Second entry age was updated')
-
- await service.remove(dave[idProp])
- await service.remove(david[idProp])
-
- service.options.multi = multiBefore
- })
-
- test('.patch multi query changed', async () => {
- const service = app.service(serviceName)
- const multiBefore = service.options.multi
-
- service.options.multi = true
-
- const params = {
- query: { age: 10 }
- }
- const dave = await service.create({
- name: 'Dave',
- age: 10,
- created: true
- })
- const david = await service.create({
- name: 'David',
- age: 10,
- created: true
- })
-
- const data = await service.patch(
- null,
- {
- age: 2
- },
- params
- )
-
- assert.strictEqual(data.length, 2, 'returned two entries')
- assert.strictEqual(data[0].age, 2, 'First entry age was updated')
- assert.strictEqual(data[1].age, 2, 'Second entry age was updated')
-
- await service.remove(dave[idProp])
- await service.remove(david[idProp])
-
- service.options.multi = multiBefore
- })
-
- test('.patch + NotFound', async () => {
- try {
- await service.patch('568225fbfe21222432e836ff', {
- name: 'PatchDoug'
- })
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error')
- }
- })
-
- test('.patch + NotFound (integer)', async () => {
- try {
- await service.patch(123456789, {
- name: 'PatchDoug'
- })
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error')
- }
- })
-
- test('.patch + query + NotFound', async () => {
- const dave = await service.create({ name: 'Dave' })
- try {
- await service.patch(dave[idProp], { name: 'PatchedDave' }, { query: { name: 'NotDave' } })
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error')
- }
- await service.remove(dave[idProp])
- })
-
- test('.patch + id + query id', async () => {
- const alice = await service.create({
- name: 'Alice',
- age: 12
- })
-
- try {
- await service.patch(
- doug[idProp],
- {
- age: 33
- },
- {
- query: { [idProp]: alice[idProp] }
- }
- )
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error')
- }
-
- await service.remove(alice[idProp])
- })
- })
-
- describe('create', () => {
- test('.create', async () => {
- const originalData = {
- name: 'Bill',
- age: 40
- }
- const originalCopy = Object.assign({}, originalData)
-
- const data = await service.create(originalData)
-
- assert.deepStrictEqual(originalData, originalCopy, 'original data was not modified')
- assert.ok(data instanceof Object, 'data is an object')
- assert.strictEqual(data.name, 'Bill', 'data.name matches')
-
- await service.remove(data[idProp])
- })
-
- test('.create ignores query', async () => {
- const originalData = {
- name: 'Billy',
- age: 42
- }
- const data = await service.create(originalData, {
- query: {
- name: 'Dave'
- }
- })
-
- assert.strictEqual(data.name, 'Billy', 'data.name matches')
-
- await service.remove(data[idProp])
- })
-
- test('.create + $select', async () => {
- const originalData = {
- name: 'William',
- age: 23
- }
-
- const data = await service.create(originalData, {
- query: { $select: ['name'] }
- })
-
- assert.ok(idProp in data, 'data has id')
- assert.strictEqual(data.name, 'William', 'data.name matches')
- assert.ok(!data.age, 'data.age is falsy')
-
- await service.remove(data[idProp])
- })
-
- test('.create multi', async () => {
- try {
- await service.create([], {})
- throw new Error('Should never get here')
- } catch (error: any) {
- assert.strictEqual(
- error.name,
- 'MethodNotAllowed',
- 'Removing multiple without option set throws MethodNotAllowed'
- )
- }
-
- const items = [
- {
- name: 'Gerald',
- age: 18
- },
- {
- name: 'Herald',
- age: 18
- }
- ]
-
- service.options.multi = ['create', 'patch']
-
- const data = await service.create(items)
-
- assert.ok(Array.isArray(data), 'data is an array')
- assert.ok(typeof data[0][idProp] !== 'undefined', 'id is set')
- assert.strictEqual(data[0].name, 'Gerald', 'first name matches')
- assert.ok(typeof data[1][idProp] !== 'undefined', 'id is set')
- assert.strictEqual(data[1].name, 'Herald', 'second name macthes')
-
- await service.remove(data[0][idProp])
- await service.remove(data[1][idProp])
- })
- })
-
- describe("doesn't call public methods internally", () => {
- let throwing: any
-
- before(() => {
- throwing = Object.assign(Object.create(app.service(serviceName)), {
- get store() {
- return app.service(serviceName).store
- },
-
- find() {
- throw new Error('find method called')
- },
- get() {
- throw new Error('get method called')
- },
- create() {
- throw new Error('create method called')
- },
- update() {
- throw new Error('update method called')
- },
- patch() {
- throw new Error('patch method called')
- },
- remove() {
- throw new Error('remove method called')
- }
- })
- })
-
- test('internal .find', () => app.service(serviceName).find.call(throwing))
-
- test('internal .get', () => service.get.call(throwing, doug[idProp]))
-
- test('internal .create', async () => {
- const bob = await service.create.call(throwing, {
- name: 'Bob',
- age: 25
- })
-
- await service.remove(bob[idProp])
- })
-
- test('internal .update', () =>
- service.update.call(throwing, doug[idProp], {
- name: 'Dougler'
- }))
-
- test('internal .patch', () =>
- service.patch.call(throwing, doug[idProp], {
- name: 'PatchDoug'
- }))
-
- test('internal .remove', () => service.remove.call(throwing, doug[idProp]))
- })
- })
-}
diff --git a/packages/adapter-tests/src/syntax.ts b/packages/adapter-tests/src/syntax.ts
deleted file mode 100644
index e559d394c2..0000000000
--- a/packages/adapter-tests/src/syntax.ts
+++ /dev/null
@@ -1,423 +0,0 @@
-import assert from 'assert'
-import { AdapterSyntaxTest } from './declarations'
-
-export default (test: AdapterSyntaxTest, app: any, _errors: any, serviceName: string, idProp: string) => {
- describe('Query Syntax', () => {
- let bob: any
- let alice: any
- let doug: any
- let service: any
-
- beforeEach(async () => {
- service = app.service(serviceName)
- bob = await app.service(serviceName).create({
- name: 'Bob',
- age: 25
- })
- doug = await app.service(serviceName).create({
- name: 'Doug',
- age: 32
- })
- alice = await app.service(serviceName).create({
- name: 'Alice',
- age: 19
- })
- })
-
- afterEach(async () => {
- await service.remove(bob[idProp])
- await service.remove(alice[idProp])
- await service.remove(doug[idProp])
- })
-
- test('.find + equal', async () => {
- const params = { query: { name: 'Alice' } }
- const data = await service.find(params)
-
- assert.ok(Array.isArray(data))
- assert.strictEqual(data.length, 1)
- assert.strictEqual(data[0].name, 'Alice')
- })
-
- test('.find + equal multiple', async () => {
- const data = await service.find({
- query: { name: 'Alice', age: 20 }
- })
-
- assert.strictEqual(data.length, 0)
- })
-
- describe('special filters', () => {
- test('.find + $sort', async () => {
- let data = await service.find({
- query: {
- $sort: { name: 1 }
- }
- })
-
- assert.strictEqual(data.length, 3)
- assert.strictEqual(data[0].name, 'Alice')
- assert.strictEqual(data[1].name, 'Bob')
- assert.strictEqual(data[2].name, 'Doug')
-
- data = await service.find({
- query: {
- $sort: { name: -1 }
- }
- })
-
- assert.strictEqual(data.length, 3)
- assert.strictEqual(data[0].name, 'Doug')
- assert.strictEqual(data[1].name, 'Bob')
- assert.strictEqual(data[2].name, 'Alice')
- })
-
- test('.find + $sort + string', async () => {
- const data = await service.find({
- query: {
- $sort: { name: '1' }
- }
- })
-
- assert.strictEqual(data.length, 3)
- assert.strictEqual(data[0].name, 'Alice')
- assert.strictEqual(data[1].name, 'Bob')
- assert.strictEqual(data[2].name, 'Doug')
- })
-
- test('.find + $limit', async () => {
- const data = await service.find({
- query: {
- $limit: 2
- }
- })
-
- assert.strictEqual(data.length, 2)
- })
-
- test('.find + $limit 0', async () => {
- const data = await service.find({
- query: {
- $limit: 0
- }
- })
-
- assert.strictEqual(data.length, 0)
- })
-
- test('.find + $skip', async () => {
- const data = await service.find({
- query: {
- $sort: { name: 1 },
- $skip: 1
- }
- })
-
- assert.strictEqual(data.length, 2)
- assert.strictEqual(data[0].name, 'Bob')
- assert.strictEqual(data[1].name, 'Doug')
- })
-
- test('.find + $select', async () => {
- const data = await service.find({
- query: {
- name: 'Alice',
- $select: ['name']
- }
- })
-
- assert.strictEqual(data.length, 1)
- assert.ok(idProp in data[0], 'data has id')
- assert.strictEqual(data[0].name, 'Alice')
- assert.strictEqual(data[0].age, undefined)
- })
-
- test('.find + $or', async () => {
- const data = await service.find({
- query: {
- $or: [{ name: 'Alice' }, { name: 'Bob' }],
- $sort: { name: 1 }
- }
- })
-
- assert.strictEqual(data.length, 2)
- assert.strictEqual(data[0].name, 'Alice')
- assert.strictEqual(data[1].name, 'Bob')
- })
-
- test('.find + $in', async () => {
- const data = await service.find({
- query: {
- name: {
- $in: ['Alice', 'Bob']
- },
- $sort: { name: 1 }
- }
- })
-
- assert.strictEqual(data.length, 2)
- assert.strictEqual(data[0].name, 'Alice')
- assert.strictEqual(data[1].name, 'Bob')
- })
-
- test('.find + $nin', async () => {
- const data = await service.find({
- query: {
- name: {
- $nin: ['Alice', 'Bob']
- }
- }
- })
-
- assert.strictEqual(data.length, 1)
- assert.strictEqual(data[0].name, 'Doug')
- })
-
- test('.find + $lt', async () => {
- const data = await service.find({
- query: {
- age: {
- $lt: 30
- }
- }
- })
-
- assert.strictEqual(data.length, 2)
- })
-
- test('.find + $lte', async () => {
- const data = await service.find({
- query: {
- age: {
- $lte: 25
- }
- }
- })
-
- assert.strictEqual(data.length, 2)
- })
-
- test('.find + $gt', async () => {
- const data = await service.find({
- query: {
- age: {
- $gt: 30
- }
- }
- })
-
- assert.strictEqual(data.length, 1)
- })
-
- test('.find + $gte', async () => {
- const data = await service.find({
- query: {
- age: {
- $gte: 25
- }
- }
- })
-
- assert.strictEqual(data.length, 2)
- })
-
- test('.find + $ne', async () => {
- const data = await service.find({
- query: {
- age: {
- $ne: 25
- }
- }
- })
-
- assert.strictEqual(data.length, 2)
- })
- })
-
- test('.find + $gt + $lt + $sort', async () => {
- const params = {
- query: {
- age: {
- $gt: 18,
- $lt: 30
- },
- $sort: { name: 1 }
- }
- }
-
- const data = await service.find(params)
-
- assert.strictEqual(data.length, 2)
- assert.strictEqual(data[0].name, 'Alice')
- assert.strictEqual(data[1].name, 'Bob')
- })
-
- test('.find + $or nested + $sort', async () => {
- const params = {
- query: {
- $or: [
- { name: 'Doug' },
- {
- age: {
- $gte: 18,
- $lt: 25
- }
- }
- ],
- $sort: { name: 1 }
- }
- }
-
- const data = await service.find(params)
-
- assert.strictEqual(data.length, 2)
- assert.strictEqual(data[0].name, 'Alice')
- assert.strictEqual(data[1].name, 'Doug')
- })
-
- test('.find + $and', async () => {
- const params = {
- query: {
- $and: [{ age: 19 }],
- $sort: { name: 1 }
- }
- }
-
- const data = await service.find(params)
-
- assert.strictEqual(data.length, 1)
- assert.strictEqual(data[0].name, 'Alice')
- })
-
- test('.find + $and + $or', async () => {
- const params = {
- query: {
- $and: [{ $or: [{ name: 'Alice' }] }],
- $sort: { name: 1 }
- }
- }
-
- const data = await service.find(params)
-
- assert.strictEqual(data.length, 1)
- assert.strictEqual(data[0].name, 'Alice')
- })
-
- describe('params.adapter', () => {
- test('params.adapter + paginate', async () => {
- const page = await service.find({
- adapter: {
- paginate: { default: 3 }
- }
- })
-
- assert.strictEqual(page.limit, 3)
- assert.strictEqual(page.skip, 0)
- })
-
- test('params.adapter + multi', async () => {
- const items = [
- {
- name: 'Garald',
- age: 200
- },
- {
- name: 'Harald',
- age: 24
- }
- ]
- const multiParams = {
- adapter: {
- multi: ['create']
- }
- }
- const users = await service.create(items, multiParams)
-
- assert.strictEqual(users.length, 2)
-
- await service.remove(users[0][idProp])
- await service.remove(users[1][idProp])
- await assert.rejects(() => service.patch(null, { age: 2 }, multiParams), {
- message: 'Can not patch multiple entries'
- })
- })
- })
-
- describe('paginate', function () {
- beforeEach(() => {
- service.options.paginate = {
- default: 1,
- max: 2
- }
- })
-
- afterEach(() => {
- service.options.paginate = {}
- })
-
- test('.find + paginate', async () => {
- const page = await service.find({
- query: { $sort: { name: -1 } }
- })
-
- assert.strictEqual(page.total, 3)
- assert.strictEqual(page.limit, 1)
- assert.strictEqual(page.skip, 0)
- assert.strictEqual(page.data[0].name, 'Doug')
- })
-
- test('.find + paginate + query', async () => {
- const page = await service.find({
- query: {
- $sort: { name: -1 },
- name: 'Doug'
- }
- })
-
- assert.strictEqual(page.total, 1)
- assert.strictEqual(page.limit, 1)
- assert.strictEqual(page.skip, 0)
- assert.strictEqual(page.data[0].name, 'Doug')
- })
-
- test('.find + paginate + $limit + $skip', async () => {
- const params = {
- query: {
- $skip: 1,
- $limit: 4,
- $sort: { name: -1 }
- }
- }
-
- const page = await service.find(params)
-
- assert.strictEqual(page.total, 3)
- assert.strictEqual(page.limit, 2)
- assert.strictEqual(page.skip, 1)
- assert.strictEqual(page.data[0].name, 'Bob')
- assert.strictEqual(page.data[1].name, 'Alice')
- })
-
- test('.find + paginate + $limit 0', async () => {
- const page = await service.find({
- query: { $limit: 0 }
- })
-
- assert.strictEqual(page.total, 3)
- assert.strictEqual(page.data.length, 0)
- })
-
- test('.find + paginate + params', async () => {
- const page = await service.find({ paginate: { default: 3 } })
-
- assert.strictEqual(page.limit, 3)
- assert.strictEqual(page.skip, 0)
-
- const results = await service.find({ paginate: false })
-
- assert.ok(Array.isArray(results))
- assert.strictEqual(results.length, 3)
- })
- })
- })
-}
diff --git a/packages/adapter-tests/test/index.test.ts b/packages/adapter-tests/test/index.test.ts
deleted file mode 100644
index fc4a3ad0ec..0000000000
--- a/packages/adapter-tests/test/index.test.ts
+++ /dev/null
@@ -1,85 +0,0 @@
-import { strict as assert } from 'assert'
-import adapterTests from '../src'
-
-const testSuite = adapterTests([
- '.events',
- '._get',
- '._find',
- '._create',
- '._update',
- '._patch',
- '._remove',
- '.$get',
- '.$find',
- '.$create',
- '.$update',
- '.$patch',
- '.$remove',
- '.get',
- '.get + $select',
- '.get + id + query',
- '.get + NotFound',
- '.find',
- '.remove',
- '.remove + $select',
- '.remove + id + query',
- '.remove + multi',
- '.remove + multi no pagination',
- '.update',
- '.update + $select',
- '.update + id + query',
- '.update + NotFound',
- '.patch',
- '.patch + $select',
- '.patch + id + query',
- '.patch multiple',
- '.patch multiple no pagination',
- '.patch multi query changed',
- '.patch multi query same',
- '.patch + NotFound',
- '.create',
- '.create + $select',
- '.create multi',
- 'internal .find',
- 'internal .get',
- 'internal .create',
- 'internal .update',
- 'internal .patch',
- 'internal .remove',
- '.find + equal',
- '.find + equal multiple',
- '.find + $sort',
- '.find + $sort + string',
- '.find + $limit',
- '.find + $limit 0',
- '.find + $skip',
- '.find + $select',
- '.find + $or',
- '.find + $in',
- '.find + $nin',
- '.find + $lt',
- '.find + $lte',
- '.find + $gt',
- '.find + $gte',
- '.find + $ne',
- '.find + $gt + $lt + $sort',
- '.find + $or nested + $sort',
- '.find + paginate',
- '.find + paginate + $limit + $skip',
- '.find + paginate + $limit 0',
- '.find + paginate + params',
- '.get + id + query id',
- '.remove + id + query id',
- '.update + id + query id',
- '.patch + id + query id'
-])
-
-describe('Feathers Memory Service', () => {
- it('loads the test suite', () => {
- assert.ok(typeof testSuite === 'function')
- })
-
- it('exports as CommonJS', () => {
- assert.equal(typeof require('../lib'), 'function')
- })
-})
diff --git a/packages/adapter-tests/tsconfig.json b/packages/adapter-tests/tsconfig.json
deleted file mode 100644
index 316fd41336..0000000000
--- a/packages/adapter-tests/tsconfig.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "extends": "../../tsconfig",
- "include": [
- "src/**/*.ts"
- ],
- "compilerOptions": {
- "outDir": "lib"
- }
-}
diff --git a/packages/authentication-client/CHANGELOG.md b/packages/authentication-client/CHANGELOG.md
deleted file mode 100644
index 3c6ccb1098..0000000000
--- a/packages/authentication-client/CHANGELOG.md
+++ /dev/null
@@ -1,869 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file.
-See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-
-## [5.0.34](https://github.com/feathersjs/feathers/compare/v5.0.33...v5.0.34) (2025-05-03)
-
-### Bug Fixes
-
-- Update dependencies ([#3584](https://github.com/feathersjs/feathers/issues/3584)) ([119fa4e](https://github.com/feathersjs/feathers/commit/119fa4e1ade8b0078aa235083d566e2538b3a084))
-
-## [5.0.33](https://github.com/feathersjs/feathers/compare/v5.0.32...v5.0.33) (2025-02-24)
-
-### Bug Fixes
-
-- **dependencies:** Update dependencies ([#3571](https://github.com/feathersjs/feathers/issues/3571)) ([ad611cb](https://github.com/feathersjs/feathers/commit/ad611cb6ffb1dc31d603ba5817331318c5a23217))
-
-## [5.0.32](https://github.com/feathersjs/feathers/compare/v5.0.31...v5.0.32) (2025-02-01)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.31](https://github.com/feathersjs/feathers/compare/v5.0.30...v5.0.31) (2024-10-31)
-
-### Bug Fixes
-
-- **dependencies:** Update all dependencies ([#3545](https://github.com/feathersjs/feathers/issues/3545)) ([221b92b](https://github.com/feathersjs/feathers/commit/221b92bb0ee5d54fb1036742968797cb02e56da2))
-
-## [5.0.30](https://github.com/feathersjs/feathers/compare/v5.0.29...v5.0.30) (2024-09-02)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.29](https://github.com/feathersjs/feathers/compare/v5.0.28...v5.0.29) (2024-07-10)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.28](https://github.com/feathersjs/feathers/compare/v5.0.27...v5.0.28) (2024-07-10)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.27](https://github.com/feathersjs/feathers/compare/v5.0.26...v5.0.27) (2024-06-18)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.26](https://github.com/feathersjs/feathers/compare/v5.0.25...v5.0.26) (2024-06-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.25](https://github.com/feathersjs/feathers/compare/v5.0.24...v5.0.25) (2024-05-03)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.24](https://github.com/feathersjs/feathers/compare/v5.0.23...v5.0.24) (2024-03-13)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.23](https://github.com/feathersjs/feathers/compare/v5.0.22...v5.0.23) (2024-02-25)
-
-### Bug Fixes
-
-- **core:** Update to latest feathersjs/hooks ([#3434](https://github.com/feathersjs/feathers/issues/3434)) ([1499ccc](https://github.com/feathersjs/feathers/commit/1499ccc41fb3ebba97b2c84e0cb19bc48ad3c651))
-
-## [5.0.22](https://github.com/feathersjs/feathers/compare/v5.0.21...v5.0.22) (2024-02-15)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.21](https://github.com/feathersjs/feathers/compare/v5.0.20...v5.0.21) (2024-01-25)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.20](https://github.com/feathersjs/feathers/compare/v5.0.19...v5.0.20) (2024-01-24)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.19](https://github.com/feathersjs/feathers/compare/v5.0.18...v5.0.19) (2024-01-23)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.18](https://github.com/feathersjs/feathers/compare/v5.0.17...v5.0.18) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.17](https://github.com/feathersjs/feathers/compare/v5.0.16...v5.0.17) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.16](https://github.com/feathersjs/feathers/compare/v5.0.15...v5.0.16) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.15](https://github.com/feathersjs/feathers/compare/v5.0.14...v5.0.15) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.14](https://github.com/feathersjs/feathers/compare/v5.0.13...v5.0.14) (2024-01-05)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.13](https://github.com/feathersjs/feathers/compare/v5.0.12...v5.0.13) (2023-12-29)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.12](https://github.com/feathersjs/feathers/compare/v5.0.11...v5.0.12) (2023-11-28)
-
-### Bug Fixes
-
-- **authentication-client:** Allow to abort fetch ([#3310](https://github.com/feathersjs/feathers/issues/3310)) ([ff3e104](https://github.com/feathersjs/feathers/commit/ff3e104b62d02d45261a293aff4e9491241f486f))
-
-## [5.0.11](https://github.com/feathersjs/feathers/compare/v5.0.10...v5.0.11) (2023-10-11)
-
-### Bug Fixes
-
-- **knex:** Update all dependencies and Knex peer ([#3308](https://github.com/feathersjs/feathers/issues/3308)) ([d2f9860](https://github.com/feathersjs/feathers/commit/d2f986036c4741cce2339d8abbcc6b2eb037a12a))
-
-## [5.0.10](https://github.com/feathersjs/feathers/compare/v5.0.9...v5.0.10) (2023-10-03)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.9](https://github.com/feathersjs/feathers/compare/v5.0.8...v5.0.9) (2023-09-27)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.8](https://github.com/feathersjs/feathers/compare/v5.0.7...v5.0.8) (2023-07-19)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.7](https://github.com/feathersjs/feathers/compare/v5.0.6...v5.0.7) (2023-07-14)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.6](https://github.com/feathersjs/feathers/compare/v5.0.5...v5.0.6) (2023-06-15)
-
-### Bug Fixes
-
-- **authentication-client:** Do not trigger storage methods if storage not defined ([#3210](https://github.com/feathersjs/feathers/issues/3210)) ([261acbc](https://github.com/feathersjs/feathers/commit/261acbcde387db731e434cb106a27b49dcb64a9a))
-- **authentication-client:** removeAccessToken throws error if storage not defined ([#3195](https://github.com/feathersjs/feathers/issues/3195)) ([b8e2769](https://github.com/feathersjs/feathers/commit/b8e27698f7958a91fe9a4ee64ec5591d23194c44))
-
-## [5.0.5](https://github.com/feathersjs/feathers/compare/v5.0.4...v5.0.5) (2023-04-28)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.4](https://github.com/feathersjs/feathers/compare/v5.0.3...v5.0.4) (2023-04-12)
-
-### Bug Fixes
-
-- Make sure all Readme files are up to date ([#3154](https://github.com/feathersjs/feathers/issues/3154)) ([a5f0b38](https://github.com/feathersjs/feathers/commit/a5f0b38bbf2a11486415a39533bcc6c67fb51e3e))
-
-## [5.0.3](https://github.com/feathersjs/feathers/compare/v5.0.2...v5.0.3) (2023-04-05)
-
-### Bug Fixes
-
-- **dependencies:** Update all dependencies ([#3139](https://github.com/feathersjs/feathers/issues/3139)) ([f24276e](https://github.com/feathersjs/feathers/commit/f24276e9a909e2e58a0730c730258ce1f70f4028))
-
-## [5.0.2](https://github.com/feathersjs/feathers/compare/v5.0.1...v5.0.2) (2023-03-23)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [5.0.1](https://github.com/feathersjs/feathers/compare/v5.0.0...v5.0.1) (2023-03-15)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.38...v5.0.0) (2023-02-24)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.38](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.37...v5.0.0-pre.38) (2023-02-17)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.37](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.36...v5.0.0-pre.37) (2023-02-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.36](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.35...v5.0.0-pre.36) (2023-01-29)
-
-### Bug Fixes
-
-- Update all dependencies ([#3024](https://github.com/feathersjs/feathers/issues/3024)) ([283dc47](https://github.com/feathersjs/feathers/commit/283dc4798d85584bc031e6e54b83b4ea77d1edd0))
-
-# [5.0.0-pre.35](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.34...v5.0.0-pre.35) (2023-01-12)
-
-### Features
-
-- **generators:** Move core code generators to shared generators package ([#2982](https://github.com/feathersjs/feathers/issues/2982)) ([0328d22](https://github.com/feathersjs/feathers/commit/0328d2292153870bc43958f73d2c6f288a8cec17))
-
-# [5.0.0-pre.34](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.33...v5.0.0-pre.34) (2022-12-14)
-
-### Bug Fixes
-
-- **authentication-client:** Do not cache authentication errors ([#2892](https://github.com/feathersjs/feathers/issues/2892)) ([cc4e767](https://github.com/feathersjs/feathers/commit/cc4e76726fce1ac73252cfd92e22570d4bdeca20))
-- **authentication-client:** Improve socket reauthentication handling ([#2895](https://github.com/feathersjs/feathers/issues/2895)) ([9db5e7a](https://github.com/feathersjs/feathers/commit/9db5e7adb0f6aea43d607f530d8258ade98b7362))
-- **authentication-client:** Remove access token for fatal 400 errors ([#2894](https://github.com/feathersjs/feathers/issues/2894)) ([cfc6c7a](https://github.com/feathersjs/feathers/commit/cfc6c7a6b9dbc7fb60816e2b7f15897c38deb98d))
-
-# [5.0.0-pre.33](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.32...v5.0.0-pre.33) (2022-11-08)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.32](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.31...v5.0.0-pre.32) (2022-10-26)
-
-### Features
-
-- **cli:** Add authentication client to generated client ([#2801](https://github.com/feathersjs/feathers/issues/2801)) ([bd59f91](https://github.com/feathersjs/feathers/commit/bd59f91b45a01c2eea0c4386e567f4de5aa6ad99))
-
-# [5.0.0-pre.31](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.30...v5.0.0-pre.31) (2022-10-12)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.30](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.29...v5.0.0-pre.30) (2022-10-07)
-
-### Features
-
-- **core:** Allow to unregister services at runtime ([#2756](https://github.com/feathersjs/feathers/issues/2756)) ([d16601f](https://github.com/feathersjs/feathers/commit/d16601f2277dca5357866ffdefba2a611f6dc7fa))
-
-# [5.0.0-pre.29](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.28...v5.0.0-pre.29) (2022-09-16)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.28](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.27...v5.0.0-pre.28) (2022-08-03)
-
-### Bug Fixes
-
-- **authentication-client:** Properly handle missing token error ([#2700](https://github.com/feathersjs/feathers/issues/2700)) ([160746e](https://github.com/feathersjs/feathers/commit/160746e2bceb465fd1b6a003415f8ab38daba521))
-- **cli:** Improve generated application and client ([#2701](https://github.com/feathersjs/feathers/issues/2701)) ([bd55ffb](https://github.com/feathersjs/feathers/commit/bd55ffb812e89bf215f4515e7f137656ea888c3f))
-
-# [5.0.0-pre.27](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.26...v5.0.0-pre.27) (2022-07-13)
-
-### Bug Fixes
-
-- **authentication-client:** Ensure reAuthenticate works in parallel with other requests ([#2690](https://github.com/feathersjs/feathers/issues/2690)) ([41b3761](https://github.com/feathersjs/feathers/commit/41b376106b47e2f40a8914db7a5ed2935e070c08))
-
-# [5.0.0-pre.26](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.25...v5.0.0-pre.26) (2022-06-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.25](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.24...v5.0.0-pre.25) (2022-06-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.24](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.23...v5.0.0-pre.24) (2022-06-21)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.23](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.22...v5.0.0-pre.23) (2022-06-06)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.22](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.21...v5.0.0-pre.22) (2022-05-24)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.21](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.20...v5.0.0-pre.21) (2022-05-23)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.20](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.19...v5.0.0-pre.20) (2022-05-04)
-
-### Bug Fixes
-
-- **dependencies:** Lock monorepo package version numbers ([#2623](https://github.com/feathersjs/feathers/issues/2623)) ([5640c10](https://github.com/feathersjs/feathers/commit/5640c1020cc139994e695d658c08bad3494db507))
-
-# [5.0.0-pre.19](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.18...v5.0.0-pre.19) (2022-05-01)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.18](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.17...v5.0.0-pre.18) (2022-04-11)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.17](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.16...v5.0.0-pre.17) (2022-02-15)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.16](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.15...v5.0.0-pre.16) (2022-01-12)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.15](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.14...v5.0.0-pre.15) (2021-11-27)
-
-### Bug Fixes
-
-- **typescript:** Overall typing improvements ([#2478](https://github.com/feathersjs/feathers/issues/2478)) ([b8eb804](https://github.com/feathersjs/feathers/commit/b8eb804158556d9651a8607e3c3fda15e0bfd110))
-
-# [5.0.0-pre.14](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.13...v5.0.0-pre.14) (2021-10-13)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.13](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.12...v5.0.0-pre.13) (2021-10-13)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.12](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.11...v5.0.0-pre.12) (2021-10-12)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.11](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.10...v5.0.0-pre.11) (2021-10-06)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.10](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.9...v5.0.0-pre.10) (2021-09-19)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.9](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.8...v5.0.0-pre.9) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.8](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.7...v5.0.0-pre.8) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.7](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.6...v5.0.0-pre.7) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.6](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.5...v5.0.0-pre.6) (2021-08-08)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.5](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.4...v5.0.0-pre.5) (2021-06-23)
-
-### Bug Fixes
-
-- **hooks:** Migrate built-in hooks and allow backwards compatibility ([#2358](https://github.com/feathersjs/feathers/issues/2358)) ([759c5a1](https://github.com/feathersjs/feathers/commit/759c5a19327a731af965c3604119393b3d09a406))
-- **koa:** Use extended query parser for compatibility ([#2397](https://github.com/feathersjs/feathers/issues/2397)) ([b2944ba](https://github.com/feathersjs/feathers/commit/b2944bac3ec6d5ecc80dc518cd4e58093692db74))
-
-### Features
-
-- **adapter-commons:** Add support for params.adapter option and move memory adapter to @feathersjs/memory ([#2367](https://github.com/feathersjs/feathers/issues/2367)) ([a43e7da](https://github.com/feathersjs/feathers/commit/a43e7da22b6b981a96d1321736ea9a0cb924fb4f))
-
-# [5.0.0-pre.4](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.3...v5.0.0-pre.4) (2021-05-13)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-pre.3](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.2...v5.0.0-pre.3) (2021-04-21)
-
-### Bug Fixes
-
-- **typescript:** Improve TypeScript backwards compatibility ([#2310](https://github.com/feathersjs/feathers/issues/2310)) ([f33be73](https://github.com/feathersjs/feathers/commit/f33be73fc46a533efb15df9aab0658e3240d3897))
-
-### Features
-
-- **dependencies:** Remove direct debug dependency ([#2296](https://github.com/feathersjs/feathers/issues/2296)) ([501d416](https://github.com/feathersjs/feathers/commit/501d4164d30c6a126906dc640cdfdc82207ba34a))
-
-# [5.0.0-pre.2](https://github.com/feathersjs/feathers/compare/v5.0.0-beta.1...v5.0.0-pre.2) (2021-04-06)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-beta.1](https://github.com/feathersjs/feathers/compare/v5.0.0-beta.0...v5.0.0-beta.1) (2021-04-03)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [5.0.0-beta.0](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.1...v5.0.0-beta.0) (2021-03-28)
-
-### Bug Fixes
-
-- Update Grant usage and other dependencies ([#2264](https://github.com/feathersjs/feathers/issues/2264)) ([7b0f8fa](https://github.com/feathersjs/feathers/commit/7b0f8fad252419ed0ad0bf259cdf3104d322ab60))
-
-### Features
-
-- Application service types default to any ([#1566](https://github.com/feathersjs/feathers/issues/1566)) ([d93ba9a](https://github.com/feathersjs/feathers/commit/d93ba9a17edd20d3397bb00f4f6e82e804e42ed6))
-- Feathers v5 core refactoring and features ([#2255](https://github.com/feathersjs/feathers/issues/2255)) ([2dafb7c](https://github.com/feathersjs/feathers/commit/2dafb7ce14ba57406aeec13d10ca45b1e709bee9))
-- **authentication-client:** Throw separate OauthError in authentication client ([#2189](https://github.com/feathersjs/feathers/issues/2189)) ([fa45ec5](https://github.com/feathersjs/feathers/commit/fa45ec520b21834e103e6fe4200b06dced56c0e6))
-
-# [5.0.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.5.11...v5.0.0-pre.1) (2020-12-17)
-
-# [5.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v4.5.4...v5.0.0-pre.0) (2020-05-19)
-
-### chore
-
-- **package:** Remove @feathersjs/primus packages from core ([#1919](https://github.com/feathersjs/feathers/issues/1919)) ([d20b7d5](https://github.com/feathersjs/feathers/commit/d20b7d5a70f4d3306e294696156e8aa0337c35e9)), closes [#1899](https://github.com/feathersjs/feathers/issues/1899)
-
-### BREAKING CHANGES
-
-- **package:** Remove primus packages to be moved into the ecosystem.
-
-# [5.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v4.5.4...v5.0.0-pre.0) (2020-05-19)
-
-### chore
-
-- **package:** Remove @feathersjs/primus packages from core ([#1919](https://github.com/feathersjs/feathers/issues/1919)) ([d20b7d5](https://github.com/feathersjs/feathers/commit/d20b7d5a70f4d3306e294696156e8aa0337c35e9)), closes [#1899](https://github.com/feathersjs/feathers/issues/1899)
-
-### BREAKING CHANGES
-
-- **package:** Remove primus packages to be moved into the ecosystem.
-
-## [4.5.11](https://github.com/feathersjs/feathers/compare/v4.5.10...v4.5.11) (2020-12-05)
-
-### Bug Fixes
-
-- **authentication-client:** Allow reAuthentication using specific strategy ([#2140](https://github.com/feathersjs/feathers/issues/2140)) ([2a2bbf7](https://github.com/feathersjs/feathers/commit/2a2bbf7f8ee6d32b9fac8afab3421286b06e6443))
-- **socketio-client:** Throw an error and show a warning if someone tries to use socket.io-client v3 ([#2135](https://github.com/feathersjs/feathers/issues/2135)) ([cc3521c](https://github.com/feathersjs/feathers/commit/cc3521c935a1cbd690e29b7057998e3898f282db))
-
-## [4.5.10](https://github.com/feathersjs/feathers/compare/v4.5.9...v4.5.10) (2020-11-08)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [4.5.9](https://github.com/feathersjs/feathers/compare/v4.5.8...v4.5.9) (2020-10-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [4.5.8](https://github.com/feathersjs/feathers/compare/v4.5.7...v4.5.8) (2020-08-12)
-
-### Bug Fixes
-
-- **authentication-client:** Fix storage type so it works with all supported interfaces ([#2041](https://github.com/feathersjs/feathers/issues/2041)) ([6ee0e78](https://github.com/feathersjs/feathers/commit/6ee0e78d55cf1214f61458f386b94c350eec32af))
-
-## [4.5.7](https://github.com/feathersjs/feathers/compare/v4.5.6...v4.5.7) (2020-07-24)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [4.5.6](https://github.com/feathersjs/feathers/compare/v4.5.5...v4.5.6) (2020-07-12)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [4.5.5](https://github.com/feathersjs/feathers/compare/v4.5.4...v4.5.5) (2020-07-11)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [4.5.4](https://github.com/feathersjs/feathers/compare/v4.5.3...v4.5.4) (2020-04-29)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [4.5.3](https://github.com/feathersjs/feathers/compare/v4.5.2...v4.5.3) (2020-04-17)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [4.5.2](https://github.com/feathersjs/feathers/compare/v4.5.1...v4.5.2) (2020-03-04)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [4.5.1](https://github.com/feathersjs/feathers/compare/v4.5.0...v4.5.1) (2020-01-24)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [4.5.0](https://github.com/feathersjs/feathers/compare/v4.4.3...v4.5.0) (2020-01-18)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [4.4.3](https://github.com/feathersjs/feathers/compare/v4.4.1...v4.4.3) (2019-12-06)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [4.4.1](https://github.com/feathersjs/feathers/compare/v4.4.0...v4.4.1) (2019-11-27)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [4.4.0](https://github.com/feathersjs/feathers/compare/v4.3.11...v4.4.0) (2019-11-27)
-
-### Bug Fixes
-
-- **authentication-client:** Reset authentication promise on socket disconnect ([#1696](https://github.com/feathersjs/feathers/issues/1696)) ([3951626](https://github.com/feathersjs/feathers/commit/395162633ff22e95833a3c2900cb9464bb5b056f))
-
-## [4.3.11](https://github.com/feathersjs/feathers/compare/v4.3.10...v4.3.11) (2019-11-11)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [4.3.10](https://github.com/feathersjs/feathers/compare/v4.3.9...v4.3.10) (2019-10-26)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [4.3.9](https://github.com/feathersjs/feathers/compare/v4.3.8...v4.3.9) (2019-10-26)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [4.3.7](https://github.com/feathersjs/feathers/compare/v4.3.6...v4.3.7) (2019-10-14)
-
-### Bug Fixes
-
-- Improve authentication client default storage initialization ([#1613](https://github.com/feathersjs/feathers/issues/1613)) ([d7f5107](https://github.com/feathersjs/feathers/commit/d7f5107ef76297b4ca6db580afc5e2b372f5ee4d))
-
-## [4.3.5](https://github.com/feathersjs/feathers/compare/v4.3.4...v4.3.5) (2019-10-07)
-
-### Bug Fixes
-
-- Authentication type improvements and timeout fix ([#1605](https://github.com/feathersjs/feathers/issues/1605)) ([19854d3](https://github.com/feathersjs/feathers/commit/19854d3))
-
-## [4.3.4](https://github.com/feathersjs/feathers/compare/v4.3.3...v4.3.4) (2019-10-03)
-
-### Bug Fixes
-
-- Typing improvements ([#1580](https://github.com/feathersjs/feathers/issues/1580)) ([7818aec](https://github.com/feathersjs/feathers/commit/7818aec))
-
-## [4.3.3](https://github.com/feathersjs/feathers/compare/v4.3.2...v4.3.3) (2019-09-21)
-
-### Bug Fixes
-
-- Small improvements in dependencies and code sturcture ([#1562](https://github.com/feathersjs/feathers/issues/1562)) ([42c13e2](https://github.com/feathersjs/feathers/commit/42c13e2))
-
-## [4.3.2](https://github.com/feathersjs/feathers/compare/v4.3.1...v4.3.2) (2019-09-16)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [4.3.1](https://github.com/feathersjs/feathers/compare/v4.3.0...v4.3.1) (2019-09-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [4.3.0](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.4...v4.3.0) (2019-08-27)
-
-### Bug Fixes
-
-- Only remove token on NotAuthenticated error in authentication client and handle error better ([#1525](https://github.com/feathersjs/feathers/issues/1525)) ([13a8758](https://github.com/feathersjs/feathers/commit/13a8758))
-
-# [4.3.0-pre.4](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.3...v4.3.0-pre.4) (2019-08-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [4.3.0-pre.3](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.2...v4.3.0-pre.3) (2019-08-19)
-
-### Bug Fixes
-
-- Update all dependencies ([7d53a00](https://github.com/feathersjs/feathers/commit/7d53a00))
-
-### Features
-
-- Let strategies handle the connection ([#1510](https://github.com/feathersjs/feathers/issues/1510)) ([4329feb](https://github.com/feathersjs/feathers/commit/4329feb))
-
-# [4.3.0-pre.2](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.1...v4.3.0-pre.2) (2019-08-02)
-
-### Bug Fixes
-
-- Do not error in authentication client on logout ([#1473](https://github.com/feathersjs/feathers/issues/1473)) ([8211b98](https://github.com/feathersjs/feathers/commit/8211b98))
-
-# [4.3.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.5...v4.3.0-pre.1) (2019-07-11)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [4.0.0-pre.5](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.4...v4.0.0-pre.5) (2019-07-10)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [4.0.0-pre.4](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.3...v4.0.0-pre.4) (2019-07-05)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [4.0.0-pre.3](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.2...v4.0.0-pre.3) (2019-06-01)
-
-### Bug Fixes
-
-- Make oAuth paths more consistent and improve authentication client ([#1377](https://github.com/feathersjs/feathers/issues/1377)) ([adb2543](https://github.com/feathersjs/feathers/commit/adb2543))
-- Typings fix and improvements. ([#1364](https://github.com/feathersjs/feathers/issues/1364)) ([515b916](https://github.com/feathersjs/feathers/commit/515b916))
-- Update dependencies and fix tests ([#1373](https://github.com/feathersjs/feathers/issues/1373)) ([d743a7f](https://github.com/feathersjs/feathers/commit/d743a7f))
-
-# [4.0.0-pre.2](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.1...v4.0.0-pre.2) (2019-05-15)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-# [4.0.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.0...v4.0.0-pre.1) (2019-05-08)
-
-### Bug Fixes
-
-- Guard against null in client side logout function ([#1319](https://github.com/feathersjs/feathers/issues/1319)) ([fa7f057](https://github.com/feathersjs/feathers/commit/fa7f057))
-- Handle error oAuth redirect in authentication client ([#1307](https://github.com/feathersjs/feathers/issues/1307)) ([12d48ee](https://github.com/feathersjs/feathers/commit/12d48ee))
-- Merge httpStrategies and authStrategies option ([#1308](https://github.com/feathersjs/feathers/issues/1308)) ([afa4d55](https://github.com/feathersjs/feathers/commit/afa4d55))
-- Rename jwtStrategies option to authStrategies ([#1305](https://github.com/feathersjs/feathers/issues/1305)) ([4aee151](https://github.com/feathersjs/feathers/commit/4aee151))
-- Update version number check ([53575c5](https://github.com/feathersjs/feathers/commit/53575c5))
-
-# [4.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v3.2.0-pre.1...v4.0.0-pre.0) (2019-04-21)
-
-### Bug Fixes
-
-- Authentication core improvements ([#1260](https://github.com/feathersjs/feathers/issues/1260)) ([c5dc7a2](https://github.com/feathersjs/feathers/commit/c5dc7a2))
-- Make Mocha a proper devDependency for every repository ([#1053](https://github.com/feathersjs/feathers/issues/1053)) ([9974803](https://github.com/feathersjs/feathers/commit/9974803))
-- Update adapter common tests ([#1135](https://github.com/feathersjs/feathers/issues/1135)) ([8166dda](https://github.com/feathersjs/feathers/commit/8166dda))
-- Update all dependencies to latest ([#1206](https://github.com/feathersjs/feathers/issues/1206)) ([e51e0f6](https://github.com/feathersjs/feathers/commit/e51e0f6))
-- **package:** update debug to version 3.0.0 ([#61](https://github.com/feathersjs/feathers/issues/61)) ([6f5009c](https://github.com/feathersjs/feathers/commit/6f5009c))
-
-### Features
-
-- @feathersjs/authentication-oauth ([#1299](https://github.com/feathersjs/feathers/issues/1299)) ([656bae7](https://github.com/feathersjs/feathers/commit/656bae7))
-- Add authentication through oAuth redirect to authentication client ([#1301](https://github.com/feathersjs/feathers/issues/1301)) ([35d8043](https://github.com/feathersjs/feathers/commit/35d8043))
-- Add AuthenticationBaseStrategy and make authentication option handling more explicit ([#1284](https://github.com/feathersjs/feathers/issues/1284)) ([2667d92](https://github.com/feathersjs/feathers/commit/2667d92))
-- Add TypeScript definitions ([#1275](https://github.com/feathersjs/feathers/issues/1275)) ([9dd6713](https://github.com/feathersjs/feathers/commit/9dd6713))
-- Authentication v3 client ([#1240](https://github.com/feathersjs/feathers/issues/1240)) ([65b43bd](https://github.com/feathersjs/feathers/commit/65b43bd))
-- Authentication v3 core server implementation ([#1205](https://github.com/feathersjs/feathers/issues/1205)) ([1bd7591](https://github.com/feathersjs/feathers/commit/1bd7591))
-
-### BREAKING CHANGES
-
-- Rewrite for authentication v3
-
-## [1.0.11](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-client@1.0.10...@feathersjs/authentication-client@1.0.11) (2019-01-26)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-## [1.0.10](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-client@1.0.9...@feathersjs/authentication-client@1.0.10) (2019-01-02)
-
-### Bug Fixes
-
-- Update adapter common tests ([#1135](https://github.com/feathersjs/feathers/issues/1135)) ([8166dda](https://github.com/feathersjs/feathers/commit/8166dda))
-
-
-
-## [1.0.9](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-client@1.0.8...@feathersjs/authentication-client@1.0.9) (2018-12-16)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-
-
-## [1.0.8](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-client@1.0.7...@feathersjs/authentication-client@1.0.8) (2018-10-26)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-
-
-## [1.0.7](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-client@1.0.6...@feathersjs/authentication-client@1.0.7) (2018-10-25)
-
-### Bug Fixes
-
-- Make Mocha a proper devDependency for every repository ([#1053](https://github.com/feathersjs/feathers/issues/1053)) ([9974803](https://github.com/feathersjs/feathers/commit/9974803))
-
-
-
-## [1.0.6](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-client@1.0.5...@feathersjs/authentication-client@1.0.6) (2018-09-21)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-
-
-## [1.0.5](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-client@1.0.4...@feathersjs/authentication-client@1.0.5) (2018-09-17)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-
-
-## [1.0.4](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-client@1.0.3...@feathersjs/authentication-client@1.0.4) (2018-09-02)
-
-**Note:** Version bump only for package @feathersjs/authentication-client
-
-
-
-## 1.0.3
-
-- Migrate to Monorepo ([feathers#462](https://github.com/feathersjs/feathers/issues/462))
-
-## [v1.0.2](https://github.com/feathersjs/authentication-client/tree/v1.0.2) (2018-01-03)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v1.0.1...v1.0.2)
-
-**Closed issues:**
-
-- No Auth header added when sending 1st request [\#80](https://github.com/feathersjs/authentication-client/issues/80)
-
-**Merged pull requests:**
-
-- Update to correspond with latest release [\#84](https://github.com/feathersjs/authentication-client/pull/84) ([daffl](https://github.com/daffl))
-- Update semistandard to the latest version 🚀 [\#83](https://github.com/feathersjs/authentication-client/pull/83) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update feathers-memory to the latest version 🚀 [\#82](https://github.com/feathersjs/authentication-client/pull/82) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v1.0.1](https://github.com/feathersjs/authentication-client/tree/v1.0.1) (2017-11-16)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v1.0.0...v1.0.1)
-
-**Merged pull requests:**
-
-- Add default export for better ES module \(TypeScript\) compatibility [\#81](https://github.com/feathersjs/authentication-client/pull/81) ([daffl](https://github.com/daffl))
-- Update @feathersjs/authentication to the latest version 🚀 [\#79](https://github.com/feathersjs/authentication-client/pull/79) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v1.0.0](https://github.com/feathersjs/authentication-client/tree/v1.0.0) (2017-11-01)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v1.0.0-pre.1...v1.0.0)
-
-**Merged pull requests:**
-
-- Update dependencies for release [\#78](https://github.com/feathersjs/authentication-client/pull/78) ([daffl](https://github.com/daffl))
-
-## [v1.0.0-pre.1](https://github.com/feathersjs/authentication-client/tree/v1.0.0-pre.1) (2017-10-25)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.3.3...v1.0.0-pre.1)
-
-**Closed issues:**
-
-- Error authenticating! Error: Token provided to verifyJWT is missing or not a string ? [\#73](https://github.com/feathersjs/authentication-client/issues/73)
-- Authorization Header not sent!! [\#69](https://github.com/feathersjs/authentication-client/issues/69)
-- users.get\(id\) failed \(Not authenticated\) after successful login. [\#66](https://github.com/feathersjs/authentication-client/issues/66)
-
-**Merged pull requests:**
-
-- Updates for Feathers v3 [\#77](https://github.com/feathersjs/authentication-client/pull/77) ([daffl](https://github.com/daffl))
-- Update Codeclimate token and badges [\#76](https://github.com/feathersjs/authentication-client/pull/76) ([daffl](https://github.com/daffl))
-- Rename repository and use npm scope [\#75](https://github.com/feathersjs/authentication-client/pull/75) ([daffl](https://github.com/daffl))
-- Update to new plugin infrastructure [\#74](https://github.com/feathersjs/authentication-client/pull/74) ([daffl](https://github.com/daffl))
-- Update mocha to the latest version 🚀 [\#72](https://github.com/feathersjs/authentication-client/pull/72) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Add babel-polyfill and package-lock.json [\#68](https://github.com/feathersjs/authentication-client/pull/68) ([daffl](https://github.com/daffl))
-- Passport.verifyJWT should return Promise\, not Promise\ [\#65](https://github.com/feathersjs/authentication-client/pull/65) ([zxh19890103](https://github.com/zxh19890103))
-- Update debug to the latest version 🚀 [\#61](https://github.com/feathersjs/authentication-client/pull/61) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update ws to the latest version 🚀 [\#60](https://github.com/feathersjs/authentication-client/pull/60) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v0.3.3](https://github.com/feathersjs/authentication-client/tree/v0.3.3) (2017-07-18)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.3.2...v0.3.3)
-
-**Closed issues:**
-
-- An in-range update of feathers is breaking the build 🚨 [\#59](https://github.com/feathersjs/authentication-client/issues/59)
-- An in-range update of feathers is breaking the build 🚨 [\#58](https://github.com/feathersjs/authentication-client/issues/58)
-
-**Merged pull requests:**
-
-- typings: add auth methods to feathers.Application interface [\#57](https://github.com/feathersjs/authentication-client/pull/57) ([j2L4e](https://github.com/j2L4e))
-- Update feathers-authentication-local to the latest version 🚀 [\#55](https://github.com/feathersjs/authentication-client/pull/55) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update chai to the latest version 🚀 [\#54](https://github.com/feathersjs/authentication-client/pull/54) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update feathers-socketio to the latest version 🚀 [\#50](https://github.com/feathersjs/authentication-client/pull/50) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update socket.io-client to the latest version 🚀 [\#49](https://github.com/feathersjs/authentication-client/pull/49) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update README.md [\#47](https://github.com/feathersjs/authentication-client/pull/47) ([bertho-zero](https://github.com/bertho-zero))
-
-## [v0.3.2](https://github.com/feathersjs/authentication-client/tree/v0.3.2) (2017-04-30)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.3.1...v0.3.2)
-
-**Closed issues:**
-
-- An in-range update of feathers-errors is breaking the build 🚨 [\#45](https://github.com/feathersjs/authentication-client/issues/45)
-- Proper way to save jwt in cookies [\#41](https://github.com/feathersjs/authentication-client/issues/41)
-- Allow customizing the `tokenField` [\#38](https://github.com/feathersjs/authentication-client/issues/38)
-- Show blank page in safari@iOS 8.3 [\#37](https://github.com/feathersjs/authentication-client/issues/37)
-
-**Merged pull requests:**
-
-- Catch getJWT promise errors [\#46](https://github.com/feathersjs/authentication-client/pull/46) ([NikitaVlaznev](https://github.com/NikitaVlaznev))
-- Update semistandard to the latest version 🚀 [\#43](https://github.com/feathersjs/authentication-client/pull/43) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update feathers-hooks to the latest version 🚀 [\#42](https://github.com/feathersjs/authentication-client/pull/42) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update dependencies to enable Greenkeeper 🌴 [\#40](https://github.com/feathersjs/authentication-client/pull/40) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Note that auth must be configured after rest/socket clients [\#36](https://github.com/feathersjs/authentication-client/pull/36) ([hubgit](https://github.com/hubgit))
-
-## [v0.3.1](https://github.com/feathersjs/authentication-client/tree/v0.3.1) (2017-03-10)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.3.0...v0.3.1)
-
-**Closed issues:**
-
-- The latest tag on NPM is wrong [\#35](https://github.com/feathersjs/authentication-client/issues/35)
-- exp claim should be optional [\#33](https://github.com/feathersjs/authentication-client/issues/33)
-
-**Merged pull requests:**
-
-- Fix \#33 exp claim should be optional [\#34](https://github.com/feathersjs/authentication-client/pull/34) ([whollacsek](https://github.com/whollacsek))
-
-## [v0.3.0](https://github.com/feathersjs/authentication-client/tree/v0.3.0) (2017-03-08)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.2.0...v0.3.0)
-
-## [v0.2.0](https://github.com/feathersjs/authentication-client/tree/v0.2.0) (2017-03-07)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.1.10...v0.2.0)
-
-**Closed issues:**
-
-- Support `authenticated` and `logout` client side events [\#29](https://github.com/feathersjs/authentication-client/issues/29)
-- The default header mismatches the default feathers-authentication header [\#23](https://github.com/feathersjs/authentication-client/issues/23)
-- Re-authenticating fails when passing options [\#22](https://github.com/feathersjs/authentication-client/issues/22)
-- Socket.io timeout does nothing when there is JWT token available [\#19](https://github.com/feathersjs/authentication-client/issues/19)
-
-**Merged pull requests:**
-
-- Fix header casing [\#32](https://github.com/feathersjs/authentication-client/pull/32) ([daffl](https://github.com/daffl))
-- Add client side `authenticated` and `logout` events [\#31](https://github.com/feathersjs/authentication-client/pull/31) ([daffl](https://github.com/daffl))
-- Add support for socket timeouts and some refactoring [\#30](https://github.com/feathersjs/authentication-client/pull/30) ([daffl](https://github.com/daffl))
-
-## [v0.1.10](https://github.com/feathersjs/authentication-client/tree/v0.1.10) (2017-03-03)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.1.9...v0.1.10)
-
-**Merged pull requests:**
-
-- Remove hardcoded values for Config and Credentials typings [\#28](https://github.com/feathersjs/authentication-client/pull/28) ([myknbani](https://github.com/myknbani))
-
-## [v0.1.9](https://github.com/feathersjs/authentication-client/tree/v0.1.9) (2017-03-01)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.1.8...v0.1.9)
-
-**Merged pull requests:**
-
-- Typescript Definitions [\#25](https://github.com/feathersjs/authentication-client/pull/25) ([AbraaoAlves](https://github.com/AbraaoAlves))
-
-## [v0.1.8](https://github.com/feathersjs/authentication-client/tree/v0.1.8) (2017-02-05)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.1.7...v0.1.8)
-
-**Closed issues:**
-
-- Uncaught TypeError: Cannot read property 'options' of undefined [\#26](https://github.com/feathersjs/authentication-client/issues/26)
-- Browser Version [\#24](https://github.com/feathersjs/authentication-client/issues/24)
-
-**Merged pull requests:**
-
-- Hoist upgrade handler into current scope by using an arrow function [\#27](https://github.com/feathersjs/authentication-client/pull/27) ([daffl](https://github.com/daffl))
-
-## [v0.1.7](https://github.com/feathersjs/authentication-client/tree/v0.1.7) (2017-01-29)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.1.6...v0.1.7)
-
-**Closed issues:**
-
-- \[Webpack\] TypeError: \_this4.storage.getItem is not a function [\#18](https://github.com/feathersjs/authentication-client/issues/18)
-- \[Feature request\] Signup via socket [\#17](https://github.com/feathersjs/authentication-client/issues/17)
-- Missing auth token when used with feathers-rest in comparison to feathers-socketio [\#16](https://github.com/feathersjs/authentication-client/issues/16)
-- Cannot read property 'on' of undefined - feathers-authentication-client [\#12](https://github.com/feathersjs/authentication-client/issues/12)
-
-**Merged pull requests:**
-
-- Update passport.js [\#20](https://github.com/feathersjs/authentication-client/pull/20) ([bertho-zero](https://github.com/bertho-zero))
-
-## [v0.1.6](https://github.com/feathersjs/authentication-client/tree/v0.1.6) (2016-12-14)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.1.5...v0.1.6)
-
-**Closed issues:**
-
-- `logout\(\)` doesn't resolve [\#10](https://github.com/feathersjs/authentication-client/issues/10)
-
-**Merged pull requests:**
-
-- Fix linting [\#13](https://github.com/feathersjs/authentication-client/pull/13) ([marshallswain](https://github.com/marshallswain))
-
-## [v0.1.5](https://github.com/feathersjs/authentication-client/tree/v0.1.5) (2016-12-13)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.1.4...v0.1.5)
-
-## [v0.1.4](https://github.com/feathersjs/authentication-client/tree/v0.1.4) (2016-12-13)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.1.3...v0.1.4)
-
-**Closed issues:**
-
-- populateAccessToken tries to access non-existent property [\#11](https://github.com/feathersjs/authentication-client/issues/11)
-- Socket client should automatically auth on reconnect [\#2](https://github.com/feathersjs/authentication-client/issues/2)
-
-**Merged pull requests:**
-
-- More specific imports for StealJS [\#14](https://github.com/feathersjs/authentication-client/pull/14) ([marshallswain](https://github.com/marshallswain))
-
-## [v0.1.3](https://github.com/feathersjs/authentication-client/tree/v0.1.3) (2016-11-23)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.1.2...v0.1.3)
-
-**Closed issues:**
-
-- Client should ensure socket.io upgrade is complete before authenticating [\#4](https://github.com/feathersjs/authentication-client/issues/4)
-
-**Merged pull requests:**
-
-- Socket reconnect [\#9](https://github.com/feathersjs/authentication-client/pull/9) ([ekryski](https://github.com/ekryski))
-
-## [v0.1.2](https://github.com/feathersjs/authentication-client/tree/v0.1.2) (2016-11-22)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.1.1...v0.1.2)
-
-**Merged pull requests:**
-
-- Custom jwt strategy names [\#8](https://github.com/feathersjs/authentication-client/pull/8) ([ekryski](https://github.com/ekryski))
-
-## [v0.1.1](https://github.com/feathersjs/authentication-client/tree/v0.1.1) (2016-11-21)
-
-[Full Changelog](https://github.com/feathersjs/authentication-client/compare/v0.1.0...v0.1.1)
-
-**Merged pull requests:**
-
-- Socket reconnect upgrade auth [\#3](https://github.com/feathersjs/authentication-client/pull/3) ([marshallswain](https://github.com/marshallswain))
-
-## [v0.1.0](https://github.com/feathersjs/authentication-client/tree/v0.1.0) (2016-11-18)
-
-**Closed issues:**
-
-- Relation with feathers-authentication [\#6](https://github.com/feathersjs/authentication-client/issues/6)
-- Client: Docs for getJWT & verifyJWT [\#1](https://github.com/feathersjs/authentication-client/issues/1)
-
-**Merged pull requests:**
-
-- Feathers authentication 1.0 compatible client [\#7](https://github.com/feathersjs/authentication-client/pull/7) ([ekryski](https://github.com/ekryski))
-
-\* _This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)_
diff --git a/packages/authentication-client/LICENSE b/packages/authentication-client/LICENSE
deleted file mode 100644
index 7712f870f3..0000000000
--- a/packages/authentication-client/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2024 Feathers Contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
diff --git a/packages/authentication-client/README.md b/packages/authentication-client/README.md
deleted file mode 100644
index aa47ecfb25..0000000000
--- a/packages/authentication-client/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# @feathersjs/authentication-client
-
-[](https://github.com/feathersjs/feathers/actions?query=workflow%3ACI)
-[](https://www.npmjs.com/package/@feathersjs/authentication-client)
-[](https://discord.gg/qa8kez8QBx)
-
-> Feathers authentication client
-
-## Installation
-
-```
-npm install @feathersjs/authentication-client --save
-```
-
-## Documentation
-
-Refer to the [Feathers authentication client API documentation](https://feathersjs.com/api/authentication/client.html) for more details.
-
-## License
-
-Copyright (c) 2024 [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
-
-Licensed under the [MIT license](LICENSE).
diff --git a/packages/authentication-client/package.json b/packages/authentication-client/package.json
deleted file mode 100644
index 7457b4645b..0000000000
--- a/packages/authentication-client/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "name": "@feathersjs/authentication-client",
- "description": "The authentication plugin for feathers-client",
- "version": "5.0.34",
- "homepage": "https://feathersjs.com",
- "main": "lib/",
- "types": "lib/",
- "keywords": [
- "feathers",
- "feathers-plugin"
- ],
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/feathersjs/feathers.git",
- "directory": "packages/authentication-client"
- },
- "author": {
- "name": "Feathers contributors",
- "email": "hello@feathersjs.com",
- "url": "https://feathersjs.com"
- },
- "contributors": [],
- "bugs": {
- "url": "https://github.com/feathersjs/feathers/issues"
- },
- "engines": {
- "node": ">= 12"
- },
- "files": [
- "CHANGELOG.md",
- "LICENSE",
- "README.md",
- "src/**",
- "lib/**",
- "*.d.ts",
- "*.js"
- ],
- "scripts": {
- "prepublish": "npm run compile",
- "pack": "npm pack --pack-destination ../generators/test/build",
- "compile": "shx rm -rf lib/ && tsc && npm run pack",
- "test": "mocha --config ../../.mocharc.json --recursive test/**.test.ts test/**/*.test.ts"
- },
- "directories": {
- "lib": "lib"
- },
- "publishConfig": {
- "access": "public"
- },
- "dependencies": {
- "@feathersjs/authentication": "^5.0.34",
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34"
- },
- "devDependencies": {
- "@feathersjs/authentication-local": "^5.0.34",
- "@feathersjs/express": "^5.0.34",
- "@feathersjs/memory": "^5.0.34",
- "@feathersjs/rest-client": "^5.0.34",
- "@feathersjs/socketio": "^5.0.34",
- "@feathersjs/socketio-client": "^5.0.34",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "axios": "^1.11.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "gitHead": "90caf635aec850550b9d37bea2762af959d9e8d5"
-}
diff --git a/packages/authentication-client/src/core.ts b/packages/authentication-client/src/core.ts
deleted file mode 100644
index cad7754e67..0000000000
--- a/packages/authentication-client/src/core.ts
+++ /dev/null
@@ -1,248 +0,0 @@
-import { NotAuthenticated, FeathersError } from '@feathersjs/errors'
-import { Application, Params } from '@feathersjs/feathers'
-import { AuthenticationRequest, AuthenticationResult } from '@feathersjs/authentication'
-import { Storage, StorageWrapper } from './storage'
-
-class OauthError extends FeathersError {
- constructor(message: string, data?: any) {
- super(message, 'OauthError', 401, 'oauth-error', data)
- }
-}
-
-const getMatch = (location: Location, key: string): [string, RegExp] => {
- const regex = new RegExp(`(?:\&?)${key}=([^&]*)`)
- const match = location.hash ? location.hash.match(regex) : null
-
- if (match !== null) {
- const [, value] = match
-
- return [value, regex]
- }
-
- return [null, regex]
-}
-
-export type ClientConstructor = new (
- app: Application,
- options: AuthenticationClientOptions
-) => AuthenticationClient
-
-export interface AuthenticationClientOptions {
- storage: Storage
- header: string
- scheme: string
- storageKey: string
- locationKey: string
- locationErrorKey: string
- jwtStrategy: string
- path: string
- Authentication: ClientConstructor
-}
-
-export class AuthenticationClient {
- app: Application
- authenticated: boolean
- options: AuthenticationClientOptions
-
- constructor(app: Application, options: AuthenticationClientOptions) {
- const socket = app.io
- const storage = new StorageWrapper(app.get('storage') || options.storage)
-
- this.app = app
- this.options = options
- this.authenticated = false
- this.app.set('storage', storage)
-
- if (socket) {
- this.handleSocket(socket)
- }
- }
-
- get service() {
- return this.app.service(this.options.path)
- }
-
- get storage() {
- return this.app.get('storage') as Storage
- }
-
- handleSocket(socket: any) {
- // When the socket disconnects and we are still authenticated, try to reauthenticate right away
- // the websocket connection will handle timeouts and retries
- socket.on('disconnect', () => {
- if (this.authenticated) {
- this.reAuthenticate(true)
- }
- })
- }
-
- /**
- * Parse the access token or authentication error from the window location hash. Will remove it from the hash
- * if found.
- *
- * @param location The window location
- * @returns The access token if available, will throw an error if found, otherwise null
- */
- getFromLocation(location: Location) {
- const [accessToken, tokenRegex] = getMatch(location, this.options.locationKey)
-
- if (accessToken !== null) {
- location.hash = location.hash.replace(tokenRegex, '')
-
- return Promise.resolve(accessToken)
- }
-
- const [message, errorRegex] = getMatch(location, this.options.locationErrorKey)
-
- if (message !== null) {
- location.hash = location.hash.replace(errorRegex, '')
-
- return Promise.reject(new OauthError(decodeURIComponent(message)))
- }
-
- return Promise.resolve(null)
- }
-
- /**
- * Set the access token in storage.
- *
- * @param accessToken The access token to set
- * @returns
- */
- setAccessToken(accessToken: string) {
- return this.storage.setItem(this.options.storageKey, accessToken)
- }
-
- /**
- * Returns the access token from storage or the window location hash.
- *
- * @returns The access token from storage or location hash
- */
- getAccessToken(): Promise {
- return this.storage.getItem(this.options.storageKey).then((accessToken: string) => {
- if (!accessToken && typeof window !== 'undefined' && window.location) {
- return this.getFromLocation(window.location)
- }
-
- return accessToken || null
- })
- }
-
- /**
- * Remove the access token from storage
- * @returns The removed access token
- */
- removeAccessToken() {
- return this.storage.removeItem(this.options.storageKey)
- }
-
- /**
- * Reset the internal authentication state. Usually not necessary to call directly.
- *
- * @returns null
- */
- reset() {
- this.app.set('authentication', null)
- this.authenticated = false
-
- return Promise.resolve(null)
- }
-
- handleError(error: FeathersError, type: 'authenticate' | 'logout') {
- // For NotAuthenticated, PaymentError, Forbidden, NotFound, MethodNotAllowed, NotAcceptable
- // errors, remove the access token
- if (error.code > 400 && error.code < 408) {
- const promise = this.removeAccessToken().then(() => this.reset())
-
- return type === 'logout' ? promise : promise.then(() => Promise.reject(error))
- }
-
- return this.reset().then(() => Promise.reject(error))
- }
-
- /**
- * Try to reauthenticate using the token from storage. Will do nothing if already authenticated unless
- * `force` is true.
- *
- * @param force force reauthentication with the server
- * @param strategy The name of the strategy to use. Defaults to `options.jwtStrategy`
- * @param authParams Additional authentication parameters
- * @returns The reauthentication result
- */
- reAuthenticate(force = false, strategy?: string, authParams?: Params): Promise {
- // Either returns the authentication state or
- // tries to re-authenticate with the stored JWT and strategy
- let authPromise = this.app.get('authentication')
-
- if (!authPromise || force === true) {
- authPromise = this.getAccessToken().then((accessToken) => {
- if (!accessToken) {
- return this.handleError(new NotAuthenticated('No accessToken found in storage'), 'authenticate')
- }
-
- return this.authenticate(
- {
- strategy: strategy || this.options.jwtStrategy,
- accessToken
- },
- authParams
- )
- })
- this.app.set('authentication', authPromise)
- }
-
- return authPromise
- }
-
- /**
- * Authenticate using a specific strategy and data.
- *
- * @param authentication The authentication data
- * @param params Additional parameters
- * @returns The authentication result
- */
- authenticate(authentication?: AuthenticationRequest, params?: Params): Promise {
- if (!authentication) {
- return this.reAuthenticate()
- }
-
- const promise = this.service
- .create(authentication, params)
- .then((authResult: AuthenticationResult) => {
- const { accessToken } = authResult
-
- this.authenticated = true
- this.app.emit('login', authResult)
- this.app.emit('authenticated', authResult)
-
- return this.setAccessToken(accessToken).then(() => authResult)
- })
- .catch((error: FeathersError) => this.handleError(error, 'authenticate'))
-
- this.app.set('authentication', promise)
-
- return promise
- }
-
- /**
- * Log out the current user and remove their token. Will do nothing
- * if not authenticated.
- *
- * @returns The log out result.
- */
- logout(): Promise {
- return Promise.resolve(this.app.get('authentication'))
- .then(() =>
- this.service.remove(null).then((authResult: AuthenticationResult) =>
- this.removeAccessToken()
- .then(() => this.reset())
- .then(() => {
- this.app.emit('logout', authResult)
-
- return authResult
- })
- )
- )
- .catch((error: FeathersError) => this.handleError(error, 'logout'))
- }
-}
diff --git a/packages/authentication-client/src/hooks/authentication.ts b/packages/authentication-client/src/hooks/authentication.ts
deleted file mode 100644
index bba7b2dc2d..0000000000
--- a/packages/authentication-client/src/hooks/authentication.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { HookContext, NextFunction } from '@feathersjs/feathers'
-import { stripSlashes } from '@feathersjs/commons'
-
-export const authentication = () => {
- return (context: HookContext, next: NextFunction) => {
- const {
- app,
- params,
- path,
- method,
- app: { authentication: service }
- } = context
-
- if (stripSlashes(service.options.path) === path && method === 'create') {
- return next()
- }
-
- return Promise.resolve(app.get('authentication'))
- .then((authResult) => {
- if (authResult) {
- context.params = Object.assign({}, authResult, params)
- }
- })
- .then(next)
- }
-}
diff --git a/packages/authentication-client/src/hooks/index.ts b/packages/authentication-client/src/hooks/index.ts
deleted file mode 100644
index ef7cf4ea53..0000000000
--- a/packages/authentication-client/src/hooks/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { authentication } from './authentication'
-export { populateHeader } from './populate-header'
diff --git a/packages/authentication-client/src/hooks/populate-header.ts b/packages/authentication-client/src/hooks/populate-header.ts
deleted file mode 100644
index 1b4776187a..0000000000
--- a/packages/authentication-client/src/hooks/populate-header.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { HookContext, NextFunction } from '@feathersjs/feathers'
-
-export const populateHeader = () => {
- return (context: HookContext, next: NextFunction) => {
- const {
- app,
- params: { accessToken }
- } = context
- const authentication = app.authentication
-
- // Set REST header if necessary
- if (app.rest && accessToken) {
- const { scheme, header } = authentication.options
- const authHeader = `${scheme} ${accessToken}`
-
- context.params.headers = Object.assign(
- {},
- {
- [header]: authHeader
- },
- context.params.headers
- )
- }
-
- return next()
- }
-}
diff --git a/packages/authentication-client/src/index.ts b/packages/authentication-client/src/index.ts
deleted file mode 100644
index 5ab704a8d7..0000000000
--- a/packages/authentication-client/src/index.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import { AuthenticationClient, AuthenticationClientOptions } from './core'
-import * as hooks from './hooks'
-import { Application } from '@feathersjs/feathers'
-import { Storage, MemoryStorage, StorageWrapper } from './storage'
-
-declare module '@feathersjs/feathers/lib/declarations' {
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- interface Application {
- // eslint-disable-line
- io: any
- rest?: any
- authentication: AuthenticationClient
- authenticate: AuthenticationClient['authenticate']
- reAuthenticate: AuthenticationClient['reAuthenticate']
- logout: AuthenticationClient['logout']
- }
-}
-
-export const getDefaultStorage = () => {
- try {
- return new StorageWrapper(window.localStorage)
- } catch (error: any) {}
-
- return new MemoryStorage()
-}
-
-export { AuthenticationClient, AuthenticationClientOptions, Storage, MemoryStorage, hooks }
-
-export type ClientConstructor = new (
- app: Application,
- options: AuthenticationClientOptions
-) => AuthenticationClient
-
-export const defaultStorage: Storage = getDefaultStorage()
-
-export const defaults: AuthenticationClientOptions = {
- header: 'Authorization',
- scheme: 'Bearer',
- storageKey: 'feathers-jwt',
- locationKey: 'access_token',
- locationErrorKey: 'error',
- jwtStrategy: 'jwt',
- path: '/authentication',
- Authentication: AuthenticationClient,
- storage: defaultStorage
-}
-
-const init = (_options: Partial = {}) => {
- const options: AuthenticationClientOptions = Object.assign({}, defaults, _options)
- const { Authentication } = options
-
- return (app: Application) => {
- const authentication = new Authentication(app, options)
-
- app.authentication = authentication
- app.authenticate = authentication.authenticate.bind(authentication)
- app.reAuthenticate = authentication.reAuthenticate.bind(authentication)
- app.logout = authentication.logout.bind(authentication)
-
- app.hooks([hooks.authentication(), hooks.populateHeader()])
- }
-}
-
-export default init
-
-if (typeof module !== 'undefined') {
- module.exports = Object.assign(init, module.exports)
-}
diff --git a/packages/authentication-client/src/storage.ts b/packages/authentication-client/src/storage.ts
deleted file mode 100644
index f344eabee6..0000000000
--- a/packages/authentication-client/src/storage.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-export interface Storage {
- getItem(key: string): any
- setItem?(key: string, value: any): any
- removeItem?(key: string): any
-}
-
-export class MemoryStorage implements Storage {
- store: { [key: string]: any }
-
- constructor() {
- this.store = {}
- }
-
- getItem(key: string) {
- return Promise.resolve(this.store[key])
- }
-
- setItem(key: string, value: any) {
- return Promise.resolve((this.store[key] = value))
- }
-
- removeItem(key: string) {
- const value = this.store[key]
-
- delete this.store[key]
-
- return Promise.resolve(value)
- }
-}
-
-export class StorageWrapper implements Storage {
- storage: any
-
- constructor(storage: any) {
- this.storage = storage
- }
-
- getItem(key: string) {
- return Promise.resolve(this.storage?.getItem(key))
- }
-
- setItem(key: string, value: any) {
- return Promise.resolve(this.storage?.setItem(key, value))
- }
-
- removeItem(key: string) {
- return Promise.resolve(this.storage?.removeItem(key))
- }
-}
diff --git a/packages/authentication-client/test/index.test.ts b/packages/authentication-client/test/index.test.ts
deleted file mode 100644
index 1720b45a4e..0000000000
--- a/packages/authentication-client/test/index.test.ts
+++ /dev/null
@@ -1,247 +0,0 @@
-import assert from 'assert'
-import { feathers, Application } from '@feathersjs/feathers'
-
-import client from '../src'
-import { AuthenticationClient } from '../src'
-import { NotAuthenticated } from '@feathersjs/errors'
-
-describe('@feathersjs/authentication-client', () => {
- const accessToken = 'testing'
- const user = {
- name: 'Test User'
- }
- let app: Application
-
- beforeEach(() => {
- app = feathers()
-
- app.configure(client())
- app.use('/authentication', {
- async create(data: any) {
- if (data.error) {
- throw new Error('Did not work')
- }
-
- return {
- accessToken,
- data,
- user
- }
- },
-
- async remove(id) {
- if (!app.get('authentication')) {
- throw new NotAuthenticated('Not logged in')
- }
-
- return { id }
- }
- })
- app.use('dummy', {
- async find(params) {
- return params
- }
- })
- })
-
- it('initializes', () => {
- assert.ok(app.authentication instanceof AuthenticationClient)
- assert.strictEqual(app.get('storage'), app.authentication.storage)
- assert.strictEqual(typeof app.authenticate, 'function')
- assert.strictEqual(typeof app.logout, 'function')
- })
-
- it('setAccessToken, getAccessToken, removeAccessToken', async () => {
- const auth = app.authentication
- const token = 'hi'
-
- await auth.setAccessToken(token)
-
- const res = await auth.getAccessToken()
-
- assert.strictEqual(res, token)
-
- await auth.removeAccessToken()
- assert.strictEqual(await auth.getAccessToken(), null)
- })
-
- it('getFromLocation', async () => {
- const auth = app.authentication
- let dummyLocation = { hash: 'access_token=testing' } as Location
-
- let token = await auth.getFromLocation(dummyLocation)
-
- assert.strictEqual(token, 'testing')
- assert.strictEqual(dummyLocation.hash, '')
-
- dummyLocation.hash = 'a=b&access_token=otherTest&c=d'
- token = await auth.getFromLocation(dummyLocation)
-
- assert.strictEqual(token, 'otherTest')
- assert.strictEqual(dummyLocation.hash, 'a=b&c=d')
-
- dummyLocation = { search: 'access_token=testing' } as Location
- token = await auth.getFromLocation(dummyLocation)
-
- assert.strictEqual(await auth.getFromLocation({} as Location), null)
-
- try {
- await auth.getFromLocation({
- hash: 'error=Error Happened&x=y'
- } as Location)
- assert.fail('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'OauthError')
- assert.strictEqual(error.message, 'Error Happened')
- }
- })
-
- it('authenticate, authentication hook, login event', async () => {
- const data = {
- strategy: 'testing'
- }
-
- const promise = new Promise((resolve) => {
- app.once('login', resolve)
- })
-
- app.authenticate(data)
-
- const result = await promise
-
- assert.deepStrictEqual(result, {
- accessToken,
- data,
- user
- })
-
- let at = await app.authentication.getAccessToken()
-
- assert.strictEqual(at, accessToken, 'Set accessToken in storage')
-
- at = await Promise.resolve(app.get('storage').getItem('feathers-jwt'))
-
- assert.strictEqual(at, accessToken, 'Set accessToken in storage')
-
- const found = await app.service('dummy').find()
- assert.deepStrictEqual(found.accessToken, accessToken)
- assert.deepStrictEqual(found.user, user)
- })
-
- it('logout event', async () => {
- const promise = new Promise((resolve) => app.once('logout', resolve))
-
- app.authenticate({ strategy: 'testing' }).then(() => app.logout())
-
- const result = await promise
-
- assert.deepStrictEqual(result, { id: null })
- })
-
- it('does not remove AccessToken on other errors', async () => {
- await app.authenticate({ strategy: 'testing' })
- await app.authenticate({ strategy: 'testing' })
-
- const at = await app.authentication.getAccessToken()
-
- assert.strictEqual(at, accessToken)
- })
-
- it('resets after any error (#1947)', async () => {
- await assert.rejects(() => app.authenticate({ strategy: 'testing', error: true }), {
- message: 'Did not work'
- })
-
- const found = await app.service('dummy').find()
-
- assert.deepStrictEqual(found, {})
- })
-
- it('logout when not logged in without error', async () => {
- const result = await app.logout()
-
- assert.strictEqual(result, null)
- })
-
- describe('reauthenticate', () => {
- it('fails when no token in storage and resets authentication state', async () => {
- await assert.rejects(() => app.authentication.reAuthenticate(), {
- message: 'No accessToken found in storage'
- })
- assert.ok(!app.get('authentication'), 'Reset authentication')
- })
-
- it('reauthenticates when token is in storage', async () => {
- const data = {
- strategy: 'testing'
- }
-
- const result = await app.authenticate(data)
-
- assert.deepStrictEqual(result, {
- accessToken,
- data,
- user
- })
- await app.authentication.reAuthenticate()
- await app.authentication.reset()
-
- let at = await Promise.resolve(app.get('storage').getItem('feathers-jwt'))
-
- assert.strictEqual(at, accessToken, 'Set accessToken in storage')
-
- at = await app.authentication.reAuthenticate()
-
- assert.deepStrictEqual(at, {
- accessToken,
- data: { strategy: 'jwt', accessToken: 'testing' },
- user
- })
-
- await app.logout()
-
- at = await Promise.resolve(app.get('storage').getItem('feathers-jwt'))
- assert.ok(!at)
- assert.ok(!app.get('authentication'))
- })
-
- it('reAuthenticate works with parallel requests', async () => {
- const data = {
- strategy: 'testing'
- }
-
- await app.authenticate(data)
- await app.reAuthenticate()
- await app.authentication.reset()
-
- app.reAuthenticate()
-
- const found = await app.service('dummy').find()
-
- assert.deepStrictEqual(found.accessToken, accessToken)
- assert.deepStrictEqual(found.user, user)
- })
-
- it('reauthenticates using different strategy', async () => {
- app.configure(client({ jwtStrategy: 'any' }))
-
- const data = {
- strategy: 'testing'
- }
-
- let result = await app.authenticate(data)
- assert.deepStrictEqual(result, {
- accessToken,
- data,
- user
- })
-
- result = await app.authentication.reAuthenticate(false, 'jwt')
- assert.deepStrictEqual(result, {
- accessToken,
- data,
- user
- })
- })
- })
-})
diff --git a/packages/authentication-client/test/integration/commons.ts b/packages/authentication-client/test/integration/commons.ts
deleted file mode 100644
index 4973530792..0000000000
--- a/packages/authentication-client/test/integration/commons.ts
+++ /dev/null
@@ -1,118 +0,0 @@
-import assert from 'assert'
-import { Application } from '@feathersjs/feathers'
-import '../../src'
-
-export default (
- getApp: () => Application,
- getClient: () => Application,
- { provider, email, password }: { provider: string; email: string; password: string }
-) => {
- describe('common tests', () => {
- let client: Application
- let user: any
-
- before(
- async () =>
- (user = await getApp().service('users').create({
- email,
- password
- }))
- )
-
- beforeEach(() => {
- client = getClient()
- })
-
- after(async () => {
- await getApp().service('users').remove(user.id)
- })
-
- it('authenticates with local strategy', async () => {
- const result = await client.authenticate({
- strategy: 'local',
- email,
- password
- })
-
- assert.ok(result.accessToken)
- assert.strictEqual(result.authentication.strategy, 'local')
- assert.strictEqual(result.user.email, email)
- })
-
- it('authentication with wrong credentials fails, does not maintain state', async () => {
- await assert.rejects(
- () =>
- client.authenticate({
- strategy: 'local',
- email,
- password: 'blabla'
- }),
- {
- name: 'NotAuthenticated',
- message: 'Invalid login'
- }
- )
- assert.ok(!client.get('authentication'), 'Reset client state')
- })
-
- it('errors when not authenticated', async () => {
- await assert.rejects(() => client.service('dummy').find(), {
- name: 'NotAuthenticated',
- code: 401,
- message: 'Not authenticated'
- })
- })
-
- it('authenticates and allows access', async () => {
- await client.authenticate({
- strategy: 'local',
- email,
- password
- })
- const result = await client.service('dummy').find()
-
- assert.strictEqual(result.provider, provider)
- assert.ok(result.authentication)
- assert.ok(result.authentication.payload)
- assert.strictEqual(result.user.email, user.email)
- assert.strictEqual(result.user.id, user.id)
- })
-
- it('re-authenticates', async () => {
- await client.authenticate({
- strategy: 'local',
- email,
- password
- })
-
- client.authentication.reset()
- client.authenticate()
- const result = await client.service('dummy').find()
-
- assert.strictEqual(result.provider, provider)
- assert.ok(result.authentication)
- assert.ok(result.authentication.payload)
- assert.strictEqual(result.user.email, user.email)
- assert.strictEqual(result.user.id, user.id)
- })
-
- it('after logout does not allow subsequent access', async () => {
- await client.authenticate({
- strategy: 'local',
- email,
- password
- })
-
- const result = await client.logout()
-
- assert.ok(result!.accessToken)
- assert.ok(result!.user)
-
- assert.rejects(() => client.service('dummy').find(), {
- name: 'NotAuthenticated',
- code: 401,
- message: 'Not authenticated'
- })
- })
- })
-}
diff --git a/packages/authentication-client/test/integration/express.test.ts b/packages/authentication-client/test/integration/express.test.ts
deleted file mode 100644
index e5f7709c6b..0000000000
--- a/packages/authentication-client/test/integration/express.test.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import axios from 'axios'
-import { Server } from 'http'
-import { feathers, Application as FeathersApplication } from '@feathersjs/feathers'
-import * as express from '@feathersjs/express'
-import rest from '@feathersjs/rest-client'
-
-import authClient from '../../src'
-import getApp from './fixture'
-import commonTests from './commons'
-
-describe('@feathersjs/authentication-client Express integration', () => {
- let app: express.Application
- let server: Server
-
- before(async () => {
- const restApp = express
- .default(feathers())
- .use(express.json())
- .configure(express.rest())
- .use(express.parseAuthentication())
- app = getApp(restApp as unknown as FeathersApplication) as express.Application
- app.use(express.errorHandler())
-
- server = await app.listen(9776)
- })
-
- after((done) => server.close(() => done()))
-
- commonTests(
- () => app,
- () => {
- return feathers().configure(rest('http://localhost:9776').axios(axios)).configure(authClient())
- },
- {
- email: 'expressauth@feathersjs.com',
- password: 'secret',
- provider: 'rest'
- }
- )
-})
diff --git a/packages/authentication-client/test/integration/fixture.ts b/packages/authentication-client/test/integration/fixture.ts
deleted file mode 100644
index 1ecef9f9b0..0000000000
--- a/packages/authentication-client/test/integration/fixture.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-import { authenticate } from '@feathersjs/authentication'
-import { HookContext, Application } from '@feathersjs/feathers'
-import { memory } from '@feathersjs/memory'
-import { AuthenticationService, JWTStrategy } from '@feathersjs/authentication'
-import { LocalStrategy, hooks } from '@feathersjs/authentication-local'
-
-const { hashPassword, protect } = hooks
-
-export default (app: Application) => {
- const authentication = new AuthenticationService(app)
-
- app.set('authentication', {
- entity: 'user',
- service: 'users',
- secret: 'supersecret',
- authStrategies: ['local', 'jwt'],
- local: {
- usernameField: 'email',
- passwordField: 'password'
- }
- })
-
- authentication.register('jwt', new JWTStrategy())
- authentication.register('local', new LocalStrategy())
-
- app.use('/authentication', authentication)
- app.use(
- '/users',
- memory({
- paginate: {
- default: 10,
- max: 20
- }
- })
- )
-
- app.service('users').hooks({
- before: {
- create: hashPassword('password')
- },
- after: protect('password')
- })
-
- app.use('/dummy', {
- find(params) {
- return Promise.resolve(params)
- }
- })
-
- app.service('dummy').hooks({
- before: authenticate('jwt')
- })
-
- app.service('users').hooks({
- before(context: HookContext) {
- if (context.id !== undefined && context.id !== null) {
- context.id = parseInt(context.id as string, 10)
- }
-
- return context
- }
- })
-
- return app
-}
diff --git a/packages/authentication-client/test/integration/socketio.test.ts b/packages/authentication-client/test/integration/socketio.test.ts
deleted file mode 100644
index d6070e5259..0000000000
--- a/packages/authentication-client/test/integration/socketio.test.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-import { io } from 'socket.io-client'
-import assert from 'assert'
-import { feathers, Application } from '@feathersjs/feathers'
-import socketio from '@feathersjs/socketio'
-import socketioClient from '@feathersjs/socketio-client'
-
-import authClient from '../../src'
-import getApp from './fixture'
-import commonTests from './commons'
-import { AuthenticationResult } from '@feathersjs/authentication/lib'
-
-describe('@feathersjs/authentication-client Socket.io integration', () => {
- let app: Application
-
- before(async () => {
- app = getApp(feathers().configure(socketio()))
-
- await app.listen(9777)
- })
-
- after((done) => {
- app.io.close(() => done())
- })
-
- it('allows to authenticate with handshake headers and sends login event', async () => {
- const user = { email: 'authtest@example.com', password: 'alsosecret' }
-
- await app.service('users').create(user)
-
- const { accessToken } = await app.service('authentication').create({
- strategy: 'local',
- ...user
- })
-
- const socket = io('http://localhost:9777', {
- transports: ['websocket'],
- transportOptions: {
- websocket: {
- extraHeaders: {
- Authorization: `Bearer ${accessToken}`
- }
- }
- }
- })
- const authResult: any = await new Promise((resolve) => app.once('login', (res) => resolve(res)))
-
- assert.strictEqual(authResult.accessToken, accessToken)
-
- const dummy: any = await new Promise((resolve, reject) => {
- socket.emit('find', 'dummy', {}, (error: Error, page: any) => (error ? reject(error) : resolve(page)))
- })
-
- assert.strictEqual(dummy.user.email, user.email)
- assert.strictEqual(dummy.authentication.accessToken, accessToken)
- assert.strictEqual(dummy.headers.authorization, `Bearer ${accessToken}`)
- })
-
- it('reconnects after socket disconnection', async () => {
- const user = { email: 'disconnecttest@example.com', password: 'alsosecret' }
- const socket = io('http://localhost:9777', {
- timeout: 500,
- reconnection: true,
- reconnectionDelay: 100
- })
- const client = feathers().configure(socketioClient(socket)).configure(authClient())
-
- await app.service('users').create(user)
- await client.authenticate({
- strategy: 'local',
- ...user
- })
-
- const onLogin = new Promise((resolve) => app.once('login', (data) => resolve(data)))
-
- socket.once('disconnect', () => socket.connect())
- socket.disconnect()
-
- const {
- authentication: { strategy }
- } = await onLogin
- const dummy = await client.service('dummy').find()
-
- assert.strictEqual(strategy, 'jwt')
- assert.strictEqual(dummy.user.email, user.email)
- })
-
- commonTests(
- () => app,
- () => {
- return feathers()
- .configure(socketioClient(io('http://localhost:9777')))
- .configure(authClient())
- },
- {
- email: 'socketioauth@feathersjs.com',
- password: 'secretive',
- provider: 'socketio'
- }
- )
-})
diff --git a/packages/authentication-client/tsconfig.json b/packages/authentication-client/tsconfig.json
deleted file mode 100644
index 316fd41336..0000000000
--- a/packages/authentication-client/tsconfig.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "extends": "../../tsconfig",
- "include": [
- "src/**/*.ts"
- ],
- "compilerOptions": {
- "outDir": "lib"
- }
-}
diff --git a/packages/authentication-local/CHANGELOG.md b/packages/authentication-local/CHANGELOG.md
deleted file mode 100644
index 6a4c92b758..0000000000
--- a/packages/authentication-local/CHANGELOG.md
+++ /dev/null
@@ -1,849 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file.
-See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-
-## [5.0.34](https://github.com/feathersjs/feathers/compare/v5.0.33...v5.0.34) (2025-05-03)
-
-### Bug Fixes
-
-- Update dependencies ([#3584](https://github.com/feathersjs/feathers/issues/3584)) ([119fa4e](https://github.com/feathersjs/feathers/commit/119fa4e1ade8b0078aa235083d566e2538b3a084))
-
-## [5.0.33](https://github.com/feathersjs/feathers/compare/v5.0.32...v5.0.33) (2025-02-24)
-
-### Bug Fixes
-
-- **dependencies:** Update dependencies ([#3571](https://github.com/feathersjs/feathers/issues/3571)) ([ad611cb](https://github.com/feathersjs/feathers/commit/ad611cb6ffb1dc31d603ba5817331318c5a23217))
-
-## [5.0.32](https://github.com/feathersjs/feathers/compare/v5.0.31...v5.0.32) (2025-02-01)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.31](https://github.com/feathersjs/feathers/compare/v5.0.30...v5.0.31) (2024-10-31)
-
-### Bug Fixes
-
-- **dependencies:** Update all dependencies ([#3545](https://github.com/feathersjs/feathers/issues/3545)) ([221b92b](https://github.com/feathersjs/feathers/commit/221b92bb0ee5d54fb1036742968797cb02e56da2))
-
-## [5.0.30](https://github.com/feathersjs/feathers/compare/v5.0.29...v5.0.30) (2024-09-02)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.29](https://github.com/feathersjs/feathers/compare/v5.0.28...v5.0.29) (2024-07-10)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.28](https://github.com/feathersjs/feathers/compare/v5.0.27...v5.0.28) (2024-07-10)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.27](https://github.com/feathersjs/feathers/compare/v5.0.26...v5.0.27) (2024-06-18)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.26](https://github.com/feathersjs/feathers/compare/v5.0.25...v5.0.26) (2024-06-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.25](https://github.com/feathersjs/feathers/compare/v5.0.24...v5.0.25) (2024-05-03)
-
-### Bug Fixes
-
-- Reduce usage of lodash ([#3455](https://github.com/feathersjs/feathers/issues/3455)) ([8ce807a](https://github.com/feathersjs/feathers/commit/8ce807a5ca53ff5b8d5107a0656c6329404e6e6c))
-
-## [5.0.24](https://github.com/feathersjs/feathers/compare/v5.0.23...v5.0.24) (2024-03-13)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.23](https://github.com/feathersjs/feathers/compare/v5.0.22...v5.0.23) (2024-02-25)
-
-### Bug Fixes
-
-- **core:** Update to latest feathersjs/hooks ([#3434](https://github.com/feathersjs/feathers/issues/3434)) ([1499ccc](https://github.com/feathersjs/feathers/commit/1499ccc41fb3ebba97b2c84e0cb19bc48ad3c651))
-
-## [5.0.22](https://github.com/feathersjs/feathers/compare/v5.0.21...v5.0.22) (2024-02-15)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.21](https://github.com/feathersjs/feathers/compare/v5.0.20...v5.0.21) (2024-01-25)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.20](https://github.com/feathersjs/feathers/compare/v5.0.19...v5.0.20) (2024-01-24)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.19](https://github.com/feathersjs/feathers/compare/v5.0.18...v5.0.19) (2024-01-23)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.18](https://github.com/feathersjs/feathers/compare/v5.0.17...v5.0.18) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.17](https://github.com/feathersjs/feathers/compare/v5.0.16...v5.0.17) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.16](https://github.com/feathersjs/feathers/compare/v5.0.15...v5.0.16) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.15](https://github.com/feathersjs/feathers/compare/v5.0.14...v5.0.15) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.14](https://github.com/feathersjs/feathers/compare/v5.0.13...v5.0.14) (2024-01-05)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.13](https://github.com/feathersjs/feathers/compare/v5.0.12...v5.0.13) (2023-12-29)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.12](https://github.com/feathersjs/feathers/compare/v5.0.11...v5.0.12) (2023-11-28)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.11](https://github.com/feathersjs/feathers/compare/v5.0.10...v5.0.11) (2023-10-11)
-
-### Bug Fixes
-
-- **knex:** Update all dependencies and Knex peer ([#3308](https://github.com/feathersjs/feathers/issues/3308)) ([d2f9860](https://github.com/feathersjs/feathers/commit/d2f986036c4741cce2339d8abbcc6b2eb037a12a))
-
-## [5.0.10](https://github.com/feathersjs/feathers/compare/v5.0.9...v5.0.10) (2023-10-03)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.9](https://github.com/feathersjs/feathers/compare/v5.0.8...v5.0.9) (2023-09-27)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.8](https://github.com/feathersjs/feathers/compare/v5.0.7...v5.0.8) (2023-07-19)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.7](https://github.com/feathersjs/feathers/compare/v5.0.6...v5.0.7) (2023-07-14)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.6](https://github.com/feathersjs/feathers/compare/v5.0.5...v5.0.6) (2023-06-15)
-
-### Bug Fixes
-
-- **authentication-local:** Local Auth - Nested username & Password fields ([#3091](https://github.com/feathersjs/feathers/issues/3091)) ([d135526](https://github.com/feathersjs/feathers/commit/d135526da18ecf2dc620b82820e1d09d8af5c0b5))
-
-## [5.0.5](https://github.com/feathersjs/feathers/compare/v5.0.4...v5.0.5) (2023-04-28)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [5.0.4](https://github.com/feathersjs/feathers/compare/v5.0.3...v5.0.4) (2023-04-12)
-
-### Bug Fixes
-
-- Make sure all Readme files are up to date ([#3154](https://github.com/feathersjs/feathers/issues/3154)) ([a5f0b38](https://github.com/feathersjs/feathers/commit/a5f0b38bbf2a11486415a39533bcc6c67fb51e3e))
-
-## [5.0.3](https://github.com/feathersjs/feathers/compare/v5.0.2...v5.0.3) (2023-04-05)
-
-### Bug Fixes
-
-- **dependencies:** Update all dependencies ([#3139](https://github.com/feathersjs/feathers/issues/3139)) ([f24276e](https://github.com/feathersjs/feathers/commit/f24276e9a909e2e58a0730c730258ce1f70f4028))
-
-## [5.0.1](https://github.com/feathersjs/feathers/compare/v5.0.0...v5.0.1) (2023-03-15)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.38...v5.0.0) (2023-02-24)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.38](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.37...v5.0.0-pre.38) (2023-02-17)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.37](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.36...v5.0.0-pre.37) (2023-02-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.36](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.35...v5.0.0-pre.36) (2023-01-29)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.35](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.34...v5.0.0-pre.35) (2023-01-12)
-
-### Features
-
-- **generators:** Move core code generators to shared generators package ([#2982](https://github.com/feathersjs/feathers/issues/2982)) ([0328d22](https://github.com/feathersjs/feathers/commit/0328d2292153870bc43958f73d2c6f288a8cec17))
-
-# [5.0.0-pre.34](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.33...v5.0.0-pre.34) (2022-12-14)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.33](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.32...v5.0.0-pre.33) (2022-11-08)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.32](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.31...v5.0.0-pre.32) (2022-10-26)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.31](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.30...v5.0.0-pre.31) (2022-10-12)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.30](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.29...v5.0.0-pre.30) (2022-10-07)
-
-### Features
-
-- **core:** Allow to unregister services at runtime ([#2756](https://github.com/feathersjs/feathers/issues/2756)) ([d16601f](https://github.com/feathersjs/feathers/commit/d16601f2277dca5357866ffdefba2a611f6dc7fa))
-
-# [5.0.0-pre.29](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.28...v5.0.0-pre.29) (2022-09-16)
-
-### Features
-
-- **authentication-oauth:** Koa and transport independent oAuth authentication ([#2737](https://github.com/feathersjs/feathers/issues/2737)) ([9231525](https://github.com/feathersjs/feathers/commit/9231525a24bb790ba9c5d940f2867a9c727691c9))
-
-# [5.0.0-pre.28](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.27...v5.0.0-pre.28) (2022-08-03)
-
-### Bug Fixes
-
-- **cli:** Improve generated application and client ([#2701](https://github.com/feathersjs/feathers/issues/2701)) ([bd55ffb](https://github.com/feathersjs/feathers/commit/bd55ffb812e89bf215f4515e7f137656ea888c3f))
-
-# [5.0.0-pre.27](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.26...v5.0.0-pre.27) (2022-07-13)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.26](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.25...v5.0.0-pre.26) (2022-06-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.25](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.24...v5.0.0-pre.25) (2022-06-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.24](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.23...v5.0.0-pre.24) (2022-06-21)
-
-### Features
-
-- **authentication-local:** Add passwordHash property resolver ([#2660](https://github.com/feathersjs/feathers/issues/2660)) ([b41279b](https://github.com/feathersjs/feathers/commit/b41279b55eea3771a6fa4983a37be2413287bbc6))
-
-# [5.0.0-pre.23](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.22...v5.0.0-pre.23) (2022-06-06)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.22](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.21...v5.0.0-pre.22) (2022-05-24)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.21](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.20...v5.0.0-pre.21) (2022-05-23)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.20](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.19...v5.0.0-pre.20) (2022-05-04)
-
-### Bug Fixes
-
-- **dependencies:** Lock monorepo package version numbers ([#2623](https://github.com/feathersjs/feathers/issues/2623)) ([5640c10](https://github.com/feathersjs/feathers/commit/5640c1020cc139994e695d658c08bad3494db507))
-
-# [5.0.0-pre.19](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.18...v5.0.0-pre.19) (2022-05-01)
-
-### Features
-
-- **typescript:** Improve adapter typings ([#2605](https://github.com/feathersjs/feathers/issues/2605)) ([3b2ca0a](https://github.com/feathersjs/feathers/commit/3b2ca0a6a8e03e8390272c4d7e930b4bffdaacf5))
-
-# [5.0.0-pre.18](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.17...v5.0.0-pre.18) (2022-04-11)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.17](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.16...v5.0.0-pre.17) (2022-02-15)
-
-### Bug Fixes
-
-- **hooks:** Allow all built-in hooks to be used the async and regular way ([#2559](https://github.com/feathersjs/feathers/issues/2559)) ([8f9f631](https://github.com/feathersjs/feathers/commit/8f9f631e0ce89de349207db72def84e7ab496a4a))
-
-# [5.0.0-pre.16](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.15...v5.0.0-pre.16) (2022-01-12)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.15](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.14...v5.0.0-pre.15) (2021-11-27)
-
-### Bug Fixes
-
-- **typescript:** Overall typing improvements ([#2478](https://github.com/feathersjs/feathers/issues/2478)) ([b8eb804](https://github.com/feathersjs/feathers/commit/b8eb804158556d9651a8607e3c3fda15e0bfd110))
-
-# [5.0.0-pre.14](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.13...v5.0.0-pre.14) (2021-10-13)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.13](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.12...v5.0.0-pre.13) (2021-10-13)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.12](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.11...v5.0.0-pre.12) (2021-10-12)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.11](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.10...v5.0.0-pre.11) (2021-10-06)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.10](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.9...v5.0.0-pre.10) (2021-09-19)
-
-### Bug Fixes
-
-- **authentication-local:** adds error handling for undefined/null password field ([#2444](https://github.com/feathersjs/feathers/issues/2444)) ([4323f98](https://github.com/feathersjs/feathers/commit/4323f9859a66a7fe3f7f15d81476bd81b735c226))
-
-# [5.0.0-pre.9](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.8...v5.0.0-pre.9) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.8](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.7...v5.0.0-pre.8) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.7](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.6...v5.0.0-pre.7) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.6](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.5...v5.0.0-pre.6) (2021-08-08)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.5](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.4...v5.0.0-pre.5) (2021-06-23)
-
-### Bug Fixes
-
-- **hooks:** Migrate built-in hooks and allow backwards compatibility ([#2358](https://github.com/feathersjs/feathers/issues/2358)) ([759c5a1](https://github.com/feathersjs/feathers/commit/759c5a19327a731af965c3604119393b3d09a406))
-- **koa:** Use extended query parser for compatibility ([#2397](https://github.com/feathersjs/feathers/issues/2397)) ([b2944ba](https://github.com/feathersjs/feathers/commit/b2944bac3ec6d5ecc80dc518cd4e58093692db74))
-
-### Features
-
-- **adapter-commons:** Add support for params.adapter option and move memory adapter to @feathersjs/memory ([#2367](https://github.com/feathersjs/feathers/issues/2367)) ([a43e7da](https://github.com/feathersjs/feathers/commit/a43e7da22b6b981a96d1321736ea9a0cb924fb4f))
-
-# [5.0.0-pre.4](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.3...v5.0.0-pre.4) (2021-05-13)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.3](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.2...v5.0.0-pre.3) (2021-04-21)
-
-### Bug Fixes
-
-- **typescript:** Improve TypeScript backwards compatibility ([#2310](https://github.com/feathersjs/feathers/issues/2310)) ([f33be73](https://github.com/feathersjs/feathers/commit/f33be73fc46a533efb15df9aab0658e3240d3897))
-
-### Features
-
-- **dependencies:** Remove direct debug dependency ([#2296](https://github.com/feathersjs/feathers/issues/2296)) ([501d416](https://github.com/feathersjs/feathers/commit/501d4164d30c6a126906dc640cdfdc82207ba34a))
-
-# [5.0.0-pre.2](https://github.com/feathersjs/feathers/compare/v5.0.0-beta.1...v5.0.0-pre.2) (2021-04-06)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-beta.1](https://github.com/feathersjs/feathers/compare/v5.0.0-beta.0...v5.0.0-beta.1) (2021-04-03)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-beta.0](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.1...v5.0.0-beta.0) (2021-03-28)
-
-### Bug Fixes
-
-- Update Grant usage and other dependencies ([#2264](https://github.com/feathersjs/feathers/issues/2264)) ([7b0f8fa](https://github.com/feathersjs/feathers/commit/7b0f8fad252419ed0ad0bf259cdf3104d322ab60))
-
-### Features
-
-- Feathers v5 core refactoring and features ([#2255](https://github.com/feathersjs/feathers/issues/2255)) ([2dafb7c](https://github.com/feathersjs/feathers/commit/2dafb7ce14ba57406aeec13d10ca45b1e709bee9))
-
-# [5.0.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.5.11...v5.0.0-pre.1) (2020-12-17)
-
-# [5.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v4.5.4...v5.0.0-pre.0) (2020-05-19)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [5.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v4.5.4...v5.0.0-pre.0) (2020-05-19)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [4.5.8](https://github.com/feathersjs/feathers/compare/v4.5.7...v4.5.8) (2020-08-12)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [4.5.7](https://github.com/feathersjs/feathers/compare/v4.5.6...v4.5.7) (2020-07-24)
-
-### Bug Fixes
-
-- **authentication:** Add JWT getEntityQuery ([#2013](https://github.com/feathersjs/feathers/issues/2013)) ([e0e7fb5](https://github.com/feathersjs/feathers/commit/e0e7fb5162940fe776731283b40026c61d9c8a33))
-
-## [4.5.6](https://github.com/feathersjs/feathers/compare/v4.5.5...v4.5.6) (2020-07-12)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [4.5.5](https://github.com/feathersjs/feathers/compare/v4.5.4...v4.5.5) (2020-07-11)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [4.5.4](https://github.com/feathersjs/feathers/compare/v4.5.3...v4.5.4) (2020-04-29)
-
-### Bug Fixes
-
-- **authentication-local:** Allow to hash passwords in array data ([#1936](https://github.com/feathersjs/feathers/issues/1936)) ([64705f5](https://github.com/feathersjs/feathers/commit/64705f5d9d4dc27f799da3a074efaf74379a3398))
-
-## [4.5.3](https://github.com/feathersjs/feathers/compare/v4.5.2...v4.5.3) (2020-04-17)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [4.5.2](https://github.com/feathersjs/feathers/compare/v4.5.1...v4.5.2) (2020-03-04)
-
-### Bug Fixes
-
-- **test:** typo in password ([#1797](https://github.com/feathersjs/feathers/issues/1797)) ([dfba6ec](https://github.com/feathersjs/feathers/commit/dfba6ec2f21adf3aa739218cf870eaaaa5df6e9c))
-
-## [4.5.1](https://github.com/feathersjs/feathers/compare/v4.5.0...v4.5.1) (2020-01-24)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [4.5.0](https://github.com/feathersjs/feathers/compare/v4.4.3...v4.5.0) (2020-01-18)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [4.4.3](https://github.com/feathersjs/feathers/compare/v4.4.1...v4.4.3) (2019-12-06)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [4.4.1](https://github.com/feathersjs/feathers/compare/v4.4.0...v4.4.1) (2019-11-27)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [4.4.0](https://github.com/feathersjs/feathers/compare/v4.3.11...v4.4.0) (2019-11-27)
-
-### Features
-
-- **authentication:** Add parseStrategies to allow separate strategies for creating JWTs and parsing headers ([#1708](https://github.com/feathersjs/feathers/issues/1708)) ([5e65629](https://github.com/feathersjs/feathers/commit/5e65629b924724c3e81d7c81df047e123d1c8bd7))
-
-## [4.3.11](https://github.com/feathersjs/feathers/compare/v4.3.10...v4.3.11) (2019-11-11)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [4.3.10](https://github.com/feathersjs/feathers/compare/v4.3.9...v4.3.10) (2019-10-26)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [4.3.9](https://github.com/feathersjs/feathers/compare/v4.3.8...v4.3.9) (2019-10-26)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [4.3.7](https://github.com/feathersjs/feathers/compare/v4.3.6...v4.3.7) (2019-10-14)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [4.3.5](https://github.com/feathersjs/feathers/compare/v4.3.4...v4.3.5) (2019-10-07)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [4.3.4](https://github.com/feathersjs/feathers/compare/v4.3.3...v4.3.4) (2019-10-03)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-## [4.3.3](https://github.com/feathersjs/feathers/compare/v4.3.2...v4.3.3) (2019-09-21)
-
-### Bug Fixes
-
-- Small improvements in dependencies and code sturcture ([#1562](https://github.com/feathersjs/feathers/issues/1562)) ([42c13e2](https://github.com/feathersjs/feathers/commit/42c13e2))
-
-## [4.3.2](https://github.com/feathersjs/feathers/compare/v4.3.1...v4.3.2) (2019-09-16)
-
-### Bug Fixes
-
-- LocalStrategy authenticates without username ([#1560](https://github.com/feathersjs/feathers/issues/1560)) ([2b258fd](https://github.com/feathersjs/feathers/commit/2b258fd)), closes [#1559](https://github.com/feathersjs/feathers/issues/1559)
-
-## [4.3.1](https://github.com/feathersjs/feathers/compare/v4.3.0...v4.3.1) (2019-09-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [4.3.0](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.4...v4.3.0) (2019-08-27)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [4.3.0-pre.4](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.3...v4.3.0-pre.4) (2019-08-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [4.3.0-pre.3](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.2...v4.3.0-pre.3) (2019-08-19)
-
-### Bug Fixes
-
-- Update all dependencies ([7d53a00](https://github.com/feathersjs/feathers/commit/7d53a00))
-
-# [4.3.0-pre.2](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.1...v4.3.0-pre.2) (2019-08-02)
-
-### Bug Fixes
-
-- Add method to reliably get default authentication service ([#1470](https://github.com/feathersjs/feathers/issues/1470)) ([e542cb3](https://github.com/feathersjs/feathers/commit/e542cb3))
-
-# [4.3.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.5...v4.3.0-pre.1) (2019-07-11)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [4.0.0-pre.5](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.4...v4.0.0-pre.5) (2019-07-10)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [4.0.0-pre.4](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.3...v4.0.0-pre.4) (2019-07-05)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [4.0.0-pre.3](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.2...v4.0.0-pre.3) (2019-06-01)
-
-### Bug Fixes
-
-- Update dependencies and fix tests ([#1373](https://github.com/feathersjs/feathers/issues/1373)) ([d743a7f](https://github.com/feathersjs/feathers/commit/d743a7f))
-
-# [4.0.0-pre.2](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.1...v4.0.0-pre.2) (2019-05-15)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-# [4.0.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.0...v4.0.0-pre.1) (2019-05-08)
-
-### Bug Fixes
-
-- Always require strategy parameter in authentication ([#1327](https://github.com/feathersjs/feathers/issues/1327)) ([d4a8021](https://github.com/feathersjs/feathers/commit/d4a8021))
-- Improve authentication parameter handling ([#1333](https://github.com/feathersjs/feathers/issues/1333)) ([6e77204](https://github.com/feathersjs/feathers/commit/6e77204))
-- Merge httpStrategies and authStrategies option ([#1308](https://github.com/feathersjs/feathers/issues/1308)) ([afa4d55](https://github.com/feathersjs/feathers/commit/afa4d55))
-- Rename jwtStrategies option to authStrategies ([#1305](https://github.com/feathersjs/feathers/issues/1305)) ([4aee151](https://github.com/feathersjs/feathers/commit/4aee151))
-
-### Features
-
-- Change and *JWT methods to *accessToken ([#1304](https://github.com/feathersjs/feathers/issues/1304)) ([5ac826b](https://github.com/feathersjs/feathers/commit/5ac826b))
-
-# [4.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v3.2.0-pre.1...v4.0.0-pre.0) (2019-04-21)
-
-### Bug Fixes
-
-- Authentication core improvements ([#1260](https://github.com/feathersjs/feathers/issues/1260)) ([c5dc7a2](https://github.com/feathersjs/feathers/commit/c5dc7a2))
-- Make Mocha a proper devDependency for every repository ([#1053](https://github.com/feathersjs/feathers/issues/1053)) ([9974803](https://github.com/feathersjs/feathers/commit/9974803))
-- Update adapter common tests ([#1135](https://github.com/feathersjs/feathers/issues/1135)) ([8166dda](https://github.com/feathersjs/feathers/commit/8166dda))
-- Update all dependencies to latest ([#1206](https://github.com/feathersjs/feathers/issues/1206)) ([e51e0f6](https://github.com/feathersjs/feathers/commit/e51e0f6))
-- **package:** update debug to version 3.0.0 ([#31](https://github.com/feathersjs/feathers/issues/31)) ([f23d617](https://github.com/feathersjs/feathers/commit/f23d617))
-
-### Features
-
-- @feathersjs/authentication-oauth ([#1299](https://github.com/feathersjs/feathers/issues/1299)) ([656bae7](https://github.com/feathersjs/feathers/commit/656bae7))
-- Add AuthenticationBaseStrategy and make authentication option handling more explicit ([#1284](https://github.com/feathersjs/feathers/issues/1284)) ([2667d92](https://github.com/feathersjs/feathers/commit/2667d92))
-- Add TypeScript definitions ([#1275](https://github.com/feathersjs/feathers/issues/1275)) ([9dd6713](https://github.com/feathersjs/feathers/commit/9dd6713))
-- Authentication v3 core server implementation ([#1205](https://github.com/feathersjs/feathers/issues/1205)) ([1bd7591](https://github.com/feathersjs/feathers/commit/1bd7591))
-- Authentication v3 local authentication ([#1211](https://github.com/feathersjs/feathers/issues/1211)) ([0fa5f7c](https://github.com/feathersjs/feathers/commit/0fa5f7c))
-
-### BREAKING CHANGES
-
-- Update authentication strategies for @feathersjs/authentication v3
-
-## [1.2.9](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-local@1.2.8...@feathersjs/authentication-local@1.2.9) (2019-01-02)
-
-### Bug Fixes
-
-- Update adapter common tests ([#1135](https://github.com/feathersjs/feathers/issues/1135)) ([8166dda](https://github.com/feathersjs/feathers/commit/8166dda))
-
-
-
-## [1.2.8](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-local@1.2.7...@feathersjs/authentication-local@1.2.8) (2018-12-16)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-
-
-## [1.2.7](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-local@1.2.6...@feathersjs/authentication-local@1.2.7) (2018-10-26)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-
-
-## [1.2.6](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-local@1.2.5...@feathersjs/authentication-local@1.2.6) (2018-10-25)
-
-### Bug Fixes
-
-- Make Mocha a proper devDependency for every repository ([#1053](https://github.com/feathersjs/feathers/issues/1053)) ([9974803](https://github.com/feathersjs/feathers/commit/9974803))
-
-
-
-## [1.2.5](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-local@1.2.4...@feathersjs/authentication-local@1.2.5) (2018-09-21)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-
-
-## [1.2.4](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-local@1.2.3...@feathersjs/authentication-local@1.2.4) (2018-09-17)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-
-
-## [1.2.3](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication-local@1.2.2...@feathersjs/authentication-local@1.2.3) (2018-09-02)
-
-**Note:** Version bump only for package @feathersjs/authentication-local
-
-
-
-## 1.2.2
-
-- Migrate to Monorepo ([feathers#462](https://github.com/feathersjs/feathers/issues/462))
-
-## [v1.2.1](https://github.com/feathersjs/authentication-local/tree/v1.2.1) (2018-05-02)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v1.2.0...v1.2.1)
-
-**Merged pull requests:**
-
-- Make sure the original object is not modified [\#65](https://github.com/feathersjs/authentication-local/pull/65) ([daffl](https://github.com/daffl))
-
-## [v1.2.0](https://github.com/feathersjs/authentication-local/tree/v1.2.0) (2018-05-02)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v1.1.3...v1.2.0)
-
-**Merged pull requests:**
-
-- added support for nested password fields option in hash password hook [\#64](https://github.com/feathersjs/authentication-local/pull/64) ([ThePesta](https://github.com/ThePesta))
-
-## [v1.1.3](https://github.com/feathersjs/authentication-local/tree/v1.1.3) (2018-04-20)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v1.1.2...v1.1.3)
-
-**Merged pull requests:**
-
-- Adding tests and calling to hasOwnProperty on Object.prototype instead of assuming valid prototype [\#63](https://github.com/feathersjs/authentication-local/pull/63) ([pmabres](https://github.com/pmabres))
-
-## [v1.1.2](https://github.com/feathersjs/authentication-local/tree/v1.1.2) (2018-04-15)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v1.1.1...v1.1.2)
-
-**Closed issues:**
-
-- Protect hooks does not support dot notation [\#61](https://github.com/feathersjs/authentication-local/issues/61)
-
-**Merged pull requests:**
-
-- Use latest version of Lodash [\#62](https://github.com/feathersjs/authentication-local/pull/62) ([daffl](https://github.com/daffl))
-
-## [v1.1.1](https://github.com/feathersjs/authentication-local/tree/v1.1.1) (2018-03-25)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v1.1.0...v1.1.1)
-
-**Closed issues:**
-
-- hash-password hook will skip users if they are missing password [\#58](https://github.com/feathersjs/authentication-local/issues/58)
-- User service create method gets called upon each validation [\#56](https://github.com/feathersjs/authentication-local/issues/56)
-
-**Merged pull requests:**
-
-- Do not skip users that have no password [\#60](https://github.com/feathersjs/authentication-local/pull/60) ([daffl](https://github.com/daffl))
-- Update sinon to the latest version 🚀 [\#59](https://github.com/feathersjs/authentication-local/pull/59) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update sinon-chai to the latest version 🚀 [\#57](https://github.com/feathersjs/authentication-local/pull/57) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v1.1.0](https://github.com/feathersjs/authentication-local/tree/v1.1.0) (2018-01-23)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v1.0.4...v1.1.0)
-
-**Closed issues:**
-
-- protect hook attempts to map through 'result.data' on all service methods. [\#53](https://github.com/feathersjs/authentication-local/issues/53)
-- Protect hook should check for toJSON [\#48](https://github.com/feathersjs/authentication-local/issues/48)
-
-**Merged pull requests:**
-
-- Use .toJSON if available [\#55](https://github.com/feathersjs/authentication-local/pull/55) ([daffl](https://github.com/daffl))
-- Only map data for find method [\#54](https://github.com/feathersjs/authentication-local/pull/54) ([daffl](https://github.com/daffl))
-- Update @feathersjs/authentication-jwt to the latest version 🚀 [\#52](https://github.com/feathersjs/authentication-local/pull/52) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update mocha to the latest version 🚀 [\#51](https://github.com/feathersjs/authentication-local/pull/51) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v1.0.4](https://github.com/feathersjs/authentication-local/tree/v1.0.4) (2018-01-03)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v1.0.3...v1.0.4)
-
-## [v1.0.3](https://github.com/feathersjs/authentication-local/tree/v1.0.3) (2018-01-03)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v1.0.2...v1.0.3)
-
-**Closed issues:**
-
-- local authentication bug with users as sequelize service [\#47](https://github.com/feathersjs/authentication-local/issues/47)
-
-**Merged pull requests:**
-
-- Update documentation to correspond with latest release [\#50](https://github.com/feathersjs/authentication-local/pull/50) ([daffl](https://github.com/daffl))
-- Update semistandard to the latest version 🚀 [\#49](https://github.com/feathersjs/authentication-local/pull/49) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v1.0.2](https://github.com/feathersjs/authentication-local/tree/v1.0.2) (2017-12-06)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v1.0.1...v1.0.2)
-
-**Closed issues:**
-
-- why is the password send as plain text instead of encrypting it on client side? [\#44](https://github.com/feathersjs/authentication-local/issues/44)
-
-**Merged pull requests:**
-
-- Update hook.result if an external provider is set [\#46](https://github.com/feathersjs/authentication-local/pull/46) ([daffl](https://github.com/daffl))
-- Update feathers-memory to the latest version 🚀 [\#45](https://github.com/feathersjs/authentication-local/pull/45) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v1.0.1](https://github.com/feathersjs/authentication-local/tree/v1.0.1) (2017-11-16)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v1.0.0...v1.0.1)
-
-**Merged pull requests:**
-
-- Add default export for better ES module \(TypeScript\) compatibility [\#43](https://github.com/feathersjs/authentication-local/pull/43) ([daffl](https://github.com/daffl))
-- Update @feathersjs/authentication to the latest version 🚀 [\#42](https://github.com/feathersjs/authentication-local/pull/42) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v1.0.0](https://github.com/feathersjs/authentication-local/tree/v1.0.0) (2017-11-01)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v1.0.0-pre.2...v1.0.0)
-
-**Merged pull requests:**
-
-- Update dependencies for release [\#41](https://github.com/feathersjs/authentication-local/pull/41) ([daffl](https://github.com/daffl))
-
-## [v1.0.0-pre.2](https://github.com/feathersjs/authentication-local/tree/v1.0.0-pre.2) (2017-10-27)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v1.0.0-pre.1...v1.0.0-pre.2)
-
-**Merged pull requests:**
-
-- Safely dispatch without password [\#40](https://github.com/feathersjs/authentication-local/pull/40) ([daffl](https://github.com/daffl))
-
-## [v1.0.0-pre.1](https://github.com/feathersjs/authentication-local/tree/v1.0.0-pre.1) (2017-10-25)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v0.4.4...v1.0.0-pre.1)
-
-**Closed issues:**
-
-- How configure local strategy to feathers-authentication? [\#36](https://github.com/feathersjs/authentication-local/issues/36)
-- An in-range update of feathers is breaking the build 🚨 [\#32](https://github.com/feathersjs/authentication-local/issues/32)
-
-**Merged pull requests:**
-
-- Update to Feathers v3 [\#39](https://github.com/feathersjs/authentication-local/pull/39) ([daffl](https://github.com/daffl))
-- Rename repository and use npm scope [\#38](https://github.com/feathersjs/authentication-local/pull/38) ([daffl](https://github.com/daffl))
-- Update to new plugin infrastructure [\#37](https://github.com/feathersjs/authentication-local/pull/37) ([daffl](https://github.com/daffl))
-- Update mocha to the latest version 🚀 [\#35](https://github.com/feathersjs/authentication-local/pull/35) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update sinon to the latest version 🚀 [\#34](https://github.com/feathersjs/authentication-local/pull/34) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Add babel-polyfill and package-lock.json [\#33](https://github.com/feathersjs/authentication-local/pull/33) ([daffl](https://github.com/daffl))
-- Update sinon to the latest version 🚀 [\#29](https://github.com/feathersjs/authentication-local/pull/29) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v0.4.4](https://github.com/feathersjs/authentication-local/tree/v0.4.4) (2017-08-11)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v0.4.3...v0.4.4)
-
-**Closed issues:**
-
-- i18n support [\#28](https://github.com/feathersjs/authentication-local/issues/28)
-- Couldn't store jwt token in cookies [\#17](https://github.com/feathersjs/authentication-local/issues/17)
-- Strategy for subapp [\#9](https://github.com/feathersjs/authentication-local/issues/9)
-
-**Merged pull requests:**
-
-- Update debug to the latest version 🚀 [\#31](https://github.com/feathersjs/authentication-local/pull/31) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Increase bcrypt cost factor, add future cost factor auto-optimization [\#30](https://github.com/feathersjs/authentication-local/pull/30) ([micaksica2](https://github.com/micaksica2))
-
-## [v0.4.3](https://github.com/feathersjs/authentication-local/tree/v0.4.3) (2017-06-22)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v0.4.2...v0.4.3)
-
-**Closed issues:**
-
-- Log a warning if service.id is undefined or null [\#19](https://github.com/feathersjs/authentication-local/issues/19)
-
-**Merged pull requests:**
-
-- throw error if service.id is missing [\#27](https://github.com/feathersjs/authentication-local/pull/27) ([marshallswain](https://github.com/marshallswain))
-
-## [v0.4.2](https://github.com/feathersjs/authentication-local/tree/v0.4.2) (2017-06-22)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v0.4.1...v0.4.2)
-
-## [v0.4.1](https://github.com/feathersjs/authentication-local/tree/v0.4.1) (2017-06-22)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v0.4.0...v0.4.1)
-
-**Merged pull requests:**
-
-- Resolves \#14 - Passes Feathers params to service hooks [\#15](https://github.com/feathersjs/authentication-local/pull/15) ([thomas-p-wilson](https://github.com/thomas-p-wilson))
-
-## [v0.4.0](https://github.com/feathersjs/authentication-local/tree/v0.4.0) (2017-06-22)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v0.3.4...v0.4.0)
-
-**Closed issues:**
-
-- Module is using the wrong default config key [\#21](https://github.com/feathersjs/authentication-local/issues/21)
-- Feathers params not available to user service hooks [\#14](https://github.com/feathersjs/authentication-local/issues/14)
-- Bad error message is returned for invalid credentials [\#10](https://github.com/feathersjs/authentication-local/issues/10)
-
-**Merged pull requests:**
-
-- Greenkeeper/chai 4.0.2 [\#26](https://github.com/feathersjs/authentication-local/pull/26) ([daffl](https://github.com/daffl))
-- Return Invalid login message when user doesn’t exist [\#25](https://github.com/feathersjs/authentication-local/pull/25) ([marshallswain](https://github.com/marshallswain))
-- Adding separate entity username and password fields [\#23](https://github.com/feathersjs/authentication-local/pull/23) ([adamvr](https://github.com/adamvr))
-- use the correct default config key. Closes \#21 [\#22](https://github.com/feathersjs/authentication-local/pull/22) ([ekryski](https://github.com/ekryski))
-- Update feathers-socketio to the latest version 🚀 [\#20](https://github.com/feathersjs/authentication-local/pull/20) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update semistandard to the latest version 🚀 [\#18](https://github.com/feathersjs/authentication-local/pull/18) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update feathers-hooks to the latest version 🚀 [\#16](https://github.com/feathersjs/authentication-local/pull/16) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update dependencies to enable Greenkeeper 🌴 [\#13](https://github.com/feathersjs/authentication-local/pull/13) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v0.3.4](https://github.com/feathersjs/authentication-local/tree/v0.3.4) (2017-03-28)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v0.3.3...v0.3.4)
-
-**Closed issues:**
-
-- Shouldn't it be `authentication` instead of the old `auth` there? [\#11](https://github.com/feathersjs/authentication-local/issues/11)
-
-**Merged pull requests:**
-
-- Fix default authentication config name [\#12](https://github.com/feathersjs/authentication-local/pull/12) ([marshallswain](https://github.com/marshallswain))
-
-## [v0.3.3](https://github.com/feathersjs/authentication-local/tree/v0.3.3) (2017-01-27)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v0.3.2...v0.3.3)
-
-**Closed issues:**
-
-- Support dot notation [\#7](https://github.com/feathersjs/authentication-local/issues/7)
-- Automatically register the authenticate hook with 'local' [\#4](https://github.com/feathersjs/authentication-local/issues/4)
-
-**Merged pull requests:**
-
-- Add support for dot notation, fix some whitespace [\#8](https://github.com/feathersjs/authentication-local/pull/8) ([elfey](https://github.com/elfey))
-
-## [v0.3.2](https://github.com/feathersjs/authentication-local/tree/v0.3.2) (2016-12-14)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v0.3.1...v0.3.2)
-
-## [v0.3.1](https://github.com/feathersjs/authentication-local/tree/v0.3.1) (2016-12-14)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v0.3.0...v0.3.1)
-
-**Closed issues:**
-
-- Add docs section on expected request params. [\#5](https://github.com/feathersjs/authentication-local/issues/5)
-
-**Merged pull requests:**
-
-- Document expected request data [\#6](https://github.com/feathersjs/authentication-local/pull/6) ([marshallswain](https://github.com/marshallswain))
-
-## [v0.3.0](https://github.com/feathersjs/authentication-local/tree/v0.3.0) (2016-11-23)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v0.2.0...v0.3.0)
-
-**Closed issues:**
-
-- Doesn't pull configuration from `auth.local` by default [\#2](https://github.com/feathersjs/authentication-local/issues/2)
-- Does not pull from global auth config when strategy has a custom name [\#1](https://github.com/feathersjs/authentication-local/issues/1)
-
-**Merged pull requests:**
-
-- Payload support [\#3](https://github.com/feathersjs/authentication-local/pull/3) ([ekryski](https://github.com/ekryski))
-
-## [v0.2.0](https://github.com/feathersjs/authentication-local/tree/v0.2.0) (2016-11-16)
-
-[Full Changelog](https://github.com/feathersjs/authentication-local/compare/v0.1.0...v0.2.0)
-
-## [v0.1.0](https://github.com/feathersjs/authentication-local/tree/v0.1.0) (2016-11-09)
-
-\* _This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)_
diff --git a/packages/authentication-local/LICENSE b/packages/authentication-local/LICENSE
deleted file mode 100644
index 7712f870f3..0000000000
--- a/packages/authentication-local/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2024 Feathers Contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
diff --git a/packages/authentication-local/README.md b/packages/authentication-local/README.md
deleted file mode 100644
index 9215940bd5..0000000000
--- a/packages/authentication-local/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# @feathersjs/authentication-local
-
-[](https://github.com/feathersjs/feathers/actions?query=workflow%3ACI)
-[](https://www.npmjs.com/package/@feathersjs/authentication-local)
-[](https://discord.gg/qa8kez8QBx)
-
-> Local username and password authentication strategy for Feathers authentication
-
-## Installation
-
-```
-npm install @feathersjs/authentication-local --save
-```
-
-## Documentation
-
-Refer to the [Feathers local authentication API documentation](https://feathersjs.com/api/authentication/local.html) for more details.
-
-## License
-
-Copyright (c) 2024 [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
-
-Licensed under the [MIT license](LICENSE).
diff --git a/packages/authentication-local/package.json b/packages/authentication-local/package.json
deleted file mode 100644
index 5ca85281a3..0000000000
--- a/packages/authentication-local/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "name": "@feathersjs/authentication-local",
- "description": "Local authentication strategy for @feathers/authentication",
- "version": "5.0.34",
- "homepage": "https://feathersjs.com",
- "main": "lib/",
- "types": "lib/",
- "keywords": [
- "feathers",
- "feathers-plugin"
- ],
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/feathersjs/feathers.git",
- "directory": "packages/authentication-local"
- },
- "author": {
- "name": "Feathers contributors",
- "email": "hello@feathersjs.com",
- "url": "https://feathersjs.com"
- },
- "contributors": [],
- "bugs": {
- "url": "https://github.com/feathersjs/feathers/issues"
- },
- "engines": {
- "node": ">= 12"
- },
- "files": [
- "CHANGELOG.md",
- "LICENSE",
- "README.md",
- "src/**",
- "lib/**",
- "*.d.ts",
- "*.js"
- ],
- "scripts": {
- "prepublish": "npm run compile",
- "pack": "npm pack --pack-destination ../generators/test/build",
- "compile": "shx rm -rf lib/ && tsc && npm run pack",
- "test": "mocha --config ../../.mocharc.json --recursive test/**.test.ts test/**/*.test.ts"
- },
- "directories": {
- "lib": "lib"
- },
- "publishConfig": {
- "access": "public"
- },
- "dependencies": {
- "@feathersjs/authentication": "^5.0.34",
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "bcryptjs": "^3.0.2",
- "lodash": "^4.17.21"
- },
- "devDependencies": {
- "@feathersjs/memory": "^5.0.34",
- "@feathersjs/schema": "^5.0.34",
- "@types/bcryptjs": "^2.4.6",
- "@types/lodash": "^4.17.20",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "gitHead": "90caf635aec850550b9d37bea2762af959d9e8d5"
-}
diff --git a/packages/authentication-local/src/hooks/hash-password.ts b/packages/authentication-local/src/hooks/hash-password.ts
deleted file mode 100644
index 5a949bb856..0000000000
--- a/packages/authentication-local/src/hooks/hash-password.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import get from 'lodash/get'
-import set from 'lodash/set'
-import cloneDeep from 'lodash/cloneDeep'
-import { BadRequest } from '@feathersjs/errors'
-import { createDebug } from '@feathersjs/commons'
-import { HookContext, NextFunction } from '@feathersjs/feathers'
-import { LocalStrategy } from '../strategy'
-
-const debug = createDebug('@feathersjs/authentication-local/hooks/hash-password')
-
-export interface HashPasswordOptions {
- authentication?: string
- strategy?: string
-}
-
-/**
- * @deprecated Use Feathers schema resolvers and the `passwordHash` resolver instead
- * @param field
- * @param options
- * @returns
- * @see https://dove.feathersjs.com/api/authentication/local.html#passwordhash
- */
-export default function hashPassword(field: string, options: HashPasswordOptions = {}) {
- if (!field) {
- throw new Error('The hashPassword hook requires a field name option')
- }
-
- return async (context: HookContext, next?: NextFunction) => {
- const { app, data, params } = context
-
- if (data !== undefined) {
- const authService = app.defaultAuthentication(options.authentication)
- const { strategy = 'local' } = options
-
- if (!authService || typeof authService.getStrategies !== 'function') {
- throw new BadRequest('Could not find an authentication service to hash password')
- }
-
- const [localStrategy] = authService.getStrategies(strategy) as LocalStrategy[]
-
- if (!localStrategy || typeof localStrategy.hashPassword !== 'function') {
- throw new BadRequest(`Could not find '${strategy}' strategy to hash password`)
- }
-
- const addHashedPassword = async (data: any) => {
- const password = get(data, field)
-
- if (password === undefined) {
- debug(`hook.data.${field} is undefined, not hashing password`)
- return data
- }
-
- const hashedPassword: string = await localStrategy.hashPassword(password, params)
-
- return set(cloneDeep(data), field, hashedPassword)
- }
-
- context.data = Array.isArray(data)
- ? await Promise.all(data.map(addHashedPassword))
- : await addHashedPassword(data)
- }
-
- if (typeof next === 'function') {
- return next()
- }
- }
-}
diff --git a/packages/authentication-local/src/hooks/protect.ts b/packages/authentication-local/src/hooks/protect.ts
deleted file mode 100644
index eb1657e942..0000000000
--- a/packages/authentication-local/src/hooks/protect.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-import omit from 'lodash/omit'
-import { HookContext, NextFunction } from '@feathersjs/feathers'
-
-/**
- * @deprecated For reliable safe data representations use Feathers schema dispatch resolvers.
- * @see https://dove.feathersjs.comapi/authentication/local.html#protecting-fields
- */
-export default (...fields: string[]) => {
- const o = (current: any) => {
- if (typeof current === 'object' && !Array.isArray(current)) {
- const data = typeof current.toJSON === 'function' ? current.toJSON() : current
-
- return omit(data, fields)
- }
-
- return current
- }
-
- return async (context: HookContext, next?: NextFunction) => {
- if (typeof next === 'function') {
- await next()
- }
-
- const result = context.dispatch || context.result
-
- if (result) {
- if (Array.isArray(result)) {
- context.dispatch = result.map(o)
- } else if (result.data && context.method === 'find') {
- context.dispatch = Object.assign({}, result, {
- data: result.data.map(o)
- })
- } else {
- context.dispatch = o(result)
- }
-
- if (context.params && context.params.provider) {
- context.result = context.dispatch
- }
- }
- }
-}
diff --git a/packages/authentication-local/src/index.ts b/packages/authentication-local/src/index.ts
deleted file mode 100644
index 5e9b827e73..0000000000
--- a/packages/authentication-local/src/index.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { HookContext } from '@feathersjs/feathers'
-import hashPassword from './hooks/hash-password'
-import protect from './hooks/protect'
-import { LocalStrategy } from './strategy'
-
-export const hooks = { hashPassword, protect }
-export { LocalStrategy }
-
-/**
- * Returns as property resolver that hashes a given plain text password using a Local
- * authentication strategy.
- *
- * @param options The authentication `service` and `strategy` name
- * @returns
- */
-export const passwordHash =
- (options: { service?: string; strategy: string }) =>
- async >(value: string | undefined, _data: any, context: H) => {
- if (value === undefined) {
- return value
- }
-
- const { app, params } = context
- const authService = app.defaultAuthentication(options.service)
- const localStrategy = authService.getStrategy(options.strategy) as LocalStrategy
-
- return localStrategy.hashPassword(value, params)
- }
diff --git a/packages/authentication-local/src/strategy.ts b/packages/authentication-local/src/strategy.ts
deleted file mode 100644
index 86129792b2..0000000000
--- a/packages/authentication-local/src/strategy.ts
+++ /dev/null
@@ -1,142 +0,0 @@
-/* eslint-disable @typescript-eslint/no-unused-vars */
-import bcrypt from 'bcryptjs'
-import get from 'lodash/get'
-import { NotAuthenticated } from '@feathersjs/errors'
-import { Query, Params } from '@feathersjs/feathers'
-import { AuthenticationRequest, AuthenticationBaseStrategy } from '@feathersjs/authentication'
-import { createDebug } from '@feathersjs/commons'
-
-const debug = createDebug('@feathersjs/authentication-local/strategy')
-
-export class LocalStrategy extends AuthenticationBaseStrategy {
- verifyConfiguration() {
- const config = this.configuration
-
- ;['usernameField', 'passwordField'].forEach((prop) => {
- if (typeof config[prop] !== 'string') {
- throw new Error(`'${this.name}' authentication strategy requires a '${prop}' setting`)
- }
- })
- }
-
- get configuration() {
- const authConfig = this.authentication.configuration
- const config = super.configuration || {}
-
- return {
- hashSize: 10,
- service: authConfig.service,
- entity: authConfig.entity,
- entityId: authConfig.entityId,
- errorMessage: 'Invalid login',
- entityPasswordField: config.passwordField,
- entityUsernameField: config.usernameField,
- ...config
- }
- }
-
- async getEntityQuery(query: Query, _params: Params) {
- return {
- $limit: 1,
- ...query
- }
- }
-
- async findEntity(username: string, params: Params) {
- const { entityUsernameField, errorMessage } = this.configuration
- if (!username) {
- // don't query for users without any condition set.
- throw new NotAuthenticated(errorMessage)
- }
-
- const query = await this.getEntityQuery(
- {
- [entityUsernameField]: username
- },
- params
- )
-
- const findParams = Object.assign({}, params, { query })
- const entityService = this.entityService
-
- debug('Finding entity with query', params.query)
-
- const result = await entityService.find(findParams)
- const list = Array.isArray(result) ? result : result.data
-
- if (!Array.isArray(list) || list.length === 0) {
- debug('No entity found')
-
- throw new NotAuthenticated(errorMessage)
- }
-
- const [entity] = list
-
- return entity
- }
-
- async getEntity(result: any, params: Params) {
- const entityService = this.entityService
- const { entityId = (entityService as any).id, entity } = this.configuration
-
- if (!entityId || result[entityId] === undefined) {
- throw new NotAuthenticated('Could not get local entity')
- }
-
- if (!params.provider) {
- return result
- }
-
- return entityService.get(result[entityId], {
- ...params,
- [entity]: result
- })
- }
-
- async comparePassword(entity: any, password: string) {
- const { entityPasswordField, errorMessage } = this.configuration
- // find password in entity, this allows for dot notation
- const hash = get(entity, entityPasswordField)
-
- if (!hash) {
- debug(`Record is missing the '${entityPasswordField}' password field`)
-
- throw new NotAuthenticated(errorMessage)
- }
-
- debug('Verifying password')
-
- const result = await bcrypt.compare(password, hash)
-
- if (result) {
- return entity
- }
-
- throw new NotAuthenticated(errorMessage)
- }
-
- async hashPassword(password: string, _params: Params) {
- return bcrypt.hash(password, this.configuration.hashSize)
- }
-
- async authenticate(data: AuthenticationRequest, params: Params) {
- const { passwordField, usernameField, entity, errorMessage } = this.configuration
- const username = get(data, usernameField)
- const password = get(data, passwordField)
-
- if (!password) {
- // exit early if there is no password
- throw new NotAuthenticated(errorMessage)
- }
-
- const { provider, ...paramsWithoutProvider } = params
-
- const result = await this.findEntity(username, paramsWithoutProvider)
- await this.comparePassword(result, password)
-
- return {
- authentication: { strategy: this.name },
- [entity]: await this.getEntity(result, params)
- }
- }
-}
diff --git a/packages/authentication-local/test/fixture.ts b/packages/authentication-local/test/fixture.ts
deleted file mode 100644
index 32be7b476b..0000000000
--- a/packages/authentication-local/test/fixture.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-import { feathers } from '@feathersjs/feathers'
-import { memory, MemoryService } from '@feathersjs/memory'
-import { AuthenticationService, JWTStrategy } from '@feathersjs/authentication'
-
-import { LocalStrategy, hooks } from '../src'
-const { hashPassword, protect } = hooks
-
-export type ServiceTypes = {
- authentication: AuthenticationService
- users: MemoryService
-}
-
-export function createApplication(
- app = feathers(),
- authOptionOverrides: Record = {}
-) {
- const authentication = new AuthenticationService(app)
-
- const authConfig = {
- entity: 'user',
- service: 'users',
- secret: 'supersecret',
- authStrategies: ['local', 'jwt'],
- parseStrategies: ['jwt'],
- local: {
- usernameField: 'email',
- passwordField: 'password'
- },
- ...authOptionOverrides
- }
- app.set('authentication', authConfig)
-
- authentication.register('jwt', new JWTStrategy())
- authentication.register('local', new LocalStrategy())
-
- app.use('authentication', authentication)
- app.use(
- 'users',
- memory({
- multi: ['create'],
- paginate: {
- default: 10,
- max: 20
- }
- })
- )
-
- app.service('users').hooks([protect(authConfig.local.passwordField)])
- app.service('users').hooks({
- create: [hashPassword(authConfig.local.passwordField)],
- get: [
- async (context, next) => {
- await next()
-
- if (context.params.provider) {
- context.result.fromGet = true
- }
- }
- ]
- })
-
- return app
-}
diff --git a/packages/authentication-local/test/hooks/hash-password.test.ts b/packages/authentication-local/test/hooks/hash-password.test.ts
deleted file mode 100644
index fb45bc928e..0000000000
--- a/packages/authentication-local/test/hooks/hash-password.test.ts
+++ /dev/null
@@ -1,91 +0,0 @@
-/* eslint-disable @typescript-eslint/ban-ts-comment */
-import assert from 'assert'
-import { Application } from '@feathersjs/feathers'
-
-import { hooks } from '../../src'
-import { createApplication, ServiceTypes } from '../fixture'
-
-const { hashPassword } = hooks
-
-describe('@feathersjs/authentication-local/hooks/hash-password', () => {
- let app: Application
-
- beforeEach(() => {
- app = createApplication()
- })
-
- it('throws error when no field provided', () => {
- try {
- // @ts-ignore
- hashPassword()
- assert.fail('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.message, 'The hashPassword hook requires a field name option')
- }
- })
-
- it('errors when authentication service does not exist', async () => {
- delete app.services.authentication
-
- try {
- await app.service('users').create({
- email: 'dave@hashpassword.com',
- password: 'supersecret'
- })
- assert.fail('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.message, 'Could not find an authentication service to hash password')
- }
- })
-
- it('errors when authentication strategy does not exist', async () => {
- delete app.services.authentication.strategies.local
-
- try {
- await app.service('users').create({
- email: 'dave@hashpassword.com',
- password: 'supersecret'
- })
- assert.fail('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.message, "Could not find 'local' strategy to hash password")
- }
- })
-
- it('hashes password on field', async () => {
- const password = 'supersecret'
-
- const user = await app.service('users').create({
- email: 'dave@hashpassword.com',
- password
- })
-
- assert.notStrictEqual(user.password, password)
- })
-
- it('hashes password on array data', async () => {
- const password = 'supersecret'
-
- const users = await app.service('users').create([
- {
- email: 'dave@hashpassword.com',
- password
- },
- {
- email: 'dave2@hashpassword.com',
- password: 'secret2'
- }
- ])
-
- assert.notStrictEqual(users[0].password, password)
- assert.notStrictEqual(users[1].password, 'secret2')
- })
-
- it('does nothing when field is not present', async () => {
- const user = await app.service('users').create({
- email: 'dave@hashpassword.com'
- })
-
- assert.strictEqual(user.password, undefined)
- })
-})
diff --git a/packages/authentication-local/test/hooks/protect.test.ts b/packages/authentication-local/test/hooks/protect.test.ts
deleted file mode 100644
index 20e1320c3d..0000000000
--- a/packages/authentication-local/test/hooks/protect.test.ts
+++ /dev/null
@@ -1,183 +0,0 @@
-import assert from 'assert'
-import { HookContext } from '@feathersjs/feathers'
-import { hooks } from '../../src'
-
-const { protect } = hooks
-
-function testOmit(title: string, property: string) {
- describe(title, () => {
- const fn = protect('password')
-
- it('omits from object', async () => {
- const data = {
- email: 'test@user.com',
- password: 'supersecret'
- }
- const context = {
- [property]: data
- } as unknown as HookContext
-
- await fn(context)
-
- assert.deepStrictEqual(context, {
- [property]: data,
- dispatch: { email: 'test@user.com' }
- })
- })
-
- it('omits from nested object', async () => {
- const hook = protect('user.password')
- const data = {
- user: {
- email: 'test@user.com',
- password: 'supersecret'
- }
- }
- const context = {
- [property]: data
- } as unknown as HookContext
-
- await hook(context)
-
- assert.deepStrictEqual(context, {
- [property]: data,
- dispatch: { user: { email: 'test@user.com' } }
- })
- })
-
- it('handles `data` property only for find', async () => {
- const data = {
- email: 'test@user.com',
- password: 'supersecret',
- data: 'yes'
- }
- const context = {
- [property]: data
- } as unknown as HookContext
-
- await fn(context)
-
- assert.deepStrictEqual(context, {
- [property]: data,
- dispatch: { email: 'test@user.com', data: 'yes' }
- })
- })
-
- it('uses .toJSON (#48)', async () => {
- class MyUser {
- toJSON() {
- return {
- email: 'test@user.com',
- password: 'supersecret'
- }
- }
- }
-
- const data = new MyUser()
- const context = {
- [property]: data
- } as unknown as HookContext
-
- await fn(context)
-
- assert.deepStrictEqual(context, {
- [property]: data,
- dispatch: { email: 'test@user.com' }
- })
- })
-
- it('omits from array but only objects (#2053)', async () => {
- const data = [
- {
- email: 'test1@user.com',
- password: 'supersecret'
- },
- {
- email: 'test2@user.com',
- password: 'othersecret'
- },
- ['one', 'two', 'three'],
- 'test'
- ]
- const context = {
- [property]: data
- } as unknown as HookContext
-
- await fn(context)
-
- assert.deepStrictEqual(context, {
- [property]: data,
- dispatch: [{ email: 'test1@user.com' }, { email: 'test2@user.com' }, ['one', 'two', 'three'], 'test']
- })
- })
-
- it('omits from pagination object', async () => {
- const data = {
- total: 2,
- data: [
- {
- email: 'test1@user.com',
- password: 'supersecret'
- },
- {
- email: 'test2@user.com',
- password: 'othersecret'
- }
- ]
- }
- const context = {
- method: 'find',
- [property]: data
- } as unknown as HookContext
-
- await fn(context)
-
- assert.deepStrictEqual(context, {
- method: 'find',
- [property]: data,
- dispatch: {
- total: 2,
- data: [{ email: 'test1@user.com' }, { email: 'test2@user.com' }]
- }
- })
- })
-
- it('updates result if params.provider is set', async () => {
- const data = [
- {
- email: 'test1@user.com',
- password: 'supersecret'
- },
- {
- email: 'test2@user.com',
- password: 'othersecret'
- }
- ]
- const params = { provider: 'test' }
- const context = {
- [property]: data,
- params
- } as unknown as HookContext
-
- await fn(context)
-
- assert.deepStrictEqual(context, {
- [property]: data,
- params,
- result: [{ email: 'test1@user.com' }, { email: 'test2@user.com' }],
- dispatch: [{ email: 'test1@user.com' }, { email: 'test2@user.com' }]
- })
- })
- })
-}
-
-describe('@feathersjs/authentication-local/hooks/protect', () => {
- it('does nothing when called with no result', async () => {
- const fn = protect()
-
- assert.deepStrictEqual(await fn({} as any), undefined)
- })
-
- testOmit('with hook.result', 'result')
- testOmit('with hook.dispatch already set', 'dispatch')
-})
diff --git a/packages/authentication-local/test/strategy.test.ts b/packages/authentication-local/test/strategy.test.ts
deleted file mode 100644
index a8fca0fe16..0000000000
--- a/packages/authentication-local/test/strategy.test.ts
+++ /dev/null
@@ -1,224 +0,0 @@
-import assert from 'assert'
-import omit from 'lodash/omit'
-import { Application, HookContext } from '@feathersjs/feathers'
-import { resolve } from '@feathersjs/schema'
-
-import { LocalStrategy, passwordHash } from '../src'
-import { createApplication, ServiceTypes } from './fixture'
-
-describe('@feathersjs/authentication-local/strategy', () => {
- const password = 'localsecret'
- const email = 'localtester@feathersjs.com'
-
- let app: Application
- let user: any
-
- beforeEach(async () => {
- app = createApplication()
- user = await app.service('users').create({ email, password })
- })
-
- it('throw error when configuration is not set', () => {
- const auth = app.service('authentication')
-
- try {
- auth.register('something', new LocalStrategy())
- assert.fail('Should never get here')
- } catch (error: any) {
- assert.strictEqual(
- error.message,
- "'something' authentication strategy requires a 'usernameField' setting"
- )
- }
- })
-
- it('fails when entity not found', async () => {
- const authService = app.service('authentication')
-
- try {
- await authService.create({
- strategy: 'local',
- email: 'not in database',
- password
- })
- assert.fail('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotAuthenticated')
- assert.strictEqual(error.message, 'Invalid login')
- }
- })
-
- it('getEntity', async () => {
- const [strategy] = app.service('authentication').getStrategies('local') as [LocalStrategy]
- let entity = await strategy.getEntity(user, {})
-
- assert.deepStrictEqual(entity, user)
-
- entity = await strategy.getEntity(user, {
- provider: 'testing'
- })
-
- assert.deepStrictEqual(entity, {
- ...omit(user, 'password'),
- fromGet: true
- })
-
- try {
- await strategy.getEntity({}, {})
- assert.fail('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.message, 'Could not get local entity')
- }
- })
-
- it('strategy fails when strategy is different', async () => {
- const [local] = app.service('authentication').getStrategies('local')
-
- await assert.rejects(
- () =>
- local.authenticate(
- {
- strategy: 'not-me',
- password: 'dummy',
- email
- },
- {}
- ),
- {
- name: 'NotAuthenticated',
- message: 'Invalid login'
- }
- )
- })
-
- it('fails when password is wrong', async () => {
- const authService = app.service('authentication')
- try {
- await authService.create({
- strategy: 'local',
- email,
- password: 'dummy'
- })
- assert.fail('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotAuthenticated')
- assert.strictEqual(error.message, 'Invalid login')
- }
- })
-
- it('fails when password is not provided', async () => {
- const authService = app.service('authentication')
- try {
- await authService.create({
- strategy: 'local',
- email
- })
- assert.fail('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotAuthenticated')
- assert.strictEqual(error.message, 'Invalid login')
- }
- })
-
- it('fails when password field is not available', async () => {
- const userEmail = 'someuser@localtest.com'
- const authService = app.service('authentication')
-
- try {
- await app.service('users').create({
- email: userEmail
- })
- await authService.create({
- strategy: 'local',
- password: 'dummy',
- email: userEmail
- })
- assert.fail('Should never get here')
- } catch (error: any) {
- assert.strictEqual(error.name, 'NotAuthenticated')
- assert.strictEqual(error.message, 'Invalid login')
- }
- })
-
- it('authenticates an existing user', async () => {
- const authService = app.service('authentication')
- const authResult = await authService.create({
- strategy: 'local',
- email,
- password
- })
- const { accessToken } = authResult
-
- assert.ok(accessToken)
- assert.strictEqual(authResult.user.email, email)
-
- const decoded = await authService.verifyAccessToken(accessToken)
-
- assert.strictEqual(decoded.sub, `${user.id}`)
- })
-
- it('returns safe result when params.provider is set, works without pagination', async () => {
- const authService = app.service('authentication')
- const authResult = await authService.create(
- {
- strategy: 'local',
- email,
- password
- },
- {
- provider: 'rest',
- paginate: false
- }
- )
- const { accessToken } = authResult
-
- assert.ok(accessToken)
- assert.strictEqual(authResult.user.email, email)
- assert.strictEqual(authResult.user.password, undefined)
- assert.ok(authResult.user.fromGet)
-
- const decoded = await authService.verifyAccessToken(accessToken)
-
- assert.strictEqual(decoded.sub, `${user.id}`)
- })
-
- it('passwordHash property resolver', async () => {
- const userResolver = resolve<{ password: string }, HookContext>({
- properties: {
- password: passwordHash({
- strategy: 'local'
- })
- }
- })
-
- const resolvedData = await userResolver.resolve({ password: 'supersecret' }, { app } as HookContext)
-
- assert.notStrictEqual(resolvedData.password, 'supersecret')
- })
- it('should allow for nested values in the usernameField', async () => {
- const appWithNestedFieldOverride = createApplication(undefined, {
- local: {
- usernameField: 'auth.email',
- passwordField: 'auth.password'
- }
- })
- const nestedUser = await appWithNestedFieldOverride.service('users').create({ auth: { email, password } })
- const authService = appWithNestedFieldOverride.service('authentication')
- const authResult = await authService.create({
- strategy: 'local',
- auth: {
- email,
- password
- }
- })
- const { accessToken } = authResult
-
- assert.ok(accessToken)
- assert.strictEqual(authResult.user.auth.email, email)
-
- const decoded = await authService.verifyAccessToken(accessToken)
-
- assert.strictEqual(decoded.sub, `${nestedUser.id}`)
- //
- })
-})
diff --git a/packages/authentication-local/tsconfig.json b/packages/authentication-local/tsconfig.json
deleted file mode 100644
index 316fd41336..0000000000
--- a/packages/authentication-local/tsconfig.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "extends": "../../tsconfig",
- "include": [
- "src/**/*.ts"
- ],
- "compilerOptions": {
- "outDir": "lib"
- }
-}
diff --git a/packages/authentication-oauth/CHANGELOG.md b/packages/authentication-oauth/CHANGELOG.md
deleted file mode 100644
index d9bded45fe..0000000000
--- a/packages/authentication-oauth/CHANGELOG.md
+++ /dev/null
@@ -1,577 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file.
-See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-
-## [5.0.34](https://github.com/feathersjs/feathers/compare/v5.0.33...v5.0.34) (2025-05-03)
-
-### Bug Fixes
-
-- Update dependencies ([#3584](https://github.com/feathersjs/feathers/issues/3584)) ([119fa4e](https://github.com/feathersjs/feathers/commit/119fa4e1ade8b0078aa235083d566e2538b3a084))
-
-## [5.0.33](https://github.com/feathersjs/feathers/compare/v5.0.32...v5.0.33) (2025-02-24)
-
-### Bug Fixes
-
-- **dependencies:** Update dependencies ([#3571](https://github.com/feathersjs/feathers/issues/3571)) ([ad611cb](https://github.com/feathersjs/feathers/commit/ad611cb6ffb1dc31d603ba5817331318c5a23217))
-
-## [5.0.32](https://github.com/feathersjs/feathers/compare/v5.0.31...v5.0.32) (2025-02-01)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.31](https://github.com/feathersjs/feathers/compare/v5.0.30...v5.0.31) (2024-10-31)
-
-### Bug Fixes
-
-- **dependencies:** Update all dependencies ([#3545](https://github.com/feathersjs/feathers/issues/3545)) ([221b92b](https://github.com/feathersjs/feathers/commit/221b92bb0ee5d54fb1036742968797cb02e56da2))
-
-## [5.0.30](https://github.com/feathersjs/feathers/compare/v5.0.29...v5.0.30) (2024-09-02)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.29](https://github.com/feathersjs/feathers/compare/v5.0.28...v5.0.29) (2024-07-10)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.28](https://github.com/feathersjs/feathers/compare/v5.0.27...v5.0.28) (2024-07-10)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.27](https://github.com/feathersjs/feathers/compare/v5.0.26...v5.0.27) (2024-06-18)
-
-### Bug Fixes
-
-- **authentication-oauth:** Allow POST oauth callbacks ([#3497](https://github.com/feathersjs/feathers/issues/3497)) ([ffcc90b](https://github.com/feathersjs/feathers/commit/ffcc90bb95329cbb4b8f310e37024d417c216d8c))
-
-## [5.0.26](https://github.com/feathersjs/feathers/compare/v5.0.25...v5.0.26) (2024-06-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.25](https://github.com/feathersjs/feathers/compare/v5.0.24...v5.0.25) (2024-05-03)
-
-### Bug Fixes
-
-- **oauth:** Export OAuthService type ([#3479](https://github.com/feathersjs/feathers/issues/3479)) ([e7185cd](https://github.com/feathersjs/feathers/commit/e7185cde63990a0d24a7180c63b61dbc8ef6cd5b))
-- Reduce usage of lodash ([#3455](https://github.com/feathersjs/feathers/issues/3455)) ([8ce807a](https://github.com/feathersjs/feathers/commit/8ce807a5ca53ff5b8d5107a0656c6329404e6e6c))
-
-## [5.0.24](https://github.com/feathersjs/feathers/compare/v5.0.23...v5.0.24) (2024-03-13)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.23](https://github.com/feathersjs/feathers/compare/v5.0.22...v5.0.23) (2024-02-25)
-
-### Bug Fixes
-
-- **core:** Update to latest feathersjs/hooks ([#3434](https://github.com/feathersjs/feathers/issues/3434)) ([1499ccc](https://github.com/feathersjs/feathers/commit/1499ccc41fb3ebba97b2c84e0cb19bc48ad3c651))
-
-## [5.0.22](https://github.com/feathersjs/feathers/compare/v5.0.21...v5.0.22) (2024-02-15)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.21](https://github.com/feathersjs/feathers/compare/v5.0.20...v5.0.21) (2024-01-25)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.20](https://github.com/feathersjs/feathers/compare/v5.0.19...v5.0.20) (2024-01-24)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.19](https://github.com/feathersjs/feathers/compare/v5.0.18...v5.0.19) (2024-01-23)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.18](https://github.com/feathersjs/feathers/compare/v5.0.17...v5.0.18) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.17](https://github.com/feathersjs/feathers/compare/v5.0.16...v5.0.17) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.16](https://github.com/feathersjs/feathers/compare/v5.0.15...v5.0.16) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.15](https://github.com/feathersjs/feathers/compare/v5.0.14...v5.0.15) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.14](https://github.com/feathersjs/feathers/compare/v5.0.13...v5.0.14) (2024-01-05)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.13](https://github.com/feathersjs/feathers/compare/v5.0.12...v5.0.13) (2023-12-29)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.12](https://github.com/feathersjs/feathers/compare/v5.0.11...v5.0.12) (2023-11-28)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.11](https://github.com/feathersjs/feathers/compare/v5.0.10...v5.0.11) (2023-10-11)
-
-### Bug Fixes
-
-- **knex:** Update all dependencies and Knex peer ([#3308](https://github.com/feathersjs/feathers/issues/3308)) ([d2f9860](https://github.com/feathersjs/feathers/commit/d2f986036c4741cce2339d8abbcc6b2eb037a12a))
-
-## [5.0.10](https://github.com/feathersjs/feathers/compare/v5.0.9...v5.0.10) (2023-10-03)
-
-### Bug Fixes
-
-- **authentication-oauth:** Move Grant error handling to the correct spot ([#3297](https://github.com/feathersjs/feathers/issues/3297)) ([e9c0828](https://github.com/feathersjs/feathers/commit/e9c0828937453c3f0a1bd16010089b825185eab6))
-
-## [5.0.9](https://github.com/feathersjs/feathers/compare/v5.0.8...v5.0.9) (2023-09-27)
-
-### Bug Fixes
-
-- **authentication-oauth:** Properly handle all oAuth errors ([#3284](https://github.com/feathersjs/feathers/issues/3284)) ([148a9a3](https://github.com/feathersjs/feathers/commit/148a9a319b8e29138fda82d6c03bb489a7b4a6e1))
-
-## [5.0.8](https://github.com/feathersjs/feathers/compare/v5.0.7...v5.0.8) (2023-07-19)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.7](https://github.com/feathersjs/feathers/compare/v5.0.6...v5.0.7) (2023-07-14)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.6](https://github.com/feathersjs/feathers/compare/v5.0.5...v5.0.6) (2023-06-15)
-
-### Bug Fixes
-
-- **authentication-oauth:** Update OAuth redirect to handle user requested redirect paths ([#3186](https://github.com/feathersjs/feathers/issues/3186)) ([3742028](https://github.com/feathersjs/feathers/commit/37420283c17bb8129c6ffdde841ce2034109cc6b))
-
-## [5.0.5](https://github.com/feathersjs/feathers/compare/v5.0.4...v5.0.5) (2023-04-28)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [5.0.4](https://github.com/feathersjs/feathers/compare/v5.0.3...v5.0.4) (2023-04-12)
-
-### Bug Fixes
-
-- Make sure all Readme files are up to date ([#3154](https://github.com/feathersjs/feathers/issues/3154)) ([a5f0b38](https://github.com/feathersjs/feathers/commit/a5f0b38bbf2a11486415a39533bcc6c67fb51e3e))
-
-## [5.0.3](https://github.com/feathersjs/feathers/compare/v5.0.2...v5.0.3) (2023-04-05)
-
-### Bug Fixes
-
-- **dependencies:** Update all dependencies ([#3139](https://github.com/feathersjs/feathers/issues/3139)) ([f24276e](https://github.com/feathersjs/feathers/commit/f24276e9a909e2e58a0730c730258ce1f70f4028))
-
-## [5.0.1](https://github.com/feathersjs/feathers/compare/v5.0.0...v5.0.1) (2023-03-15)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.38...v5.0.0) (2023-02-24)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.38](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.37...v5.0.0-pre.38) (2023-02-17)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.37](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.36...v5.0.0-pre.37) (2023-02-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.36](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.35...v5.0.0-pre.36) (2023-01-29)
-
-### Bug Fixes
-
-- **authentication-oauth:** Use original headers in oauth flow ([#3025](https://github.com/feathersjs/feathers/issues/3025)) ([fb3d8cc](https://github.com/feathersjs/feathers/commit/fb3d8cca123d68a77b096bc92e49baa55424afe0))
-- Update all dependencies ([#3024](https://github.com/feathersjs/feathers/issues/3024)) ([283dc47](https://github.com/feathersjs/feathers/commit/283dc4798d85584bc031e6e54b83b4ea77d1edd0))
-
-# [5.0.0-pre.35](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.34...v5.0.0-pre.35) (2023-01-12)
-
-### Features
-
-- **generators:** Move core code generators to shared generators package ([#2982](https://github.com/feathersjs/feathers/issues/2982)) ([0328d22](https://github.com/feathersjs/feathers/commit/0328d2292153870bc43958f73d2c6f288a8cec17))
-
-# [5.0.0-pre.34](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.33...v5.0.0-pre.34) (2022-12-14)
-
-### Bug Fixes
-
-- **core:** Improve service option usage and method option typings ([#2902](https://github.com/feathersjs/feathers/issues/2902)) ([164d75c](https://github.com/feathersjs/feathers/commit/164d75c0f11139a316baa91f1762de8f8eb7da2d))
-
-# [5.0.0-pre.33](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.32...v5.0.0-pre.33) (2022-11-08)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.32](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.31...v5.0.0-pre.32) (2022-10-26)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.31](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.30...v5.0.0-pre.31) (2022-10-12)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.30](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.29...v5.0.0-pre.30) (2022-10-07)
-
-### Bug Fixes
-
-- **authentication-oauth:** Fix regression with prefix handling in OAuth ([#2773](https://github.com/feathersjs/feathers/issues/2773)) ([b1844b1](https://github.com/feathersjs/feathers/commit/b1844b1f27feeb7e66920ec9e318872857711834))
-
-### Features
-
-- **core:** Allow to unregister services at runtime ([#2756](https://github.com/feathersjs/feathers/issues/2756)) ([d16601f](https://github.com/feathersjs/feathers/commit/d16601f2277dca5357866ffdefba2a611f6dc7fa))
-
-# [5.0.0-pre.29](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.28...v5.0.0-pre.29) (2022-09-16)
-
-### Bug Fixes
-
-- **authentication-oauth:** Fix oAuth origin and error handling ([#2752](https://github.com/feathersjs/feathers/issues/2752)) ([f7e1c33](https://github.com/feathersjs/feathers/commit/f7e1c33de1b7af0672a302d2ba6e15d997f0aa83))
-
-### Features
-
-- Add CORS support to oAuth, Express, Koa and generated application ([#2744](https://github.com/feathersjs/feathers/issues/2744)) ([fd218f2](https://github.com/feathersjs/feathers/commit/fd218f289f8ca4c101e9938e8683e2efef6e8131))
-- **authentication-oauth:** Koa and transport independent oAuth authentication ([#2737](https://github.com/feathersjs/feathers/issues/2737)) ([9231525](https://github.com/feathersjs/feathers/commit/9231525a24bb790ba9c5d940f2867a9c727691c9))
-
-# [5.0.0-pre.28](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.27...v5.0.0-pre.28) (2022-08-03)
-
-### Bug Fixes
-
-- **cli:** Improve generated application and client ([#2701](https://github.com/feathersjs/feathers/issues/2701)) ([bd55ffb](https://github.com/feathersjs/feathers/commit/bd55ffb812e89bf215f4515e7f137656ea888c3f))
-
-# [5.0.0-pre.27](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.26...v5.0.0-pre.27) (2022-07-13)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.26](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.25...v5.0.0-pre.26) (2022-06-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.25](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.24...v5.0.0-pre.25) (2022-06-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.24](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.23...v5.0.0-pre.24) (2022-06-21)
-
-### Bug Fixes
-
-- **authentication-oauth:** Fix bug and properly set Grant defaults ([#2659](https://github.com/feathersjs/feathers/issues/2659)) ([cb93bb9](https://github.com/feathersjs/feathers/commit/cb93bb911fd92282424da2db805cd685b7e4a45b))
-
-### Features
-
-- **cli:** Add typed client to a generated app ([#2669](https://github.com/feathersjs/feathers/issues/2669)) ([5b801b5](https://github.com/feathersjs/feathers/commit/5b801b5017ddc3eaa95622b539f51d605916bc86))
-
-# [5.0.0-pre.23](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.22...v5.0.0-pre.23) (2022-06-06)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.22](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.21...v5.0.0-pre.22) (2022-05-24)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.21](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.20...v5.0.0-pre.21) (2022-05-23)
-
-### Bug Fixes
-
-- **authentication-oauth:** Fix regression using incorrect callback and redirect_uri ([#2631](https://github.com/feathersjs/feathers/issues/2631)) ([43d8a08](https://github.com/feathersjs/feathers/commit/43d8a082d7e1807f8a431c44a1dbd9b04c3af0d2))
-
-# [5.0.0-pre.20](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.19...v5.0.0-pre.20) (2022-05-04)
-
-### Bug Fixes
-
-- **authentication-oauth:** Don't send origins in Grant's config, as it will be considered another provider ([#2617](https://github.com/feathersjs/feathers/issues/2617)) ([ae3dddd](https://github.com/feathersjs/feathers/commit/ae3dddd8a654924465512d56b4651413912c6932))
-- **dependencies:** Lock monorepo package version numbers ([#2623](https://github.com/feathersjs/feathers/issues/2623)) ([5640c10](https://github.com/feathersjs/feathers/commit/5640c1020cc139994e695d658c08bad3494db507))
-
-# [5.0.0-pre.19](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.18...v5.0.0-pre.19) (2022-05-01)
-
-### Bug Fixes
-
-- **authentication-oauth:** Fix issue with overriding the default Grant configuration ([#2615](https://github.com/feathersjs/feathers/issues/2615)) ([b345857](https://github.com/feathersjs/feathers/commit/b3458578532f9750de2940aeb8afdc75cb0b46f2))
-- **authentication-oauth:** Make oAuth authentication work with cookie-session ([#2614](https://github.com/feathersjs/feathers/issues/2614)) ([9f10bfc](https://github.com/feathersjs/feathers/commit/9f10bfc75083d5bcabea77cfb385aa3965cdf6d6))
-
-### Features
-
-- **typescript:** Improve params and query typeability ([#2600](https://github.com/feathersjs/feathers/issues/2600)) ([df28b76](https://github.com/feathersjs/feathers/commit/df28b7619161f1df5e700326f52cca1a92dc5d28))
-
-# [5.0.0-pre.18](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.17...v5.0.0-pre.18) (2022-04-11)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.17](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.16...v5.0.0-pre.17) (2022-02-15)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.16](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.15...v5.0.0-pre.16) (2022-01-12)
-
-### Bug Fixes
-
-- **authentication-oauth:** OAuth redirect lost sometimes due to session store race ([#2514](https://github.com/feathersjs/feathers/issues/2514)) ([#2515](https://github.com/feathersjs/feathers/issues/2515)) ([6109c44](https://github.com/feathersjs/feathers/commit/6109c44428c6b8f6bb4e089be760ea1a4ef3d01e))
-
-# [5.0.0-pre.15](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.14...v5.0.0-pre.15) (2021-11-27)
-
-### Features
-
-- **authentication-oauth:** Allow dynamic oAuth redirect ([#2469](https://github.com/feathersjs/feathers/issues/2469)) ([b7143d4](https://github.com/feathersjs/feathers/commit/b7143d4c0fbe961e714f79512be04449b9bbd7d9))
-
-# [5.0.0-pre.14](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.13...v5.0.0-pre.14) (2021-10-13)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.13](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.12...v5.0.0-pre.13) (2021-10-13)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.12](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.11...v5.0.0-pre.12) (2021-10-12)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.11](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.10...v5.0.0-pre.11) (2021-10-06)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.10](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.9...v5.0.0-pre.10) (2021-09-19)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.9](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.8...v5.0.0-pre.9) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.8](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.7...v5.0.0-pre.8) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.7](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.6...v5.0.0-pre.7) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.6](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.5...v5.0.0-pre.6) (2021-08-08)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.5](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.4...v5.0.0-pre.5) (2021-06-23)
-
-### Bug Fixes
-
-- **authentication-oauth:** Omit query from internal calls ([#2398](https://github.com/feathersjs/feathers/issues/2398)) ([04c7c83](https://github.com/feathersjs/feathers/commit/04c7c83eeaa6a7466c84b958071b468ed42f0b0f))
-- **koa:** Use extended query parser for compatibility ([#2397](https://github.com/feathersjs/feathers/issues/2397)) ([b2944ba](https://github.com/feathersjs/feathers/commit/b2944bac3ec6d5ecc80dc518cd4e58093692db74))
-
-### Features
-
-- **adapter-commons:** Add support for params.adapter option and move memory adapter to @feathersjs/memory ([#2367](https://github.com/feathersjs/feathers/issues/2367)) ([a43e7da](https://github.com/feathersjs/feathers/commit/a43e7da22b6b981a96d1321736ea9a0cb924fb4f))
-
-# [5.0.0-pre.4](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.3...v5.0.0-pre.4) (2021-05-13)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.3](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.2...v5.0.0-pre.3) (2021-04-21)
-
-### Bug Fixes
-
-- **typescript:** Improve TypeScript backwards compatibility ([#2310](https://github.com/feathersjs/feathers/issues/2310)) ([f33be73](https://github.com/feathersjs/feathers/commit/f33be73fc46a533efb15df9aab0658e3240d3897))
-
-### Features
-
-- **dependencies:** Remove direct debug dependency ([#2296](https://github.com/feathersjs/feathers/issues/2296)) ([501d416](https://github.com/feathersjs/feathers/commit/501d4164d30c6a126906dc640cdfdc82207ba34a))
-
-# [5.0.0-pre.2](https://github.com/feathersjs/feathers/compare/v5.0.0-beta.1...v5.0.0-pre.2) (2021-04-06)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-beta.1](https://github.com/feathersjs/feathers/compare/v5.0.0-beta.0...v5.0.0-beta.1) (2021-04-03)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-beta.0](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.1...v5.0.0-beta.0) (2021-03-28)
-
-### Bug Fixes
-
-- Update Grant usage and other dependencies ([#2264](https://github.com/feathersjs/feathers/issues/2264)) ([7b0f8fa](https://github.com/feathersjs/feathers/commit/7b0f8fad252419ed0ad0bf259cdf3104d322ab60))
-
-### Features
-
-- Feathers v5 core refactoring and features ([#2255](https://github.com/feathersjs/feathers/issues/2255)) ([2dafb7c](https://github.com/feathersjs/feathers/commit/2dafb7ce14ba57406aeec13d10ca45b1e709bee9))
-
-# [5.0.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.5.11...v5.0.0-pre.1) (2020-12-17)
-
-# [5.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v4.5.4...v5.0.0-pre.0) (2020-05-19)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [5.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v4.5.4...v5.0.0-pre.0) (2020-05-19)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [4.5.9](https://github.com/feathersjs/feathers/compare/v4.5.8...v4.5.9) (2020-10-09)
-
-### Bug Fixes
-
-- **authentication-oauth:** Always end session after oAuth flows are finished ([#2087](https://github.com/feathersjs/feathers/issues/2087)) ([d219d0d](https://github.com/feathersjs/feathers/commit/d219d0d89c5e45aa289dd67cb0c8bdc05044c846))
-
-## [4.5.8](https://github.com/feathersjs/feathers/compare/v4.5.7...v4.5.8) (2020-08-12)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [4.5.7](https://github.com/feathersjs/feathers/compare/v4.5.6...v4.5.7) (2020-07-24)
-
-### Bug Fixes
-
-- **typescript:** Revert add overload types for `find` service methods ([#1972](https://github.com/feathersjs/feathers/issues/1972))" ([#2025](https://github.com/feathersjs/feathers/issues/2025)) ([a9501ac](https://github.com/feathersjs/feathers/commit/a9501acb4d3ef58dfb87d62c57a9bf76569da281))
-
-## [4.5.6](https://github.com/feathersjs/feathers/compare/v4.5.5...v4.5.6) (2020-07-12)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [4.5.5](https://github.com/feathersjs/feathers/compare/v4.5.4...v4.5.5) (2020-07-11)
-
-### Bug Fixes
-
-- **authentication-oauth:** Updated typings for projects with strictNullChecks ([#1941](https://github.com/feathersjs/feathers/issues/1941)) ([be91206](https://github.com/feathersjs/feathers/commit/be91206e3dba1e65a81412b7aa636bece3ab4aa2))
-- **typescript:** add overload types for `find` service methods ([#1972](https://github.com/feathersjs/feathers/issues/1972)) ([ef55af0](https://github.com/feathersjs/feathers/commit/ef55af088d05d9d36aba9d9f8d6c2c908a4f20dd))
-
-## [4.5.4](https://github.com/feathersjs/feathers/compare/v4.5.3...v4.5.4) (2020-04-29)
-
-### Bug Fixes
-
-- **authentication-oauth:** Add getEntity method to oAuth authentication and remove provider field for other calls ([#1935](https://github.com/feathersjs/feathers/issues/1935)) ([d925c1b](https://github.com/feathersjs/feathers/commit/d925c1bd193b5c19cb23a246f04fc46d0429fc75))
-
-## [4.5.3](https://github.com/feathersjs/feathers/compare/v4.5.2...v4.5.3) (2020-04-17)
-
-### Bug Fixes
-
-- **authentication-oauth:** Allow req.feathers to be used in oAuth authentication requests ([#1886](https://github.com/feathersjs/feathers/issues/1886)) ([854c9ca](https://github.com/feathersjs/feathers/commit/854c9cac9a9a5f8f89054a90feb24ab5c4766f5f))
-
-## [4.5.2](https://github.com/feathersjs/feathers/compare/v4.5.1...v4.5.2) (2020-03-04)
-
-### Bug Fixes
-
-- **package:** update grant-profile to version 0.0.11 ([#1841](https://github.com/feathersjs/feathers/issues/1841)) ([5dcd2aa](https://github.com/feathersjs/feathers/commit/5dcd2aa3483059cc7a2546b145dd72b4705fe2fe))
-
-## [4.5.1](https://github.com/feathersjs/feathers/compare/v4.5.0...v4.5.1) (2020-01-24)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [4.5.0](https://github.com/feathersjs/feathers/compare/v4.4.3...v4.5.0) (2020-01-18)
-
-### Features
-
-- **authentication-oauth:** Set oAuth redirect URL dynamically and pass query the service ([#1737](https://github.com/feathersjs/feathers/issues/1737)) ([0b05f0b](https://github.com/feathersjs/feathers/commit/0b05f0b58a257820fa61d695a36f36455209f6a1))
-
-## [4.4.3](https://github.com/feathersjs/feathers/compare/v4.4.1...v4.4.3) (2019-12-06)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [4.4.1](https://github.com/feathersjs/feathers/compare/v4.4.0...v4.4.1) (2019-11-27)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [4.4.0](https://github.com/feathersjs/feathers/compare/v4.3.11...v4.4.0) (2019-11-27)
-
-### Features
-
-- **authentication-oauth:** Set oAuth redirect URL dynamically ([#1608](https://github.com/feathersjs/feathers/issues/1608)) ([1293e08](https://github.com/feathersjs/feathers/commit/1293e088abbb3d23f4a44680836645a8049ceaae))
-
-## [4.3.11](https://github.com/feathersjs/feathers/compare/v4.3.10...v4.3.11) (2019-11-11)
-
-### Bug Fixes
-
-- **authentication-oauth:** Allow hash based redirects ([#1676](https://github.com/feathersjs/feathers/issues/1676)) ([ffe7cf3](https://github.com/feathersjs/feathers/commit/ffe7cf3fbb4e62d7689065cf7b61f25f602ce8cf))
-
-## [4.3.10](https://github.com/feathersjs/feathers/compare/v4.3.9...v4.3.10) (2019-10-26)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [4.3.9](https://github.com/feathersjs/feathers/compare/v4.3.8...v4.3.9) (2019-10-26)
-
-### Bug Fixes
-
-- Only initialize default Express session if oAuth is actually used ([#1648](https://github.com/feathersjs/feathers/issues/1648)) ([9b9b43f](https://github.com/feathersjs/feathers/commit/9b9b43ff09af1080e4aaa537064bac37b881c9a2))
-
-## [4.3.7](https://github.com/feathersjs/feathers/compare/v4.3.6...v4.3.7) (2019-10-14)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [4.3.5](https://github.com/feathersjs/feathers/compare/v4.3.4...v4.3.5) (2019-10-07)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [4.3.4](https://github.com/feathersjs/feathers/compare/v4.3.3...v4.3.4) (2019-10-03)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [4.3.3](https://github.com/feathersjs/feathers/compare/v4.3.2...v4.3.3) (2019-09-21)
-
-### Bug Fixes
-
-- Small improvements in dependencies and code sturcture ([#1562](https://github.com/feathersjs/feathers/issues/1562)) ([42c13e2](https://github.com/feathersjs/feathers/commit/42c13e2))
-
-## [4.3.2](https://github.com/feathersjs/feathers/compare/v4.3.1...v4.3.2) (2019-09-16)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-## [4.3.1](https://github.com/feathersjs/feathers/compare/v4.3.0...v4.3.1) (2019-09-09)
-
-### Bug Fixes
-
-- Omit standard protocol ports from the default hostname ([#1543](https://github.com/feathersjs/feathers/issues/1543)) ([ef16d29](https://github.com/feathersjs/feathers/commit/ef16d29))
-
-# [4.3.0](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.4...v4.3.0) (2019-08-27)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [4.3.0-pre.4](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.3...v4.3.0-pre.4) (2019-08-22)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [4.3.0-pre.3](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.2...v4.3.0-pre.3) (2019-08-19)
-
-### Bug Fixes
-
-- Update all dependencies ([7d53a00](https://github.com/feathersjs/feathers/commit/7d53a00))
-- Use WeakMap to connect socket to connection ([#1509](https://github.com/feathersjs/feathers/issues/1509)) ([64807e3](https://github.com/feathersjs/feathers/commit/64807e3))
-
-# [4.3.0-pre.2](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.1...v4.3.0-pre.2) (2019-08-02)
-
-### Bug Fixes
-
-- Add method to reliably get default authentication service ([#1470](https://github.com/feathersjs/feathers/issues/1470)) ([e542cb3](https://github.com/feathersjs/feathers/commit/e542cb3))
-
-# [4.3.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.5...v4.3.0-pre.1) (2019-07-11)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [4.0.0-pre.5](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.4...v4.0.0-pre.5) (2019-07-10)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [4.0.0-pre.4](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.3...v4.0.0-pre.4) (2019-07-05)
-
-**Note:** Version bump only for package @feathersjs/authentication-oauth
-
-# [4.0.0-pre.3](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.2...v4.0.0-pre.3) (2019-06-01)
-
-### Bug Fixes
-
-- Make oAuth paths more consistent and improve authentication client ([#1377](https://github.com/feathersjs/feathers/issues/1377)) ([adb2543](https://github.com/feathersjs/feathers/commit/adb2543))
-- Update dependencies and fix tests ([#1373](https://github.com/feathersjs/feathers/issues/1373)) ([d743a7f](https://github.com/feathersjs/feathers/commit/d743a7f))
-
-# [4.0.0-pre.2](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.1...v4.0.0-pre.2) (2019-05-15)
-
-### Bug Fixes
-
-- Correctly read the oauth strategy config ([#1349](https://github.com/feathersjs/feathers/issues/1349)) ([9abf314](https://github.com/feathersjs/feathers/commit/9abf314))
-
-### Features
-
-- Add global disconnect event ([#1355](https://github.com/feathersjs/feathers/issues/1355)) ([85afcca](https://github.com/feathersjs/feathers/commit/85afcca))
-
-# [4.0.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.0...v4.0.0-pre.1) (2019-05-08)
-
-### Bug Fixes
-
-- Always require strategy parameter in authentication ([#1327](https://github.com/feathersjs/feathers/issues/1327)) ([d4a8021](https://github.com/feathersjs/feathers/commit/d4a8021))
-- Improve authentication parameter handling ([#1333](https://github.com/feathersjs/feathers/issues/1333)) ([6e77204](https://github.com/feathersjs/feathers/commit/6e77204))
-- Improve oAuth option handling and usability ([#1335](https://github.com/feathersjs/feathers/issues/1335)) ([adb137d](https://github.com/feathersjs/feathers/commit/adb137d))
-- Merge httpStrategies and authStrategies option ([#1308](https://github.com/feathersjs/feathers/issues/1308)) ([afa4d55](https://github.com/feathersjs/feathers/commit/afa4d55))
-- Rename jwtStrategies option to authStrategies ([#1305](https://github.com/feathersjs/feathers/issues/1305)) ([4aee151](https://github.com/feathersjs/feathers/commit/4aee151))
-
-### Features
-
-- Change and *JWT methods to *accessToken ([#1304](https://github.com/feathersjs/feathers/issues/1304)) ([5ac826b](https://github.com/feathersjs/feathers/commit/5ac826b))
-
-# [4.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v3.2.0-pre.1...v4.0.0-pre.0) (2019-04-21)
-
-### Features
-
-- @feathersjs/authentication-oauth ([#1299](https://github.com/feathersjs/feathers/issues/1299)) ([656bae7](https://github.com/feathersjs/feathers/commit/656bae7))
diff --git a/packages/authentication-oauth/LICENSE b/packages/authentication-oauth/LICENSE
deleted file mode 100644
index 7839c824d7..0000000000
--- a/packages/authentication-oauth/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2024 Feathers Contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/packages/authentication-oauth/README.md b/packages/authentication-oauth/README.md
deleted file mode 100644
index 797a932308..0000000000
--- a/packages/authentication-oauth/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# @feathersjs/authentication-oauth
-
-[](https://github.com/feathersjs/feathers/actions?query=workflow%3ACI)
-[](https://www.npmjs.com/package/@feathersjs/authentication-oauth)
-[](https://discord.gg/qa8kez8QBx)
-
-> OAuth 1 and 2 authentication for Feathers. Powered by Grant.
-
-## Installation
-
-```
-npm install @feathersjs/authentication-oauth --save
-```
-
-## Documentation
-
-Refer to the [Feathers oAuth authentication API documentation](https://feathersjs.com/api/authentication/oauth.html) for more details.
-
-## License
-
-Copyright (c) 2024 [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
-
-Licensed under the [MIT license](LICENSE).
diff --git a/packages/authentication-oauth/package.json b/packages/authentication-oauth/package.json
deleted file mode 100644
index 9406d3cfaf..0000000000
--- a/packages/authentication-oauth/package.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "name": "@feathersjs/authentication-oauth",
- "description": "oAuth 1 and 2 authentication for Feathers. Powered by Grant.",
- "version": "5.0.34",
- "homepage": "https://feathersjs.com",
- "main": "lib/",
- "types": "lib/",
- "keywords": [
- "feathers",
- "feathers-plugin"
- ],
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/feathersjs/feathers.git",
- "directory": "packages/authentication-oauth"
- },
- "author": {
- "name": "Feathers contributors",
- "email": "hello@feathersjs.com",
- "url": "https://feathersjs.com"
- },
- "contributors": [],
- "bugs": {
- "url": "https://github.com/feathersjs/feathers/issues"
- },
- "engines": {
- "node": ">= 12"
- },
- "files": [
- "CHANGELOG.md",
- "LICENSE",
- "README.md",
- "src/**",
- "lib/**",
- "*.d.ts",
- "*.js"
- ],
- "scripts": {
- "start": "ts-node test/app",
- "prepublish": "npm run compile",
- "pack": "npm pack --pack-destination ../generators/test/build",
- "compile": "shx rm -rf lib/ && tsc && npm run pack",
- "test": "mocha --config ../../.mocharc.json --recursive test/**.test.ts test/**/*.test.ts"
- },
- "directories": {
- "lib": "lib"
- },
- "publishConfig": {
- "access": "public"
- },
- "dependencies": {
- "@feathersjs/authentication": "^5.0.34",
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/express": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "@feathersjs/koa": "^5.0.34",
- "@feathersjs/schema": "^5.0.34",
- "cookie-session": "^2.1.1",
- "grant": "^5.4.24",
- "koa-session": "^7.0.2",
- "qs": "^6.14.0"
- },
- "devDependencies": {
- "@feathersjs/memory": "^5.0.34",
- "@types/cookie-session": "^2.0.49",
- "@types/express": "^4.17.21",
- "@types/koa-session": "^6.4.5",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "@types/tough-cookie": "^4.0.5",
- "axios": "^1.11.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "tough-cookie": "^5.1.2",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "gitHead": "90caf635aec850550b9d37bea2762af959d9e8d5"
-}
diff --git a/packages/authentication-oauth/src/index.ts b/packages/authentication-oauth/src/index.ts
deleted file mode 100644
index 9d25b6f6c1..0000000000
--- a/packages/authentication-oauth/src/index.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-import { Application } from '@feathersjs/feathers'
-import { createDebug } from '@feathersjs/commons'
-import { resolveDispatch } from '@feathersjs/schema'
-
-import { OAuthStrategy, OAuthProfile } from './strategy'
-import { redirectHook, OAuthService, OAuthCallbackService } from './service'
-import { getGrantConfig, authenticationServiceOptions, OauthSetupSettings } from './utils'
-
-const debug = createDebug('@feathersjs/authentication-oauth')
-
-export { OauthSetupSettings, OAuthStrategy, OAuthProfile, OAuthService }
-
-export const oauth =
- (settings: Partial = {}) =>
- (app: Application) => {
- const authService = app.defaultAuthentication ? app.defaultAuthentication(settings.authService) : null
-
- if (!authService) {
- throw new Error(
- 'An authentication service must exist before registering @feathersjs/authentication-oauth'
- )
- }
-
- if (!authService.configuration.oauth) {
- debug('No oauth configuration found in authentication configuration. Skipping oAuth setup.')
- return
- }
-
- const oauthOptions = {
- linkStrategy: 'jwt',
- ...settings
- }
-
- const grantConfig = getGrantConfig(authService)
- const serviceOptions = authenticationServiceOptions(authService, oauthOptions)
- const servicePath = `${grantConfig.defaults.prefix || 'oauth'}/:provider`
- const callbackServicePath = `${servicePath}/callback`
- const oauthService = new OAuthService(authService, oauthOptions)
-
- app.use(servicePath, oauthService, serviceOptions)
- app.use(callbackServicePath, new OAuthCallbackService(oauthService), serviceOptions)
- app.service(servicePath).hooks({
- around: { all: [resolveDispatch(), redirectHook()] }
- })
- app.service(callbackServicePath).hooks({
- around: { all: [resolveDispatch(), redirectHook()] }
- })
-
- if (typeof app.service(servicePath).publish === 'function') {
- app.service(servicePath).publish(() => null)
- }
-
- if (typeof app.service(callbackServicePath).publish === 'function') {
- app.service(callbackServicePath).publish(() => null)
- }
- }
diff --git a/packages/authentication-oauth/src/service.ts b/packages/authentication-oauth/src/service.ts
deleted file mode 100644
index 1ae575d6aa..0000000000
--- a/packages/authentication-oauth/src/service.ts
+++ /dev/null
@@ -1,203 +0,0 @@
-import { createDebug } from '@feathersjs/commons'
-import { HookContext, NextFunction, Params } from '@feathersjs/feathers'
-import { FeathersError, GeneralError } from '@feathersjs/errors'
-// eslint-disable-next-line @typescript-eslint/ban-ts-comment
-//@ts-ignore
-import Grant from 'grant/lib/grant'
-import { AuthenticationService } from '@feathersjs/authentication'
-import { OAuthStrategy } from './strategy'
-import { getGrantConfig, OauthSetupSettings } from './utils'
-
-const debug = createDebug('@feathersjs/authentication-oauth/services')
-
-export type GrantResponse = {
- location: string
- session: any
- state: any
-}
-
-export type OAuthParams = Omit & {
- session: any
- state: Record
- route: {
- provider: string
- }
-}
-
-export class OAuthError extends FeathersError {
- constructor(
- message: string,
- data: any,
- public location: string
- ) {
- super(message, 'NotAuthenticated', 401, 'not-authenticated', data)
- }
-}
-
-export const redirectHook = () => async (context: HookContext, next: NextFunction) => {
- try {
- await next()
-
- const { location } = context.result
-
- debug(`oAuth redirect to ${location}`)
-
- if (location) {
- context.http = {
- ...context.http,
- location
- }
- }
- } catch (error: any) {
- if (error.location) {
- context.http = {
- ...context.http,
- location: error.location
- }
- context.result = typeof error.toJSON === 'function' ? error.toJSON() : error
- } else {
- throw error
- }
- }
-}
-
-export class OAuthService {
- grant: any
-
- constructor(
- public service: AuthenticationService,
- public settings: OauthSetupSettings
- ) {
- const config = getGrantConfig(service)
-
- this.grant = Grant({ config })
- }
-
- async handler(method: string, params: OAuthParams, body?: any, override?: string): Promise {
- const {
- session,
- state,
- query,
- route: { provider }
- } = params
-
- const result: GrantResponse = await this.grant({
- params: { provider, override },
- state: state.grant,
- session: session.grant,
- query,
- method,
- body
- })
-
- session.grant = result.session
- state.grant = result.state
-
- return result
- }
-
- async authenticate(params: OAuthParams, result: GrantResponse) {
- const name = params.route.provider
- const { linkStrategy, authService } = this.settings
- const { accessToken, grant, headers, query = {}, redirect } = params.session
- const strategy = this.service.getStrategy(name) as OAuthStrategy
- const authParams = {
- ...params,
- headers,
- authStrategies: [name],
- authentication: accessToken
- ? {
- strategy: linkStrategy,
- accessToken
- }
- : null,
- query,
- redirect
- }
-
- const payload = grant?.response || result?.session?.response || result?.state?.response || params.query
- const authentication = {
- strategy: name,
- ...payload
- }
-
- try {
- if (payload.error) {
- throw new GeneralError(payload.error_description || payload.error, payload)
- }
-
- debug(`Calling ${authService}.create authentication with strategy ${name}`)
-
- const authResult = await this.service.create(authentication, authParams)
-
- debug('Successful oAuth authentication, sending response')
-
- const location = await strategy.getRedirect(authResult, authParams)
-
- if (typeof params.session.destroy === 'function') {
- await params.session.destroy()
- }
-
- return {
- ...authResult,
- location
- }
- } catch (error: any) {
- const location = await strategy.getRedirect(error, authParams)
- const e = new OAuthError(error.message, error.data, location)
-
- if (typeof params.session.destroy === 'function') {
- await params.session.destroy()
- }
-
- e.stack = error.stack
- throw e
- }
- }
-
- async find(params: OAuthParams) {
- const { session, query, headers } = params
- const { feathers_token, redirect, ...restQuery } = query
- const handlerParams = {
- ...params,
- query: restQuery
- }
-
- if (feathers_token) {
- debug('Got feathers_token query parameter to link accounts', feathers_token)
- session.accessToken = feathers_token
- }
-
- session.redirect = redirect
- session.query = restQuery
- session.headers = headers
-
- return this.handler('GET', handlerParams, {})
- }
-
- async get(override: string, params: OAuthParams) {
- const result = await this.handler('GET', params, {}, override)
-
- return result
- }
-
- async create(data: any, params: OAuthParams) {
- return this.handler('POST', params, data)
- }
-}
-
-export class OAuthCallbackService {
- constructor(public service: OAuthService) {}
-
- async find(params: OAuthParams) {
- const result = await this.service.handler('GET', params, {}, 'callback')
-
- return this.service.authenticate(params, result)
- }
-
- async create(data: any, params: OAuthParams) {
- const result = await this.service.handler('POST', params, data, 'callback')
-
- return this.service.authenticate(params, result)
- }
-}
diff --git a/packages/authentication-oauth/src/strategy.ts b/packages/authentication-oauth/src/strategy.ts
deleted file mode 100644
index 4bfe2589fc..0000000000
--- a/packages/authentication-oauth/src/strategy.ts
+++ /dev/null
@@ -1,176 +0,0 @@
-import {
- AuthenticationRequest,
- AuthenticationBaseStrategy,
- AuthenticationResult,
- AuthenticationParams
-} from '@feathersjs/authentication'
-import { Params } from '@feathersjs/feathers'
-import { NotAuthenticated } from '@feathersjs/errors'
-import { createDebug, _ } from '@feathersjs/commons'
-import qs from 'qs'
-
-const debug = createDebug('@feathersjs/authentication-oauth/strategy')
-
-export interface OAuthProfile {
- id?: string | number
- [key: string]: any
-}
-
-export class OAuthStrategy extends AuthenticationBaseStrategy {
- get configuration() {
- const { entity, service, entityId, oauth } = this.authentication.configuration
- const config = oauth[this.name] as any
-
- return {
- entity,
- service,
- entityId,
- ...config
- }
- }
-
- get entityId(): string {
- const { entityService } = this
-
- return this.configuration.entityId || (entityService && (entityService as any).id)
- }
-
- async getEntityQuery(profile: OAuthProfile, _params: Params) {
- return {
- [`${this.name}Id`]: profile.sub || profile.id
- }
- }
-
- async getEntityData(profile: OAuthProfile, _existingEntity: any, _params: Params) {
- return {
- [`${this.name}Id`]: profile.sub || profile.id
- }
- }
-
- async getProfile(data: AuthenticationRequest, _params: Params) {
- return data.profile
- }
-
- async getCurrentEntity(params: Params) {
- const { authentication } = params
- const { entity } = this.configuration
-
- if (authentication && authentication.strategy) {
- debug('getCurrentEntity with authentication', authentication)
-
- const { strategy } = authentication
- const authResult = await this.authentication.authenticate(authentication, params, strategy)
-
- return authResult[entity]
- }
-
- return null
- }
-
- async getAllowedOrigin(params?: Params) {
- const { redirect, origins = this.app.get('origins') } = this.authentication.configuration.oauth
-
- if (Array.isArray(origins)) {
- const referer = params?.headers?.referer || origins[0]
- const allowedOrigin = origins.find((current) => referer.toLowerCase().startsWith(current.toLowerCase()))
-
- if (!allowedOrigin) {
- throw new NotAuthenticated(`Referer "${referer}" is not allowed.`)
- }
-
- return allowedOrigin
- }
-
- return redirect
- }
-
- async getRedirect(
- data: AuthenticationResult | Error,
- params?: AuthenticationParams
- ): Promise {
- const queryRedirect = (params && params.redirect) || ''
- const redirect = await this.getAllowedOrigin(params)
-
- if (!redirect) {
- return null
- }
-
- const redirectUrl = `${redirect}${queryRedirect}`
- const separator = redirectUrl.endsWith('?') ? '' : redirect.indexOf('#') !== -1 ? '?' : '#'
- const authResult: AuthenticationResult = data
- const query = authResult.accessToken
- ? { access_token: authResult.accessToken }
- : { error: data.message || 'OAuth Authentication not successful' }
-
- return `${redirectUrl}${separator}${qs.stringify(query)}`
- }
-
- async findEntity(profile: OAuthProfile, params: Params) {
- const query = await this.getEntityQuery(profile, params)
-
- debug('findEntity with query', query)
-
- const result = await this.entityService.find({
- ...params,
- query
- })
- const [entity = null] = result.data ? result.data : result
-
- debug('findEntity returning', entity)
-
- return entity
- }
-
- async createEntity(profile: OAuthProfile, params: Params) {
- const data = await this.getEntityData(profile, null, params)
-
- debug('createEntity with data', data)
-
- return this.entityService.create(data, _.omit(params, 'query'))
- }
-
- async updateEntity(entity: any, profile: OAuthProfile, params: Params) {
- const id = entity[this.entityId]
- const data = await this.getEntityData(profile, entity, params)
-
- debug(`updateEntity with id ${id} and data`, data)
-
- return this.entityService.patch(id, data, _.omit(params, 'query'))
- }
-
- async getEntity(result: any, params: Params) {
- const { entityService } = this
- const { entityId = (entityService as any).id, entity } = this.configuration
-
- if (!entityId || result[entityId] === undefined) {
- throw new NotAuthenticated('Could not get oAuth entity')
- }
-
- if (!params.provider) {
- return result
- }
-
- return entityService.get(result[entityId], {
- ..._.omit(params, 'query'),
- [entity]: result
- })
- }
-
- async authenticate(authentication: AuthenticationRequest, originalParams: AuthenticationParams) {
- const entity: string = this.configuration.entity
- const { provider, ...params } = originalParams
- const profile = await this.getProfile(authentication, params)
- const existingEntity = (await this.findEntity(profile, params)) || (await this.getCurrentEntity(params))
-
- debug('authenticate with (existing) entity', existingEntity)
-
- const authEntity = !existingEntity
- ? await this.createEntity(profile, params)
- : await this.updateEntity(existingEntity, profile, params)
-
- return {
- authentication: { strategy: this.name },
- [entity]: await this.getEntity(authEntity, originalParams)
- }
- }
-}
diff --git a/packages/authentication-oauth/src/utils.ts b/packages/authentication-oauth/src/utils.ts
deleted file mode 100644
index 21eff4217f..0000000000
--- a/packages/authentication-oauth/src/utils.ts
+++ /dev/null
@@ -1,127 +0,0 @@
-import type { RequestHandler } from 'express'
-import type { Middleware, Application as KoaApplication } from '@feathersjs/koa'
-
-import type { ServiceOptions } from '@feathersjs/feathers'
-
-import '@feathersjs/koa'
-import '@feathersjs/express'
-import expressCookieSession from 'cookie-session'
-import koaCookieSession from 'koa-session'
-
-import { AuthenticationService } from '@feathersjs/authentication'
-import { GrantConfig } from 'grant'
-
-export interface OauthSetupSettings {
- linkStrategy: string
- authService?: string
- expressSession?: RequestHandler
- koaSession?: Middleware
-}
-
-export const getGrantConfig = (service: AuthenticationService): GrantConfig => {
- const {
- app,
- configuration: { oauth }
- } = service
- // Set up all the defaults
- const port = app.get('port')
- let host = app.get('host')
- let protocol = 'https'
-
- // Development environments commonly run on HTTP with an extended port
- if (process.env.NODE_ENV !== 'production') {
- protocol = 'http'
- if (String(port) !== '80') {
- host += `:${port}`
- }
- }
-
- // omit 'redirect' and 'origins' from oauth
- const { redirect, origins, ...oauthConfig } = oauth
-
- const grant: GrantConfig = {
- ...oauthConfig,
- defaults: {
- prefix: '/oauth',
- origin: `${protocol}://${host}`,
- transport: 'state',
- response: ['tokens', 'raw', 'profile'],
- ...oauthConfig.defaults
- }
- }
-
- const getUrl = (url: string) => {
- const { defaults } = grant
- return `${defaults.origin}${defaults.prefix}/${url}`
- }
-
- // iterate over grant object with key and value
- for (const [name, value] of Object.entries(grant)) {
- if (name !== 'defaults') {
- value.redirect_uri = value.redirect_uri || getUrl(`${name}/callback`)
- }
- }
-
- return grant
-}
-
-export const setExpressParams: RequestHandler = (req, res, next) => {
- req.session.destroy ||= () => {
- req.session = null
- }
-
- req.feathers = {
- ...req.feathers,
- session: req.session,
- state: res.locals
- }
-
- next()
-}
-
-export const setKoaParams: Middleware = async (ctx, next) => {
- ctx.session.destroy ||= () => {
- ctx.session = null
- }
-
- ctx.feathers = {
- ...ctx.feathers,
- session: ctx.session,
- state: ctx.state
- } as any
-
- await next()
-}
-
-export const authenticationServiceOptions = (
- service: AuthenticationService,
- settings: OauthSetupSettings
-): ServiceOptions => {
- const { secret } = service.configuration
- const koaApp = service.app as KoaApplication
-
- if (koaApp.context) {
- koaApp.keys = [secret]
-
- const { koaSession = koaCookieSession({ key: 'feathers.oauth' }, koaApp as any) } = settings
-
- return {
- koa: {
- before: [koaSession, setKoaParams]
- }
- }
- }
-
- const {
- expressSession = expressCookieSession({
- name: 'feathers.oauth',
- keys: [secret]
- })
- } = settings
-
- return {
- express: {
- before: [expressSession, setExpressParams]
- }
- }
-}
diff --git a/packages/authentication-oauth/test/index.test.ts b/packages/authentication-oauth/test/index.test.ts
deleted file mode 100644
index f4e192482e..0000000000
--- a/packages/authentication-oauth/test/index.test.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { strict as assert } from 'assert'
-import { feathers } from '@feathersjs/feathers'
-import { oauth, OauthSetupSettings } from '../src'
-import { AuthenticationService } from '@feathersjs/authentication'
-
-describe('@feathersjs/authentication-oauth', () => {
- describe('setup', () => {
- it('errors when service does not exist', () => {
- const app = feathers()
-
- assert.throws(
- () => {
- app.configure(oauth({ authService: 'something' } as OauthSetupSettings))
- },
- {
- message: 'An authentication service must exist before registering @feathersjs/authentication-oauth'
- }
- )
- })
-
- it('does not error when service is configured', () => {
- const app = feathers()
-
- app.use('/authentication', new AuthenticationService(app))
-
- app.configure(oauth())
- })
- })
-})
diff --git a/packages/authentication-oauth/test/service.test.ts b/packages/authentication-oauth/test/service.test.ts
deleted file mode 100644
index a39310763a..0000000000
--- a/packages/authentication-oauth/test/service.test.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-import { strict as assert } from 'assert'
-import axios, { AxiosResponse } from 'axios'
-import { CookieJar } from 'tough-cookie'
-import { expressFixture } from './utils/fixture'
-
-describe('@feathersjs/authentication-oauth service', () => {
- const port = 9778
- const req = axios.create({
- withCredentials: true,
- maxRedirects: 0
- })
- const cookie = new CookieJar()
- let app: Awaited>
-
- const fetchErrorResponse = async (url: string): Promise => {
- try {
- await req.get(url)
- } catch (error: any) {
- return error.response
- }
- assert.fail('Should never get here')
- }
-
- before(async () => {
- app = await expressFixture(port, 5115)
- })
-
- after(async () => {
- await app.teardown()
- })
-
- it('runs through the oAuth flow', async () => {
- const host = `http://localhost:${port}`
- let location = `${host}/oauth/github`
-
- const oauthResponse = await fetchErrorResponse(location)
- assert.equal(oauthResponse.status, 303)
-
- oauthResponse.headers['set-cookie']?.forEach((value) => cookie.setCookie(value, host))
-
- location = oauthResponse.data.location
-
- const providerResponse = await fetchErrorResponse(location)
- assert.equal(providerResponse.status, 302)
-
- location = providerResponse.headers.location
-
- const { data } = await req.get(location, {
- headers: {
- cookie: await cookie.getCookieString(host)
- }
- })
-
- assert.ok(data.accessToken)
- assert.equal(data.authentication.strategy, 'github')
- })
-})
diff --git a/packages/authentication-oauth/test/strategy.test.ts b/packages/authentication-oauth/test/strategy.test.ts
deleted file mode 100644
index a4386fcbc2..0000000000
--- a/packages/authentication-oauth/test/strategy.test.ts
+++ /dev/null
@@ -1,200 +0,0 @@
-import { strict as assert } from 'assert'
-import { expressFixture, TestOAuthStrategy } from './utils/fixture'
-import { AuthenticationService } from '@feathersjs/authentication'
-
-describe('@feathersjs/authentication-oauth/strategy', () => {
- let app: Awaited>
- let authService: AuthenticationService
- let strategy: TestOAuthStrategy
-
- before(async () => {
- app = await expressFixture(9778, 5115)
- authService = app.service('authentication')
- strategy = authService.getStrategy('github') as TestOAuthStrategy
- })
-
- after(async () => {
- await app.teardown()
- })
-
- it('initializes, has .entityId and configuration', () => {
- assert.ok(strategy)
- assert.strictEqual(strategy.entityId, 'id')
- assert.ok(strategy.configuration.entity)
- })
-
- it('reads configuration from the oauth key', () => {
- const testConfigValue = Math.random()
- app.get('authentication').oauth.github.hello = testConfigValue
- assert.strictEqual(strategy.configuration.hello, testConfigValue)
- })
-
- it('getRedirect', async () => {
- app.get('authentication').oauth.redirect = '/home'
-
- let redirect = await strategy.getRedirect({ accessToken: 'testing' })
- assert.equal(redirect, '/home#access_token=testing')
-
- redirect = await strategy.getRedirect(
- { accessToken: 'testing' },
- {
- redirect: '/hi-there'
- }
- )
- assert.strictEqual('/home/hi-there#access_token=testing', redirect)
-
- redirect = await strategy.getRedirect(
- { accessToken: 'testing' },
- {
- redirect: '/hi-there?'
- }
- )
- assert.equal(redirect, '/home/hi-there?access_token=testing')
-
- redirect = await strategy.getRedirect(new Error('something went wrong'))
- assert.equal(redirect, '/home#error=something%20went%20wrong')
-
- redirect = await strategy.getRedirect(new Error())
- assert.equal(redirect, '/home#error=OAuth%20Authentication%20not%20successful')
-
- app.get('authentication').oauth.redirect = '/home?'
-
- redirect = await strategy.getRedirect({ accessToken: 'testing' })
- assert.equal(redirect, '/home?access_token=testing')
-
- delete app.get('authentication').oauth.redirect
-
- redirect = await strategy.getRedirect({ accessToken: 'testing' })
- assert.equal(redirect, null)
-
- app.get('authentication').oauth.redirect = '/#dashboard'
-
- redirect = await strategy.getRedirect({ accessToken: 'testing' })
- assert.equal(redirect, '/#dashboard?access_token=testing')
- })
-
- it('getRedirect with referrer and allowed origins (#2430)', async () => {
- app.get('authentication').oauth.origins = ['https://feathersjs.com', 'https://feathers.cloud']
-
- let redirect = await strategy.getRedirect(
- { accessToken: 'testing' },
- {
- headers: {
- referer: 'https://feathersjs.com/somewhere'
- }
- }
- )
- assert.equal(redirect, 'https://feathersjs.com#access_token=testing')
-
- redirect = await strategy.getRedirect({ accessToken: 'testing' }, {})
- assert.equal(redirect, 'https://feathersjs.com#access_token=testing')
-
- redirect = await strategy.getRedirect(
- { accessToken: 'testing' },
- {
- headers: {
- referer: 'HTTPS://feathers.CLOUD'
- }
- }
- )
- assert.equal(redirect, 'https://feathers.cloud#access_token=testing')
-
- redirect = await strategy.getRedirect(
- { accessToken: 'testing' },
- {
- redirect: '/home',
- headers: {
- referer: 'https://feathersjs.com/somewhere'
- }
- }
- )
- assert.equal(redirect, 'https://feathersjs.com/home#access_token=testing')
-
- await assert.rejects(
- () =>
- strategy.getRedirect(
- { accessToken: 'testing' },
- {
- headers: {
- referer: 'https://example.com'
- }
- }
- ),
- {
- message: 'Referer "https://example.com" is not allowed.'
- }
- )
- })
-
- describe('authenticate', () => {
- it('with new user', async () => {
- const authResult = await strategy.authenticate(
- {
- strategy: 'test',
- profile: {
- id: 'newEntity'
- }
- },
- {}
- )
-
- assert.deepEqual(authResult, {
- authentication: { strategy: 'github' },
- user: { githubId: 'newEntity', id: authResult.user.id }
- })
- })
-
- it('with existing user and already linked strategy', async () => {
- const existingUser = await app.service('users').create({
- githubId: 'existingEntity',
- name: 'David'
- })
- const authResult = await strategy.authenticate(
- {
- strategy: 'test',
- profile: {
- id: 'existingEntity'
- }
- },
- {}
- )
-
- assert.deepEqual(authResult, {
- authentication: { strategy: 'github' },
- user: existingUser
- })
- })
-
- it('links user with existing authentication', async () => {
- const user = await app.service('users').create({
- name: 'David'
- })
- const jwt = await authService.createAccessToken(
- {},
- {
- subject: `${user.id}`
- }
- )
-
- const authResult = await strategy.authenticate(
- {
- strategy: 'test',
- profile: {
- id: 'linkedEntity'
- }
- },
- {
- authentication: {
- strategy: 'jwt',
- accessToken: jwt
- }
- }
- )
-
- assert.deepEqual(authResult, {
- authentication: { strategy: 'github' },
- user: { id: user.id, name: user.name, githubId: 'linkedEntity' }
- })
- })
- })
-})
diff --git a/packages/authentication-oauth/test/utils.test.ts b/packages/authentication-oauth/test/utils.test.ts
deleted file mode 100644
index 76a3bd34e7..0000000000
--- a/packages/authentication-oauth/test/utils.test.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-import { AuthenticationService } from '@feathersjs/authentication/lib'
-import { feathers } from '@feathersjs/feathers/lib'
-import { strict as assert } from 'assert'
-import { getGrantConfig } from '../src/utils'
-
-describe('@feathersjs/authentication-oauth/utils', () => {
- it('getGrantConfig initialises Grant defaults', () => {
- const app = feathers<{ authentication: AuthenticationService }>()
- const auth = new AuthenticationService(app)
-
- app.set('host', '127.0.0.1')
- app.set('port', '8877')
- app.set('authentication', {
- secret: 'supersecret',
- entity: 'user',
- service: 'users',
- authStrategies: ['jwt'],
- oauth: {
- github: {
- key: 'some-key',
- secret: 'a secret secret',
- authorize_url: '/github/authorize_url',
- access_url: '/github/access_url',
- dynamic: true
- }
- }
- })
- const { defaults } = getGrantConfig(auth)
-
- assert.deepStrictEqual(defaults, {
- prefix: '/oauth',
- origin: 'http://127.0.0.1:8877',
- transport: 'state',
- response: ['tokens', 'raw', 'profile']
- })
- })
-
- it('getGrantConfig uses Grant defaults when set', () => {
- const app = feathers<{ authentication: AuthenticationService }>()
- const auth = new AuthenticationService(app)
-
- app.set('host', '127.0.0.1')
- app.set('port', '8877')
- app.set('authentication', {
- secret: 'supersecret',
- entity: 'user',
- service: 'users',
- authStrategies: ['jwt'],
- oauth: {
- defaults: {
- prefix: '/auth',
- origin: 'https://localhost:3344'
- },
- github: {
- key: 'some-key',
- secret: 'a secret secret',
- authorize_url: '/github/authorize_url',
- access_url: '/github/access_url',
- dynamic: true
- }
- }
- })
- const { defaults, github } = getGrantConfig(auth)
-
- assert.deepStrictEqual(defaults, {
- prefix: '/auth',
- origin: 'https://localhost:3344',
- transport: 'state',
- response: ['tokens', 'raw', 'profile']
- })
- assert.strictEqual(github?.redirect_uri, 'https://localhost:3344/auth/github/callback')
- })
-})
diff --git a/packages/authentication-oauth/test/utils/fixture.ts b/packages/authentication-oauth/test/utils/fixture.ts
deleted file mode 100644
index 0371f516ea..0000000000
--- a/packages/authentication-oauth/test/utils/fixture.ts
+++ /dev/null
@@ -1,95 +0,0 @@
-import { Application, feathers, NextFunction } from '@feathersjs/feathers'
-import express, { rest, errorHandler } from '@feathersjs/express'
-import { memory, MemoryService } from '@feathersjs/memory'
-import {
- AuthenticationService,
- JWTStrategy,
- AuthenticationRequest,
- AuthenticationParams
-} from '@feathersjs/authentication'
-import { provider } from './provider'
-import { oauth, OAuthStrategy } from '../../src'
-
-export interface ServiceTypes {
- authentication: AuthenticationService
- users: MemoryService
-}
-
-export class TestOAuthStrategy extends OAuthStrategy {
- async authenticate(data: AuthenticationRequest, params: AuthenticationParams) {
- const { fromMiddleware } = params
- const authResult = await super.authenticate(data, params)
-
- if (fromMiddleware) {
- authResult.fromMiddleware = fromMiddleware
- }
-
- return authResult
- }
-}
-
-export const fixtureConfig =
- (port: number, providerInstance: Awaited>) => (app: Application) => {
- app.set('host', '127.0.0.1')
- app.set('port', port)
- app.set('authentication', {
- secret: 'supersecret',
- entity: 'user',
- service: 'users',
- authStrategies: ['jwt'],
- oauth: {
- github: {
- key: 'some-key',
- secret: 'a secret secret',
- authorize_url: providerInstance.url(`/github/authorize_url`),
- access_url: providerInstance.url(`/github/access_url`),
- dynamic: true
- }
- }
- })
-
- return app
- }
-
-export const expressFixture = async (serverPort: number, providerPort: number) => {
- const providerInstance = await provider({ flow: 'oauth2', port: providerPort })
- const app = express(feathers())
- const auth = new AuthenticationService(app)
-
- auth.register('jwt', new JWTStrategy())
- auth.register('github', new TestOAuthStrategy())
-
- app.configure(rest())
- app.configure(fixtureConfig(serverPort, providerInstance))
-
- app.use((req, _res, next) => {
- req.feathers = { fromMiddleware: 'testing' }
- next()
- })
- app.use('authentication', auth)
- app.use('users', memory())
-
- app.configure(oauth())
- app.use(errorHandler({ logger: false }))
- app.hooks({
- teardown: [
- async (_context: any, next: NextFunction) => {
- await providerInstance.close()
- await next()
- }
- ]
- })
- app.hooks({
- error: {
- all: [
- async (context) => {
- console.error(context.error)
- }
- ]
- }
- })
-
- await app.listen(serverPort)
-
- return app
-}
diff --git a/packages/authentication-oauth/test/utils/provider.ts b/packages/authentication-oauth/test/utils/provider.ts
deleted file mode 100644
index 7a63e25e87..0000000000
--- a/packages/authentication-oauth/test/utils/provider.ts
+++ /dev/null
@@ -1,282 +0,0 @@
-/* eslint-disable @typescript-eslint/no-non-null-assertion */
-/* eslint-disable @typescript-eslint/no-empty-function */
-// Ported from https://github.com/simov/grant/blob/master/test/util/provider.js
-import http from 'http'
-import _url from 'url'
-import qs from 'qs'
-
-const buffer = (req: http.IncomingMessage, done: any) => {
- let data = ''
- req.on('data', (chunk: any) => (data += chunk))
- req.on('end', () => done(/^{.*}$/.test(data) ? JSON.parse(data) : qs.parse(data)))
-}
-const _query = (req: http.IncomingMessage) => {
- const parsed = _url.parse(req.url as string, false)
- const query = qs.parse(parsed.query as any)
- return query
-}
-const _oauth = (req: http.IncomingMessage) =>
- qs.parse((req.headers.authorization || '').replace('OAuth ', '').replace(/"/g, '').replace(/,/g, '&'))
-
-const sign = (...args: any[]) =>
- args
- .map((arg, index) =>
- index < 2
- ? Buffer.from(JSON.stringify(arg))
- .toString('base64')
- .replace(/=/g, '')
- .replace(/\+/g, '-')
- .replace(/\//g, '_')
- : arg
- )
- .join('.')
-
-export const provider = async ({ flow, port = 5000 }: { flow: 'oauth2' | 'oauth1'; port: number }) => {
- const server = await (flow === 'oauth2' ? oauth2(port) : oauth1(port))
- return {
- oauth1,
- oauth2,
- on,
- server,
- url: (path: string) => `http://localhost:${port}${path}`,
- close: () => new Promise((resolve) => server.close(resolve))
- }
-}
-
-const oauth1 = (port: number) =>
- new Promise((resolve) => {
- let callback: any
- const server = http.createServer()
- server.on('request', (req, res) => {
- const method = req.method
- const url = req.url as string
- const headers = req.headers
- const oauth = _oauth(req)
- const query = _query(req)
- const provider = /^\/(.*)\/.*/.exec(url) && /^\/(.*)\/.*/.exec(url)![1]
-
- if (/request_url/.test(url)) {
- callback = oauth.oauth_callback
- buffer(req, (form: any) => {
- if (provider === 'getpocket') {
- callback = form.redirect_uri
- }
- on.request({ url, headers, query, form, oauth })
- provider === 'sellsy'
- ? res.writeHead(200, { 'content-type': 'application/json' })
- : res.writeHead(200, { 'content-type': 'application/x-www-form-urlencoded' })
- provider === 'getpocket'
- ? res.end(qs.stringify({ code: 'code' }))
- : provider === 'sellsy'
- ? res.end(
- 'authentification_url=https://apifeed.sellsy.com/0/login.php&oauth_token=token&oauth_token_secret=secret&oauth_callback_confirmed=true'
- )
- : res.end(qs.stringify({ oauth_token: 'token', oauth_token_secret: 'secret' }))
- })
- } else if (/authorize_url/.test(url)) {
- const location = callback + '?' + qs.stringify({ oauth_token: 'token', oauth_verifier: 'verifier' })
- on.authorize({ url, headers, query })
- res.writeHead(302, { location })
- res.end()
- } else if (/access_url/.test(url)) {
- buffer(req, (form: any) => {
- on.access({ url, headers, query, form, oauth })
- res.writeHead(200, { 'content-type': 'application/json' })
- provider === 'getpocket'
- ? res.end(JSON.stringify({ access_token: 'token' }))
- : res.end(
- JSON.stringify({
- oauth_token: 'token',
- oauth_token_secret: 'secret',
- user_id: provider === 'twitter' ? 'id' : undefined
- })
- )
- })
- } else if (/request_error_message/.test(url)) {
- callback = oauth.oauth_callback
- buffer(req, (form: any) => {
- on.request({ url, headers, query, form, oauth })
- res.writeHead(200, { 'content-type': 'application/x-www-form-urlencoded' })
- res.end(qs.stringify({ error: { message: 'invalid' } }))
- })
- } else if (/request_error_token/.test(url)) {
- callback = oauth.oauth_callback
- buffer(req, (form: any) => {
- on.request({ url, headers, query, form, oauth })
- res.writeHead(200, { 'content-type': 'application/x-www-form-urlencoded' })
- res.end()
- })
- } else if (/request_error_status/.test(url)) {
- callback = oauth.oauth_callback
- buffer(req, (form: any) => {
- on.request({ url, headers, query, form, oauth })
- res.writeHead(500, { 'content-type': 'application/x-www-form-urlencoded' })
- res.end(qs.stringify({ invalid: 'request_url' }))
- })
- } else if (/authorize_error_message/.test(url)) {
- const location = callback + '?' + qs.stringify({ error: { message: 'invalid' } })
- on.authorize({ url, headers, query })
- res.writeHead(302, { location })
- res.end()
- } else if (/authorize_error_token/.test(url)) {
- const location = callback as string
- on.authorize({ url, headers, query })
- res.writeHead(302, { location })
- res.end()
- } else if (/access_error_status/.test(url)) {
- buffer(req, (form: any) => {
- on.access({ url, headers, query, form, oauth })
- res.writeHead(500, { 'content-type': 'application/json' })
- res.end(JSON.stringify({ invalid: 'access_url' }))
- })
- } else if (/profile_url/.test(url)) {
- on.profile({ method, url, query, headers })
- res.writeHead(200, { 'content-type': 'application/json' })
- provider === 'flickr'
- ? res.end('callback({"user": "simov"})')
- : res.end(JSON.stringify({ user: 'simov' }))
- }
- })
- server.listen(port, () => resolve(server))
- })
-
-const oauth2 = (port: number) =>
- new Promise((resolve) => {
- const server = http.createServer()
- let openid: any
- server.on('request', (req, res) => {
- const method = req.method
- const url = req.url as string
- const headers = req.headers
- const query = _query(req) as any
- const provider = /^\/(.*)\/.*/.exec(url) && /^\/(.*)\/.*/.exec(url)![1]
-
- if (/authorize_url/.test(url)) {
- openid = (query.scope || []).includes('openid')
- on.authorize({ provider, method, url, headers, query })
- if (query.response_mode === 'form_post') {
- provider === 'apple'
- ? res.end(
- qs.stringify({
- code: 'code',
- user: { name: { firstName: 'jon', lastName: 'doe' }, email: 'jon@doe.com' }
- })
- )
- : res.end('code')
- return
- }
- const location =
- query.redirect_uri +
- '?' +
- (provider === 'intuit'
- ? qs.stringify({ code: 'code', realmId: '123' })
- : qs.stringify({ code: 'code' }))
- res.writeHead(302, { location })
- res.end()
- } else if (/access_url/.test(url)) {
- buffer(req, (form: any) => {
- on.access({ provider, method, url, headers, query, form })
- res.writeHead(200, { 'content-type': 'application/json' })
- provider === 'concur'
- ? res.end(' token refresh ')
- : provider === 'withings'
- ? res.end(
- JSON.stringify({
- body: {
- access_token: 'token',
- refresh_token: 'refresh',
- expires_in: 3600
- }
- })
- )
- : res.end(
- JSON.stringify({
- access_token: 'token',
- refresh_token: 'refresh',
- expires_in: 3600,
- id_token: openid ? sign({ typ: 'JWT' }, { nonce: 'whatever' }, 'signature') : undefined,
- open_id: provider === 'tiktok' ? 'id' : undefined,
- uid: provider === 'weibo' ? 'id' : undefined,
- openid: provider === 'wechat' ? 'openid' : undefined
- })
- )
- })
- } else if (/authorize_error_message/.test(url)) {
- on.authorize({ url, query, headers })
- const location = query.redirect_uri + '?' + qs.stringify({ error: { message: 'invalid' } })
- res.writeHead(302, { location })
- res.end()
- } else if (/authorize_error_code/.test(url)) {
- on.authorize({ url, query, headers })
- const location = query.redirect_uri as string
- res.writeHead(302, { location })
- res.end()
- } else if (/authorize_error_state_mismatch/.test(url)) {
- on.authorize({ url, query, headers })
- const location = query.redirect_uri + '?' + qs.stringify({ code: 'code', state: 'whatever' })
- res.writeHead(302, { location })
- res.end()
- } else if (/authorize_error_state_missing/.test(url)) {
- on.authorize({ url, query, headers })
- const location = query.redirect_uri + '?' + qs.stringify({ code: 'code' })
- res.writeHead(302, { location })
- res.end()
- } else if (/access_error_nonce_mismatch/.test(url)) {
- buffer(req, (form: any) => {
- on.access({ method, url, query, headers, form })
- res.writeHead(200, { 'content-type': 'application/json' })
- res.end(
- JSON.stringify({
- id_token: sign({ typ: 'JWT' }, { nonce: 'whatever' }, 'signature')
- })
- )
- })
- } else if (/access_error_nonce_missing/.test(url)) {
- buffer(req, (form: any) => {
- on.access({ method, url, query, headers, form })
- res.writeHead(200, { 'content-type': 'application/json' })
- res.end(
- JSON.stringify({
- id_token: sign({ typ: 'JWT' }, {}, 'signature')
- })
- )
- })
- } else if (/access_error_message/.test(url)) {
- buffer(req, (form: any) => {
- on.access({ method, url, query, headers, form })
- res.writeHead(200, { 'content-type': 'application/json' })
- res.end(JSON.stringify({ error: { message: 'invalid' } }))
- })
- } else if (/access_error_status/.test(url)) {
- buffer(req, (form: any) => {
- on.access({ method, url, query, headers, form })
- res.writeHead(500, { 'content-type': 'application/json' })
- res.end(JSON.stringify({ invalid: 'access_url' }))
- })
- } else if (/profile_url/.test(url)) {
- if (method === 'POST') {
- buffer(req, (form: any) => {
- on.profile({ method, url, query, headers, form })
- res.writeHead(200, { 'content-type': 'application/json' })
- res.end(JSON.stringify({ id: 'test', user: 'simov' }))
- })
- } else {
- on.profile({ method, url, query, headers })
- res.writeHead(200, { 'content-type': 'application/json' })
- res.end(JSON.stringify({ id: 'test', user: 'simov' }))
- }
- } else if (/profile_error/.test(url)) {
- on.profile({ method, url, query, headers })
- res.writeHead(400, { 'content-type': 'application/json' })
- res.end(JSON.stringify({ error: { message: 'Not Found' } }))
- }
- })
- server.listen(port, () => resolve(server))
- })
-
-const on = {
- request: (_opts: any) => {},
- authorize: (_opts: any) => {},
- access: (_opts: any) => {},
- profile: (_opts: any) => {}
-}
diff --git a/packages/authentication-oauth/tsconfig.json b/packages/authentication-oauth/tsconfig.json
deleted file mode 100644
index 316fd41336..0000000000
--- a/packages/authentication-oauth/tsconfig.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "extends": "../../tsconfig",
- "include": [
- "src/**/*.ts"
- ],
- "compilerOptions": {
- "outDir": "lib"
- }
-}
diff --git a/packages/authentication/CHANGELOG.md b/packages/authentication/CHANGELOG.md
deleted file mode 100644
index fe93ba4c54..0000000000
--- a/packages/authentication/CHANGELOG.md
+++ /dev/null
@@ -1,1858 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file.
-See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-
-## [5.0.34](https://github.com/feathersjs/feathers/compare/v5.0.33...v5.0.34) (2025-05-03)
-
-### Bug Fixes
-
-- Update dependencies ([#3584](https://github.com/feathersjs/feathers/issues/3584)) ([119fa4e](https://github.com/feathersjs/feathers/commit/119fa4e1ade8b0078aa235083d566e2538b3a084))
-
-## [5.0.33](https://github.com/feathersjs/feathers/compare/v5.0.32...v5.0.33) (2025-02-24)
-
-### Bug Fixes
-
-- **dependencies:** Update dependencies ([#3571](https://github.com/feathersjs/feathers/issues/3571)) ([ad611cb](https://github.com/feathersjs/feathers/commit/ad611cb6ffb1dc31d603ba5817331318c5a23217))
-
-## [5.0.32](https://github.com/feathersjs/feathers/compare/v5.0.31...v5.0.32) (2025-02-01)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.31](https://github.com/feathersjs/feathers/compare/v5.0.30...v5.0.31) (2024-10-31)
-
-### Bug Fixes
-
-- **dependencies:** Update all dependencies ([#3545](https://github.com/feathersjs/feathers/issues/3545)) ([221b92b](https://github.com/feathersjs/feathers/commit/221b92bb0ee5d54fb1036742968797cb02e56da2))
-
-## [5.0.30](https://github.com/feathersjs/feathers/compare/v5.0.29...v5.0.30) (2024-09-02)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.29](https://github.com/feathersjs/feathers/compare/v5.0.28...v5.0.29) (2024-07-10)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.28](https://github.com/feathersjs/feathers/compare/v5.0.27...v5.0.28) (2024-07-10)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.27](https://github.com/feathersjs/feathers/compare/v5.0.26...v5.0.27) (2024-06-18)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.26](https://github.com/feathersjs/feathers/compare/v5.0.25...v5.0.26) (2024-06-09)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.25](https://github.com/feathersjs/feathers/compare/v5.0.24...v5.0.25) (2024-05-03)
-
-### Bug Fixes
-
-- Reduce usage of lodash ([#3455](https://github.com/feathersjs/feathers/issues/3455)) ([8ce807a](https://github.com/feathersjs/feathers/commit/8ce807a5ca53ff5b8d5107a0656c6329404e6e6c))
-
-## [5.0.24](https://github.com/feathersjs/feathers/compare/v5.0.23...v5.0.24) (2024-03-13)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.23](https://github.com/feathersjs/feathers/compare/v5.0.22...v5.0.23) (2024-02-25)
-
-### Bug Fixes
-
-- **core:** Update to latest feathersjs/hooks ([#3434](https://github.com/feathersjs/feathers/issues/3434)) ([1499ccc](https://github.com/feathersjs/feathers/commit/1499ccc41fb3ebba97b2c84e0cb19bc48ad3c651))
-
-## [5.0.22](https://github.com/feathersjs/feathers/compare/v5.0.21...v5.0.22) (2024-02-15)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.21](https://github.com/feathersjs/feathers/compare/v5.0.20...v5.0.21) (2024-01-25)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.20](https://github.com/feathersjs/feathers/compare/v5.0.19...v5.0.20) (2024-01-24)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.19](https://github.com/feathersjs/feathers/compare/v5.0.18...v5.0.19) (2024-01-23)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.18](https://github.com/feathersjs/feathers/compare/v5.0.17...v5.0.18) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.17](https://github.com/feathersjs/feathers/compare/v5.0.16...v5.0.17) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.16](https://github.com/feathersjs/feathers/compare/v5.0.15...v5.0.16) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.15](https://github.com/feathersjs/feathers/compare/v5.0.14...v5.0.15) (2024-01-22)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.14](https://github.com/feathersjs/feathers/compare/v5.0.13...v5.0.14) (2024-01-05)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.13](https://github.com/feathersjs/feathers/compare/v5.0.12...v5.0.13) (2023-12-29)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.12](https://github.com/feathersjs/feathers/compare/v5.0.11...v5.0.12) (2023-11-28)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.11](https://github.com/feathersjs/feathers/compare/v5.0.10...v5.0.11) (2023-10-11)
-
-### Bug Fixes
-
-- **knex:** Update all dependencies and Knex peer ([#3308](https://github.com/feathersjs/feathers/issues/3308)) ([d2f9860](https://github.com/feathersjs/feathers/commit/d2f986036c4741cce2339d8abbcc6b2eb037a12a))
-
-## [5.0.10](https://github.com/feathersjs/feathers/compare/v5.0.9...v5.0.10) (2023-10-03)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.9](https://github.com/feathersjs/feathers/compare/v5.0.8...v5.0.9) (2023-09-27)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.8](https://github.com/feathersjs/feathers/compare/v5.0.7...v5.0.8) (2023-07-19)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.7](https://github.com/feathersjs/feathers/compare/v5.0.6...v5.0.7) (2023-07-14)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.6](https://github.com/feathersjs/feathers/compare/v5.0.5...v5.0.6) (2023-06-15)
-
-### Bug Fixes
-
-- **authentication:** Export JwtVerifyOptions ([#3214](https://github.com/feathersjs/feathers/issues/3214)) ([d59896e](https://github.com/feathersjs/feathers/commit/d59896eb0229f1490c712f19cf84eb2bcf123698))
-
-## [5.0.5](https://github.com/feathersjs/feathers/compare/v5.0.4...v5.0.5) (2023-04-28)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [5.0.4](https://github.com/feathersjs/feathers/compare/v5.0.3...v5.0.4) (2023-04-12)
-
-### Bug Fixes
-
-- Make sure all Readme files are up to date ([#3154](https://github.com/feathersjs/feathers/issues/3154)) ([a5f0b38](https://github.com/feathersjs/feathers/commit/a5f0b38bbf2a11486415a39533bcc6c67fb51e3e))
-
-## [5.0.3](https://github.com/feathersjs/feathers/compare/v5.0.2...v5.0.3) (2023-04-05)
-
-### Bug Fixes
-
-- **dependencies:** Update all dependencies ([#3139](https://github.com/feathersjs/feathers/issues/3139)) ([f24276e](https://github.com/feathersjs/feathers/commit/f24276e9a909e2e58a0730c730258ce1f70f4028))
-
-## [5.0.1](https://github.com/feathersjs/feathers/compare/v5.0.0...v5.0.1) (2023-03-15)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.38...v5.0.0) (2023-02-24)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.38](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.37...v5.0.0-pre.38) (2023-02-17)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.37](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.36...v5.0.0-pre.37) (2023-02-09)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.36](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.35...v5.0.0-pre.36) (2023-01-29)
-
-### Bug Fixes
-
-- Update all dependencies ([#3024](https://github.com/feathersjs/feathers/issues/3024)) ([283dc47](https://github.com/feathersjs/feathers/commit/283dc4798d85584bc031e6e54b83b4ea77d1edd0))
-
-# [5.0.0-pre.35](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.34...v5.0.0-pre.35) (2023-01-12)
-
-### Features
-
-- **generators:** Move core code generators to shared generators package ([#2982](https://github.com/feathersjs/feathers/issues/2982)) ([0328d22](https://github.com/feathersjs/feathers/commit/0328d2292153870bc43958f73d2c6f288a8cec17))
-
-# [5.0.0-pre.34](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.33...v5.0.0-pre.34) (2022-12-14)
-
-### Bug Fixes
-
-- **authentication:** Fix order of connection and login event handling ([#2909](https://github.com/feathersjs/feathers/issues/2909)) ([801a503](https://github.com/feathersjs/feathers/commit/801a503425062e27f2a32b91493b6ffae3822626))
-- **core:** `context.type` for around hooks ([#2890](https://github.com/feathersjs/feathers/issues/2890)) ([d606ac6](https://github.com/feathersjs/feathers/commit/d606ac660fd5335c95206784fea36530dd2e851a))
-
-### Features
-
-- **schema:** Virtual property resolvers ([#2900](https://github.com/feathersjs/feathers/issues/2900)) ([7d03b57](https://github.com/feathersjs/feathers/commit/7d03b57ae2f633bdd4a368e0d5955011fbd6c329))
-
-# [5.0.0-pre.33](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.32...v5.0.0-pre.33) (2022-11-08)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.32](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.31...v5.0.0-pre.32) (2022-10-26)
-
-### Bug Fixes
-
-- **authentication:** Improve logout and disconnect connection handling ([#2813](https://github.com/feathersjs/feathers/issues/2813)) ([dd77379](https://github.com/feathersjs/feathers/commit/dd77379d8bdcd32d529bef912e672639e4899823))
-
-# [5.0.0-pre.31](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.30...v5.0.0-pre.31) (2022-10-12)
-
-### Features
-
-- **cli:** Generate full client test suite and improve typed client ([#2788](https://github.com/feathersjs/feathers/issues/2788)) ([57119b6](https://github.com/feathersjs/feathers/commit/57119b6bb2797f7297cf054268a248c093ecd538))
-
-# [5.0.0-pre.30](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.29...v5.0.0-pre.30) (2022-10-07)
-
-### Features
-
-- **core:** Allow to unregister services at runtime ([#2756](https://github.com/feathersjs/feathers/issues/2756)) ([d16601f](https://github.com/feathersjs/feathers/commit/d16601f2277dca5357866ffdefba2a611f6dc7fa))
-- **schema:** Make schemas validation library independent and add TypeBox support ([#2772](https://github.com/feathersjs/feathers/issues/2772)) ([44172d9](https://github.com/feathersjs/feathers/commit/44172d99b566d11d9ceda04f1d0bf72b6d05ce76))
-
-# [5.0.0-pre.29](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.28...v5.0.0-pre.29) (2022-09-16)
-
-### Features
-
-- **authentication-oauth:** Koa and transport independent oAuth authentication ([#2737](https://github.com/feathersjs/feathers/issues/2737)) ([9231525](https://github.com/feathersjs/feathers/commit/9231525a24bb790ba9c5d940f2867a9c727691c9))
-
-# [5.0.0-pre.28](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.27...v5.0.0-pre.28) (2022-08-03)
-
-### Bug Fixes
-
-- **cli:** Improve generated application and client ([#2701](https://github.com/feathersjs/feathers/issues/2701)) ([bd55ffb](https://github.com/feathersjs/feathers/commit/bd55ffb812e89bf215f4515e7f137656ea888c3f))
-
-# [5.0.0-pre.27](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.26...v5.0.0-pre.27) (2022-07-13)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.26](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.25...v5.0.0-pre.26) (2022-06-22)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.25](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.24...v5.0.0-pre.25) (2022-06-22)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.24](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.23...v5.0.0-pre.24) (2022-06-21)
-
-### Bug Fixes
-
-- **authentication:** Add safe dispatch data for authentication requests ([#2662](https://github.com/feathersjs/feathers/issues/2662)) ([d8104a1](https://github.com/feathersjs/feathers/commit/d8104a19ee9181e6a5ea81014af29ff9a3c28a8a))
-
-# [5.0.0-pre.23](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.22...v5.0.0-pre.23) (2022-06-06)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.22](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.21...v5.0.0-pre.22) (2022-05-24)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.21](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.20...v5.0.0-pre.21) (2022-05-23)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.20](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.19...v5.0.0-pre.20) (2022-05-04)
-
-### Bug Fixes
-
-- **dependencies:** Lock monorepo package version numbers ([#2623](https://github.com/feathersjs/feathers/issues/2623)) ([5640c10](https://github.com/feathersjs/feathers/commit/5640c1020cc139994e695d658c08bad3494db507))
-
-# [5.0.0-pre.19](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.18...v5.0.0-pre.19) (2022-05-01)
-
-### Features
-
-- **typescript:** Improve adapter typings ([#2605](https://github.com/feathersjs/feathers/issues/2605)) ([3b2ca0a](https://github.com/feathersjs/feathers/commit/3b2ca0a6a8e03e8390272c4d7e930b4bffdaacf5))
-- **typescript:** Improve params and query typeability ([#2600](https://github.com/feathersjs/feathers/issues/2600)) ([df28b76](https://github.com/feathersjs/feathers/commit/df28b7619161f1df5e700326f52cca1a92dc5d28))
-
-# [5.0.0-pre.18](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.17...v5.0.0-pre.18) (2022-04-11)
-
-### Features
-
-- **authentication:** Add setup method for auth strategies ([#1611](https://github.com/feathersjs/feathers/issues/1611)) ([a3c3581](https://github.com/feathersjs/feathers/commit/a3c35814dccdbbf6de96f04f60b226ce206c6dbe))
-- **configuration:** Allow app configuration to be validated against a schema ([#2590](https://github.com/feathersjs/feathers/issues/2590)) ([a268f86](https://github.com/feathersjs/feathers/commit/a268f86da92a8ada14ed11ab456aac0a4bba5bb0))
-
-# [5.0.0-pre.17](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.16...v5.0.0-pre.17) (2022-02-15)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.16](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.15...v5.0.0-pre.16) (2022-01-12)
-
-### Features
-
-- **express, koa:** make transports similar ([#2486](https://github.com/feathersjs/feathers/issues/2486)) ([26aa937](https://github.com/feathersjs/feathers/commit/26aa937c114fb8596dfefc599b1f53cead69c159))
-
-# [5.0.0-pre.15](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.14...v5.0.0-pre.15) (2021-11-27)
-
-### Bug Fixes
-
-- **typescript:** Overall typing improvements ([#2478](https://github.com/feathersjs/feathers/issues/2478)) ([b8eb804](https://github.com/feathersjs/feathers/commit/b8eb804158556d9651a8607e3c3fda15e0bfd110))
-
-### Features
-
-- **authentication-oauth:** Allow dynamic oAuth redirect ([#2469](https://github.com/feathersjs/feathers/issues/2469)) ([b7143d4](https://github.com/feathersjs/feathers/commit/b7143d4c0fbe961e714f79512be04449b9bbd7d9))
-
-# [5.0.0-pre.14](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.13...v5.0.0-pre.14) (2021-10-13)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.13](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.12...v5.0.0-pre.13) (2021-10-13)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.12](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.11...v5.0.0-pre.12) (2021-10-12)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.11](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.10...v5.0.0-pre.11) (2021-10-06)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.10](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.9...v5.0.0-pre.10) (2021-09-19)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.9](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.8...v5.0.0-pre.9) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.8](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.7...v5.0.0-pre.8) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.7](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.6...v5.0.0-pre.7) (2021-08-09)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.6](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.5...v5.0.0-pre.6) (2021-08-08)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.5](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.4...v5.0.0-pre.5) (2021-06-23)
-
-### Bug Fixes
-
-- **hooks:** Migrate built-in hooks and allow backwards compatibility ([#2358](https://github.com/feathersjs/feathers/issues/2358)) ([759c5a1](https://github.com/feathersjs/feathers/commit/759c5a19327a731af965c3604119393b3d09a406))
-- **koa:** Use extended query parser for compatibility ([#2397](https://github.com/feathersjs/feathers/issues/2397)) ([b2944ba](https://github.com/feathersjs/feathers/commit/b2944bac3ec6d5ecc80dc518cd4e58093692db74))
-
-### Features
-
-- **adapter-commons:** Add support for params.adapter option and move memory adapter to @feathersjs/memory ([#2367](https://github.com/feathersjs/feathers/issues/2367)) ([a43e7da](https://github.com/feathersjs/feathers/commit/a43e7da22b6b981a96d1321736ea9a0cb924fb4f))
-
-# [5.0.0-pre.4](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.3...v5.0.0-pre.4) (2021-05-13)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.3](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.2...v5.0.0-pre.3) (2021-04-21)
-
-### Bug Fixes
-
-- **typescript:** Improve TypeScript backwards compatibility ([#2310](https://github.com/feathersjs/feathers/issues/2310)) ([f33be73](https://github.com/feathersjs/feathers/commit/f33be73fc46a533efb15df9aab0658e3240d3897))
-
-### Features
-
-- **dependencies:** Remove direct debug dependency ([#2296](https://github.com/feathersjs/feathers/issues/2296)) ([501d416](https://github.com/feathersjs/feathers/commit/501d4164d30c6a126906dc640cdfdc82207ba34a))
-
-# [5.0.0-pre.2](https://github.com/feathersjs/feathers/compare/v5.0.0-beta.1...v5.0.0-pre.2) (2021-04-06)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-beta.1](https://github.com/feathersjs/feathers/compare/v5.0.0-beta.0...v5.0.0-beta.1) (2021-04-03)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-beta.0](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.1...v5.0.0-beta.0) (2021-03-28)
-
-### Bug Fixes
-
-- Update Grant usage and other dependencies ([#2264](https://github.com/feathersjs/feathers/issues/2264)) ([7b0f8fa](https://github.com/feathersjs/feathers/commit/7b0f8fad252419ed0ad0bf259cdf3104d322ab60))
-
-### Features
-
-- Application service types default to any ([#1566](https://github.com/feathersjs/feathers/issues/1566)) ([d93ba9a](https://github.com/feathersjs/feathers/commit/d93ba9a17edd20d3397bb00f4f6e82e804e42ed6))
-- Feathers v5 core refactoring and features ([#2255](https://github.com/feathersjs/feathers/issues/2255)) ([2dafb7c](https://github.com/feathersjs/feathers/commit/2dafb7ce14ba57406aeec13d10ca45b1e709bee9))
-
-# [5.0.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.5.11...v5.0.0-pre.1) (2020-12-17)
-
-# [5.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v4.5.4...v5.0.0-pre.0) (2020-05-19)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [5.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v4.5.4...v5.0.0-pre.0) (2020-05-19)
-
-## [4.5.11](https://github.com/feathersjs/feathers/compare/v4.5.10...v4.5.11) (2020-12-05)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [4.5.10](https://github.com/feathersjs/feathers/compare/v4.5.9...v4.5.10) (2020-11-08)
-
-### Bug Fixes
-
-- **authentication:** consistent response return between local and jwt strategy ([#2042](https://github.com/feathersjs/feathers/issues/2042)) ([8d25be1](https://github.com/feathersjs/feathers/commit/8d25be101a2593a9e789375c928a07780b9e28cf))
-
-## [4.5.9](https://github.com/feathersjs/feathers/compare/v4.5.8...v4.5.9) (2020-10-09)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [4.5.8](https://github.com/feathersjs/feathers/compare/v4.5.7...v4.5.8) (2020-08-12)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [4.5.7](https://github.com/feathersjs/feathers/compare/v4.5.6...v4.5.7) (2020-07-24)
-
-### Bug Fixes
-
-- **authentication:** Add JWT getEntityQuery ([#2013](https://github.com/feathersjs/feathers/issues/2013)) ([e0e7fb5](https://github.com/feathersjs/feathers/commit/e0e7fb5162940fe776731283b40026c61d9c8a33))
-
-## [4.5.6](https://github.com/feathersjs/feathers/compare/v4.5.5...v4.5.6) (2020-07-12)
-
-### Bug Fixes
-
-- **authentication:** Omit query in JWT strategy ([#2011](https://github.com/feathersjs/feathers/issues/2011)) ([04ce7e9](https://github.com/feathersjs/feathers/commit/04ce7e98515fe9d495cd0e83e0da097e9bcd7382))
-
-## [4.5.5](https://github.com/feathersjs/feathers/compare/v4.5.4...v4.5.5) (2020-07-11)
-
-### Bug Fixes
-
-- **authentication:** Include query params when authenticating via authenticate hook [#2009](https://github.com/feathersjs/feathers/issues/2009) ([4cdb7bf](https://github.com/feathersjs/feathers/commit/4cdb7bf2898385ddac7a1692bc9ac2f6cf5ad446))
-
-## [4.5.3](https://github.com/feathersjs/feathers/compare/v4.5.2...v4.5.3) (2020-04-17)
-
-### Bug Fixes
-
-- **authentication:** Remove entity from connection information on logout ([#1889](https://github.com/feathersjs/feathers/issues/1889)) ([b062753](https://github.com/feathersjs/feathers/commit/b0627530d61babe15dd84369d3093ccae4b780ca))
-
-## [4.5.2](https://github.com/feathersjs/feathers/compare/v4.5.1...v4.5.2) (2020-03-04)
-
-### Bug Fixes
-
-- **authentication:** Improve JWT strategy configuration error message ([#1844](https://github.com/feathersjs/feathers/issues/1844)) ([2c771db](https://github.com/feathersjs/feathers/commit/2c771dbb22d53d4f7de3c3f514e57afa1a186322))
-
-## [4.5.1](https://github.com/feathersjs/feathers/compare/v4.5.0...v4.5.1) (2020-01-24)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [4.5.0](https://github.com/feathersjs/feathers/compare/v4.4.3...v4.5.0) (2020-01-18)
-
-### Bug Fixes
-
-- Add `params.authentication` type, remove `hook.connection` type ([#1732](https://github.com/feathersjs/feathers/issues/1732)) ([d46b7b2](https://github.com/feathersjs/feathers/commit/d46b7b2abac8862c0e4dbfce20d71b8b8a96692f))
-
-## [4.4.3](https://github.com/feathersjs/feathers/compare/v4.4.1...v4.4.3) (2019-12-06)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [4.4.1](https://github.com/feathersjs/feathers/compare/v4.4.0...v4.4.1) (2019-11-27)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [4.4.0](https://github.com/feathersjs/feathers/compare/v4.3.11...v4.4.0) (2019-11-27)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [4.3.11](https://github.com/feathersjs/feathers/compare/v4.3.10...v4.3.11) (2019-11-11)
-
-### Bug Fixes
-
-- **authentication:** Retain object references in authenticate hook ([#1675](https://github.com/feathersjs/feathers/issues/1675)) ([e1939be](https://github.com/feathersjs/feathers/commit/e1939be19d4e79d3f5e2fe69ba894a11c627ae99))
-
-## [4.3.10](https://github.com/feathersjs/feathers/compare/v4.3.9...v4.3.10) (2019-10-26)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [4.3.9](https://github.com/feathersjs/feathers/compare/v4.3.8...v4.3.9) (2019-10-26)
-
-### Bug Fixes
-
-- Add jsonwebtoken TypeScript type dependency ([317c80a](https://github.com/feathersjs/feathers/commit/317c80a9205e8853bb830a12c3aa1a19e95f9abc))
-- Small type improvements ([#1624](https://github.com/feathersjs/feathers/issues/1624)) ([50162c6](https://github.com/feathersjs/feathers/commit/50162c6e562f0a47c6a280c4f01fff7c3afee293))
-
-## [4.3.7](https://github.com/feathersjs/feathers/compare/v4.3.6...v4.3.7) (2019-10-14)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [4.3.5](https://github.com/feathersjs/feathers/compare/v4.3.4...v4.3.5) (2019-10-07)
-
-### Bug Fixes
-
-- Authentication type improvements and timeout fix ([#1605](https://github.com/feathersjs/feathers/issues/1605)) ([19854d3](https://github.com/feathersjs/feathers/commit/19854d3))
-- Improve error message when authentication strategy is not allowed ([#1600](https://github.com/feathersjs/feathers/issues/1600)) ([317a312](https://github.com/feathersjs/feathers/commit/317a312))
-
-## [4.3.4](https://github.com/feathersjs/feathers/compare/v4.3.3...v4.3.4) (2019-10-03)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [4.3.3](https://github.com/feathersjs/feathers/compare/v4.3.2...v4.3.3) (2019-09-21)
-
-### Bug Fixes
-
-- check for undefined access token ([#1571](https://github.com/feathersjs/feathers/issues/1571)) ([976369d](https://github.com/feathersjs/feathers/commit/976369d))
-- Small improvements in dependencies and code sturcture ([#1562](https://github.com/feathersjs/feathers/issues/1562)) ([42c13e2](https://github.com/feathersjs/feathers/commit/42c13e2))
-
-## [4.3.2](https://github.com/feathersjs/feathers/compare/v4.3.1...v4.3.2) (2019-09-16)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-## [4.3.1](https://github.com/feathersjs/feathers/compare/v4.3.0...v4.3.1) (2019-09-09)
-
-### Bug Fixes
-
-- Use long-timeout for JWT expiration timers ([#1552](https://github.com/feathersjs/feathers/issues/1552)) ([65637ec](https://github.com/feathersjs/feathers/commit/65637ec))
-
-# [4.3.0](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.4...v4.3.0) (2019-08-27)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [4.3.0-pre.4](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.3...v4.3.0-pre.4) (2019-08-22)
-
-### Bug Fixes
-
-- Fix auth publisher mistake ([08bad61](https://github.com/feathersjs/feathers/commit/08bad61))
-
-# [4.3.0-pre.3](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.2...v4.3.0-pre.3) (2019-08-19)
-
-### Bug Fixes
-
-- Expire and remove authenticated real-time connections ([#1512](https://github.com/feathersjs/feathers/issues/1512)) ([2707c33](https://github.com/feathersjs/feathers/commit/2707c33))
-- Update all dependencies ([7d53a00](https://github.com/feathersjs/feathers/commit/7d53a00))
-
-### Features
-
-- Let strategies handle the connection ([#1510](https://github.com/feathersjs/feathers/issues/1510)) ([4329feb](https://github.com/feathersjs/feathers/commit/4329feb))
-
-# [4.3.0-pre.2](https://github.com/feathersjs/feathers/compare/v4.3.0-pre.1...v4.3.0-pre.2) (2019-08-02)
-
-### Bug Fixes
-
-- Add getEntityId to JWT strategy and fix legacy Socket authentication ([#1488](https://github.com/feathersjs/feathers/issues/1488)) ([9a3b324](https://github.com/feathersjs/feathers/commit/9a3b324))
-- Add method to reliably get default authentication service ([#1470](https://github.com/feathersjs/feathers/issues/1470)) ([e542cb3](https://github.com/feathersjs/feathers/commit/e542cb3))
-
-# [4.3.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.5...v4.3.0-pre.1) (2019-07-11)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [4.0.0-pre.5](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.4...v4.0.0-pre.5) (2019-07-10)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-# [4.0.0-pre.4](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.3...v4.0.0-pre.4) (2019-07-05)
-
-### Bug Fixes
-
-- Updated typings for ServiceMethods ([#1409](https://github.com/feathersjs/feathers/issues/1409)) ([b5ee7e2](https://github.com/feathersjs/feathers/commit/b5ee7e2))
-
-# [4.0.0-pre.3](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.2...v4.0.0-pre.3) (2019-06-01)
-
-### Bug Fixes
-
-- Make oAuth paths more consistent and improve authentication client ([#1377](https://github.com/feathersjs/feathers/issues/1377)) ([adb2543](https://github.com/feathersjs/feathers/commit/adb2543))
-- Set authenticated: true after successful authentication ([#1367](https://github.com/feathersjs/feathers/issues/1367)) ([9918cff](https://github.com/feathersjs/feathers/commit/9918cff))
-- Typings fix and improvements. ([#1364](https://github.com/feathersjs/feathers/issues/1364)) ([515b916](https://github.com/feathersjs/feathers/commit/515b916))
-- Update dependencies and fix tests ([#1373](https://github.com/feathersjs/feathers/issues/1373)) ([d743a7f](https://github.com/feathersjs/feathers/commit/d743a7f))
-
-# [4.0.0-pre.2](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.1...v4.0.0-pre.2) (2019-05-15)
-
-### Bug Fixes
-
-- Throw NotAuthenticated on token verification errors ([#1357](https://github.com/feathersjs/feathers/issues/1357)) ([e0120df](https://github.com/feathersjs/feathers/commit/e0120df))
-
-# [4.0.0-pre.1](https://github.com/feathersjs/feathers/compare/v4.0.0-pre.0...v4.0.0-pre.1) (2019-05-08)
-
-### Bug Fixes
-
-- Always require strategy parameter in authentication ([#1327](https://github.com/feathersjs/feathers/issues/1327)) ([d4a8021](https://github.com/feathersjs/feathers/commit/d4a8021))
-- Bring back params.authenticated ([#1317](https://github.com/feathersjs/feathers/issues/1317)) ([a0ffd5e](https://github.com/feathersjs/feathers/commit/a0ffd5e))
-- Improve authentication parameter handling ([#1333](https://github.com/feathersjs/feathers/issues/1333)) ([6e77204](https://github.com/feathersjs/feathers/commit/6e77204))
-- Merge httpStrategies and authStrategies option ([#1308](https://github.com/feathersjs/feathers/issues/1308)) ([afa4d55](https://github.com/feathersjs/feathers/commit/afa4d55))
-- Rename jwtStrategies option to authStrategies ([#1305](https://github.com/feathersjs/feathers/issues/1305)) ([4aee151](https://github.com/feathersjs/feathers/commit/4aee151))
-
-### Features
-
-- Change and *JWT methods to *accessToken ([#1304](https://github.com/feathersjs/feathers/issues/1304)) ([5ac826b](https://github.com/feathersjs/feathers/commit/5ac826b))
-
-# [4.0.0-pre.0](https://github.com/feathersjs/feathers/compare/v3.2.0-pre.1...v4.0.0-pre.0) (2019-04-21)
-
-### Bug Fixes
-
-- Added path and method in to express request for passport ([#1112](https://github.com/feathersjs/feathers/issues/1112)) ([afa1cb4](https://github.com/feathersjs/feathers/commit/afa1cb4))
-- Authentication core improvements ([#1260](https://github.com/feathersjs/feathers/issues/1260)) ([c5dc7a2](https://github.com/feathersjs/feathers/commit/c5dc7a2))
-- Improve JWT authentication option handling ([#1261](https://github.com/feathersjs/feathers/issues/1261)) ([31b956b](https://github.com/feathersjs/feathers/commit/31b956b))
-- Make Mocha a proper devDependency for every repository ([#1053](https://github.com/feathersjs/feathers/issues/1053)) ([9974803](https://github.com/feathersjs/feathers/commit/9974803))
-- Only merge authenticated property on update ([8a564f7](https://github.com/feathersjs/feathers/commit/8a564f7))
-- reduce authentication connection hook complexity and remove unnecessary checks ([fa94b2f](https://github.com/feathersjs/feathers/commit/fa94b2f))
-- Update all dependencies to latest ([#1206](https://github.com/feathersjs/feathers/issues/1206)) ([e51e0f6](https://github.com/feathersjs/feathers/commit/e51e0f6))
-- **authentication:** Fall back when req.app is not the application when emitting events ([#1185](https://github.com/feathersjs/feathers/issues/1185)) ([6a534f0](https://github.com/feathersjs/feathers/commit/6a534f0))
-- Update adapter common tests ([#1135](https://github.com/feathersjs/feathers/issues/1135)) ([8166dda](https://github.com/feathersjs/feathers/commit/8166dda))
-- **docs/new-features:** syntax highlighting ([#347](https://github.com/feathersjs/feathers/issues/347)) ([4ab7c95](https://github.com/feathersjs/feathers/commit/4ab7c95))
-- **package:** update @feathersjs/commons to version 2.0.0 ([#692](https://github.com/feathersjs/feathers/issues/692)) ([ca665ab](https://github.com/feathersjs/feathers/commit/ca665ab))
-- **package:** update debug to version 3.0.0 ([#555](https://github.com/feathersjs/feathers/issues/555)) ([f788804](https://github.com/feathersjs/feathers/commit/f788804))
-- **package:** update jsonwebtoken to version 8.0.0 ([#567](https://github.com/feathersjs/feathers/issues/567)) ([6811626](https://github.com/feathersjs/feathers/commit/6811626))
-- **package:** update ms to version 2.0.0 ([#509](https://github.com/feathersjs/feathers/issues/509)) ([7e4b0b6](https://github.com/feathersjs/feathers/commit/7e4b0b6))
-- **package:** update passport to version 0.4.0 ([#558](https://github.com/feathersjs/feathers/issues/558)) ([dcb14a5](https://github.com/feathersjs/feathers/commit/dcb14a5))
-
-### Features
-
-- @feathersjs/authentication-oauth ([#1299](https://github.com/feathersjs/feathers/issues/1299)) ([656bae7](https://github.com/feathersjs/feathers/commit/656bae7))
-- Add AuthenticationBaseStrategy and make authentication option handling more explicit ([#1284](https://github.com/feathersjs/feathers/issues/1284)) ([2667d92](https://github.com/feathersjs/feathers/commit/2667d92))
-- Add TypeScript definitions ([#1275](https://github.com/feathersjs/feathers/issues/1275)) ([9dd6713](https://github.com/feathersjs/feathers/commit/9dd6713))
-- Authentication v3 core server implementation ([#1205](https://github.com/feathersjs/feathers/issues/1205)) ([1bd7591](https://github.com/feathersjs/feathers/commit/1bd7591))
-- Authentication v3 local authentication ([#1211](https://github.com/feathersjs/feathers/issues/1211)) ([0fa5f7c](https://github.com/feathersjs/feathers/commit/0fa5f7c))
-- Remove (hook, next) signature and SKIP support ([#1269](https://github.com/feathersjs/feathers/issues/1269)) ([211c0f8](https://github.com/feathersjs/feathers/commit/211c0f8))
-- Support params symbol to skip authenticate hook ([#1296](https://github.com/feathersjs/feathers/issues/1296)) ([d16cf4d](https://github.com/feathersjs/feathers/commit/d16cf4d))
-
-### BREAKING CHANGES
-
-- Update authentication strategies for @feathersjs/authentication v3
-
-## [2.1.16](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication@2.1.15...@feathersjs/authentication@2.1.16) (2019-01-26)
-
-### Bug Fixes
-
-- **authentication:** Fall back when req.app is not the application when emitting events ([#1185](https://github.com/feathersjs/feathers/issues/1185)) ([6a534f0](https://github.com/feathersjs/feathers/commit/6a534f0))
-
-## [2.1.15](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication@2.1.14...@feathersjs/authentication@2.1.15) (2019-01-02)
-
-### Bug Fixes
-
-- Update adapter common tests ([#1135](https://github.com/feathersjs/feathers/issues/1135)) ([8166dda](https://github.com/feathersjs/feathers/commit/8166dda))
-
-
-
-## [2.1.14](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication@2.1.13...@feathersjs/authentication@2.1.14) (2018-12-16)
-
-### Bug Fixes
-
-- Added path and method in to express request for passport ([#1112](https://github.com/feathersjs/feathers/issues/1112)) ([afa1cb4](https://github.com/feathersjs/feathers/commit/afa1cb4))
-
-
-
-## [2.1.13](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication@2.1.12...@feathersjs/authentication@2.1.13) (2018-10-26)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-
-
-## [2.1.12](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication@2.1.11...@feathersjs/authentication@2.1.12) (2018-10-25)
-
-### Bug Fixes
-
-- Make Mocha a proper devDependency for every repository ([#1053](https://github.com/feathersjs/feathers/issues/1053)) ([9974803](https://github.com/feathersjs/feathers/commit/9974803))
-- Only merge authenticated property on update ([8a564f7](https://github.com/feathersjs/feathers/commit/8a564f7))
-
-
-
-## [2.1.11](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication@2.1.10...@feathersjs/authentication@2.1.11) (2018-09-21)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-
-
-## [2.1.10](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication@2.1.9...@feathersjs/authentication@2.1.10) (2018-09-17)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-
-
-## [2.1.9](https://github.com/feathersjs/feathers/compare/@feathersjs/authentication@2.1.8...@feathersjs/authentication@2.1.9) (2018-09-02)
-
-**Note:** Version bump only for package @feathersjs/authentication
-
-
-
-## 2.1.8
-
-- Migrate to Monorepo ([feathers#462](https://github.com/feathersjs/feathers/issues/462))
-
-## [v2.1.7](https://github.com/feathersjs/authentication/tree/v2.1.7) (2018-06-29)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v2.1.6...v2.1.7)
-
-**Fixed bugs:**
-
-- XXXOrRestrict undermines provider \(security\) logic [\#395](https://github.com/feathersjs/authentication/issues/395)
-
-**Closed issues:**
-
-- Customize response of authentication service [\#679](https://github.com/feathersjs/authentication/issues/679)
-- hook.params.user is null using REST [\#678](https://github.com/feathersjs/authentication/issues/678)
-- Can't store JWT token to cookie on REST client [\#676](https://github.com/feathersjs/authentication/issues/676)
-- Is there a way to get req.user without using the authentication middleware? [\#675](https://github.com/feathersjs/authentication/issues/675)
-
-**Merged pull requests:**
-
-- Remove subject from the JWT verification options [\#686](https://github.com/feathersjs/authentication/pull/686) ([rasendubi](https://github.com/rasendubi))
-- Replaced feathers.static with express.static [\#685](https://github.com/feathersjs/authentication/pull/685) ([georgehorrell](https://github.com/georgehorrell))
-- Remove dependency on Express and Express middleware [\#683](https://github.com/feathersjs/authentication/pull/683) ([daffl](https://github.com/daffl))
-- Update sinon to the latest version 🚀 [\#681](https://github.com/feathersjs/authentication/pull/681) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v2.1.6](https://github.com/feathersjs/authentication/tree/v2.1.6) (2018-06-01)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v2.1.5...v2.1.6)
-
-**Closed issues:**
-
-- Authentication local strategy not working with a Custom User service [\#672](https://github.com/feathersjs/authentication/issues/672)
-- CLI command bug: 'Feathers generate authentication' produces bad working 'users' service [\#670](https://github.com/feathersjs/authentication/issues/670)
-- config\default.json generated without callbackURL config needed to set redirect URL for Google Outh2 [\#669](https://github.com/feathersjs/authentication/issues/669)
-- HELP WANTED: Authentication strategy 'jwt' is not registered. [\#668](https://github.com/feathersjs/authentication/issues/668)
-- Authenticate shows error: No auth token [\#667](https://github.com/feathersjs/authentication/issues/667)
-- authentication - Method: remove [\#662](https://github.com/feathersjs/authentication/issues/662)
-- NotAuthenticated: jwt expired [\#633](https://github.com/feathersjs/authentication/issues/633)
-- Authentication via phone number [\#616](https://github.com/feathersjs/authentication/issues/616)
-- Persist auth tokens on db [\#569](https://github.com/feathersjs/authentication/issues/569)
-- Tighter integration with feathers-authentication-management [\#393](https://github.com/feathersjs/authentication/issues/393)
-
-**Merged pull requests:**
-
-- Fix tests to work with latest Sinon [\#674](https://github.com/feathersjs/authentication/pull/674) ([daffl](https://github.com/daffl))
-- add option to allowUnauthenticated [\#599](https://github.com/feathersjs/authentication/pull/599) ([MichaelErmer](https://github.com/MichaelErmer))
-
-## [v2.1.5](https://github.com/feathersjs/authentication/tree/v2.1.5) (2018-04-16)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v2.1.4...v2.1.5)
-
-**Closed issues:**
-
-- feathersjs Invalid token: expired [\#661](https://github.com/feathersjs/authentication/issues/661)
-- Safari and iOS facebook login can't redirect back, but others can. [\#651](https://github.com/feathersjs/authentication/issues/651)
-
-**Merged pull requests:**
-
-- Remove payload and user entity on logout. [\#665](https://github.com/feathersjs/authentication/pull/665) ([bertho-zero](https://github.com/bertho-zero))
-
-## [v2.1.4](https://github.com/feathersjs/authentication/tree/v2.1.4) (2018-04-12)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v2.1.3...v2.1.4)
-
-**Closed issues:**
-
-- Column "createdAt" does not exist" in Autentication [\#660](https://github.com/feathersjs/authentication/issues/660)
-- How to make a user automatically logined on server side? [\#659](https://github.com/feathersjs/authentication/issues/659)
-- authentication-jwt functional example [\#657](https://github.com/feathersjs/authentication/issues/657)
-- "No auth token" with auth0 when following the guide [\#655](https://github.com/feathersjs/authentication/issues/655)
-- Service returns \[No Auth Token\] same by passing Authorization Token on HEADER [\#641](https://github.com/feathersjs/authentication/issues/641)
-
-**Merged pull requests:**
-
-- Throw an error for unavailable strategy [\#663](https://github.com/feathersjs/authentication/pull/663) ([daffl](https://github.com/daffl))
-- Update sinon to the latest version 🚀 [\#656](https://github.com/feathersjs/authentication/pull/656) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v2.1.3](https://github.com/feathersjs/authentication/tree/v2.1.3) (2018-03-16)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v2.1.2...v2.1.3)
-
-**Closed issues:**
-
-- ts [\#647](https://github.com/feathersjs/authentication/issues/647)
-- Using /auth/facebook gives a 404 from vue-router [\#643](https://github.com/feathersjs/authentication/issues/643)
-- Crash after upgrade to feathersjs v3 [\#642](https://github.com/feathersjs/authentication/issues/642)
-- SameSite cookie option [\#640](https://github.com/feathersjs/authentication/issues/640)
-- context.params.user is empty object [\#635](https://github.com/feathersjs/authentication/issues/635)
-- Token is undefined for authenticated user [\#500](https://github.com/feathersjs/authentication/issues/500)
-- 1.x: logout timers need to be moved [\#467](https://github.com/feathersjs/authentication/issues/467)
-
-**Merged pull requests:**
-
-- Merge auk to master [\#653](https://github.com/feathersjs/authentication/pull/653) ([wnxhaja](https://github.com/wnxhaja))
-- Update ws to the latest version 🚀 [\#645](https://github.com/feathersjs/authentication/pull/645) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update sinon-chai to the latest version 🚀 [\#644](https://github.com/feathersjs/authentication/pull/644) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v2.1.2](https://github.com/feathersjs/authentication/tree/v2.1.2) (2018-02-14)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v2.1.1...v2.1.2)
-
-**Fixed bugs:**
-
-- hook failed with auth & sync [\#540](https://github.com/feathersjs/authentication/issues/540)
-- JWT Cookie [\#389](https://github.com/feathersjs/authentication/issues/389)
-
-**Closed issues:**
-
-- forgot password [\#638](https://github.com/feathersjs/authentication/issues/638)
-- registered many authentication services [\#634](https://github.com/feathersjs/authentication/issues/634)
-- TypeError: Cannot read property '\_strategy' of undefined [\#632](https://github.com/feathersjs/authentication/issues/632)
-- How to change 5000ms timeout? [\#628](https://github.com/feathersjs/authentication/issues/628)
-- cookie reused from server in SSR app [\#619](https://github.com/feathersjs/authentication/issues/619)
-- Express middleware not setCookie [\#617](https://github.com/feathersjs/authentication/issues/617)
-- Server to Server Authentication Question [\#612](https://github.com/feathersjs/authentication/issues/612)
-- No way to share token between socket-rest-express [\#607](https://github.com/feathersjs/authentication/issues/607)
-- 404 when accessing route using customer authentication [\#579](https://github.com/feathersjs/authentication/issues/579)
-- \[question\] is it possible to protect by role a create method? [\#564](https://github.com/feathersjs/authentication/issues/564)
-- Authentication with server-side rendering [\#560](https://github.com/feathersjs/authentication/issues/560)
-- Problem authenticating using REST middleware [\#495](https://github.com/feathersjs/authentication/issues/495)
-- A supposed way to auth requests from SSR to Feathers API [\#469](https://github.com/feathersjs/authentication/issues/469)
-- rename `app.authenticate\(\)` to `app.\_authenticate\(\)` [\#468](https://github.com/feathersjs/authentication/issues/468)
-
-**Merged pull requests:**
-
-- Delete slack link [\#637](https://github.com/feathersjs/authentication/pull/637) ([vodniciarv](https://github.com/vodniciarv))
-- Update @feathersjs/authentication-jwt to the latest version 🚀 [\#631](https://github.com/feathersjs/authentication/pull/631) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update mocha to the latest version 🚀 [\#629](https://github.com/feathersjs/authentication/pull/629) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update ws to the latest version 🚀 [\#625](https://github.com/feathersjs/authentication/pull/625) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Options merged [\#611](https://github.com/feathersjs/authentication/pull/611) ([Makingweb](https://github.com/Makingweb))
-
-## [v2.1.1](https://github.com/feathersjs/authentication/tree/v2.1.1) (2018-01-03)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v2.1.0...v2.1.1)
-
-**Closed issues:**
-
-- Deleted user successfully signs in using JWT [\#615](https://github.com/feathersjs/authentication/issues/615)
-- Feathers.authenticate gives window undefined \(server-rendered\) [\#573](https://github.com/feathersjs/authentication/issues/573)
-- Be careful with discard\('password'\) in user [\#434](https://github.com/feathersjs/authentication/issues/434)
-
-**Merged pull requests:**
-
-- Update readme to correspond with latest release [\#621](https://github.com/feathersjs/authentication/pull/621) ([daffl](https://github.com/daffl))
-- Update semistandard to the latest version 🚀 [\#620](https://github.com/feathersjs/authentication/pull/620) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update mongodb to the latest version 🚀 [\#618](https://github.com/feathersjs/authentication/pull/618) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v2.1.0](https://github.com/feathersjs/authentication/tree/v2.1.0) (2017-12-06)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v2.0.1...v2.1.0)
-
-**Closed issues:**
-
-- Method "Remove" from Authentication Service gives Internal Server Error when using JWT Authentication with Cookies. [\#606](https://github.com/feathersjs/authentication/issues/606)
-- Anonymous Authentication fails over Socket.io [\#457](https://github.com/feathersjs/authentication/issues/457)
-
-**Merged pull requests:**
-
-- Always prevent publishing of authentication events [\#614](https://github.com/feathersjs/authentication/pull/614) ([daffl](https://github.com/daffl))
-- Update feathers-memory to the latest version 🚀 [\#613](https://github.com/feathersjs/authentication/pull/613) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v2.0.1](https://github.com/feathersjs/authentication/tree/v2.0.1) (2017-11-16)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v2.0.0...v2.0.1)
-
-**Merged pull requests:**
-
-- Add default export for better ES module \(TypeScript\) compatibility [\#605](https://github.com/feathersjs/authentication/pull/605) ([daffl](https://github.com/daffl))
-
-## [v2.0.0](https://github.com/feathersjs/authentication/tree/v2.0.0) (2017-11-09)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.3.1...v2.0.0)
-
-**Closed issues:**
-
-- is there a way to detect if the token used is correct or not ? [\#601](https://github.com/feathersjs/authentication/issues/601)
-- option for non-JWT based session [\#597](https://github.com/feathersjs/authentication/issues/597)
-
-**Merged pull requests:**
-
-- Update nsp to the latest version 🚀 [\#603](https://github.com/feathersjs/authentication/pull/603) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v1.3.1](https://github.com/feathersjs/authentication/tree/v1.3.1) (2017-11-03)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.4.1...v1.3.1)
-
-**Merged pull requests:**
-
-- Only set the JWT UUID if it is not already set [\#600](https://github.com/feathersjs/authentication/pull/600) ([daffl](https://github.com/daffl))
-
-## [v1.4.1](https://github.com/feathersjs/authentication/tree/v1.4.1) (2017-11-01)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.4.0...v1.4.1)
-
-**Merged pull requests:**
-
-- Update dependencies for release [\#598](https://github.com/feathersjs/authentication/pull/598) ([daffl](https://github.com/daffl))
-- Finalize v3 dependency updates [\#596](https://github.com/feathersjs/authentication/pull/596) ([daffl](https://github.com/daffl))
-- Update Codeclimate coverage token [\#595](https://github.com/feathersjs/authentication/pull/595) ([daffl](https://github.com/daffl))
-
-## [v1.4.0](https://github.com/feathersjs/authentication/tree/v1.4.0) (2017-10-25)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.3.0...v1.4.0)
-
-**Closed issues:**
-
-- An in-range update of socket.io-client is breaking the build 🚨 [\#588](https://github.com/feathersjs/authentication/issues/588)
-- An in-range update of feathers-hooks is breaking the build 🚨 [\#587](https://github.com/feathersjs/authentication/issues/587)
-
-**Merged pull requests:**
-
-- Move to npm scope [\#594](https://github.com/feathersjs/authentication/pull/594) ([daffl](https://github.com/daffl))
-- Update to Feathers v3 \(Buzzard\) [\#592](https://github.com/feathersjs/authentication/pull/592) ([daffl](https://github.com/daffl))
-- Update to new plugin infrastructure [\#591](https://github.com/feathersjs/authentication/pull/591) ([daffl](https://github.com/daffl))
-
-## [v1.3.0](https://github.com/feathersjs/authentication/tree/v1.3.0) (2017-10-24)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.7.13...v1.3.0)
-
-**Merged pull requests:**
-
-- updating the codeclimate setup [\#589](https://github.com/feathersjs/authentication/pull/589) ([ekryski](https://github.com/ekryski))
-
-## [v0.7.13](https://github.com/feathersjs/authentication/tree/v0.7.13) (2017-10-23)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.2.7...v0.7.13)
-
-**Closed issues:**
-
-- Error authenticating! Error: Token provided to verifyJWT is missing or not a string ? [\#584](https://github.com/feathersjs/authentication/issues/584)
-- Visual Studio Code Debug no authentication [\#583](https://github.com/feathersjs/authentication/issues/583)
-- \[Feature Request\] Cloud DB's [\#581](https://github.com/feathersjs/authentication/issues/581)
-- Request doesn't contain any headers when user service requested [\#578](https://github.com/feathersjs/authentication/issues/578)
-- No way to pass Options to auth.express.authenticate. Needed for Google API refreshToken [\#576](https://github.com/feathersjs/authentication/issues/576)
-- /auth/google 404 Not Found [\#574](https://github.com/feathersjs/authentication/issues/574)
-- unique email not working while create [\#572](https://github.com/feathersjs/authentication/issues/572)
-- authentication service not return token jwt [\#571](https://github.com/feathersjs/authentication/issues/571)
-- typo in jwt default options [\#570](https://github.com/feathersjs/authentication/issues/570)
-- Generate new app, Google-only auth, throws error [\#568](https://github.com/feathersjs/authentication/issues/568)
-- An in-range update of feathers is breaking the build 🚨 [\#565](https://github.com/feathersjs/authentication/issues/565)
-- Documentation not understanding [\#563](https://github.com/feathersjs/authentication/issues/563)
-- Checking hook.params.headers.authorization [\#552](https://github.com/feathersjs/authentication/issues/552)
-- Ability to send token as part of URL [\#546](https://github.com/feathersjs/authentication/issues/546)
-- Anonymous Authentication [\#544](https://github.com/feathersjs/authentication/issues/544)
-- Quote Error [\#519](https://github.com/feathersjs/authentication/issues/519)
-- \[example\] CustomStrategy using passport-custom [\#516](https://github.com/feathersjs/authentication/issues/516)
-- \[Epic\] Auth 2.0.0 [\#513](https://github.com/feathersjs/authentication/issues/513)
-- ID set to null - Unable to delete with customer ID field. [\#422](https://github.com/feathersjs/authentication/issues/422)
-- Prefixing socket events [\#418](https://github.com/feathersjs/authentication/issues/418)
-- Passwordless auth [\#409](https://github.com/feathersjs/authentication/issues/409)
-- How to authenticate the application client? not only the users [\#405](https://github.com/feathersjs/authentication/issues/405)
-- Multi-factor Local Auth [\#5](https://github.com/feathersjs/authentication/issues/5)
-
-**Merged pull requests:**
-
-- Features/typescript fix [\#585](https://github.com/feathersjs/authentication/pull/585) ([TimMensch](https://github.com/TimMensch))
-- Update mocha to the latest version 🚀 [\#582](https://github.com/feathersjs/authentication/pull/582) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update sinon to the latest version 🚀 [\#580](https://github.com/feathersjs/authentication/pull/580) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update jsonwebtoken to the latest version 🚀 [\#567](https://github.com/feathersjs/authentication/pull/567) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Include Babel Polyfill for Node 4 [\#566](https://github.com/feathersjs/authentication/pull/566) ([daffl](https://github.com/daffl))
-- Update passport to the latest version 🚀 [\#558](https://github.com/feathersjs/authentication/pull/558) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Revert "Make feathers-authentication match security documents" [\#556](https://github.com/feathersjs/authentication/pull/556) ([ekryski](https://github.com/ekryski))
-- Update debug to the latest version 🚀 [\#555](https://github.com/feathersjs/authentication/pull/555) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Make feathers-authentication match security documents [\#554](https://github.com/feathersjs/authentication/pull/554) ([micaksica2](https://github.com/micaksica2))
-- Update sinon to the latest version 🚀 [\#551](https://github.com/feathersjs/authentication/pull/551) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update ws to the latest version 🚀 [\#549](https://github.com/feathersjs/authentication/pull/549) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update chai to the latest version 🚀 [\#543](https://github.com/feathersjs/authentication/pull/543) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- adding a default jwt uuid. Refs \#513 [\#539](https://github.com/feathersjs/authentication/pull/539) ([ekryski](https://github.com/ekryski))
-- Refresh token must have a user ID [\#419](https://github.com/feathersjs/authentication/pull/419) ([francisco-sanchez-molina](https://github.com/francisco-sanchez-molina))
-
-## [v1.2.7](https://github.com/feathersjs/authentication/tree/v1.2.7) (2017-07-11)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.2.6...v1.2.7)
-
-**Closed issues:**
-
-- Connection without password [\#541](https://github.com/feathersjs/authentication/issues/541)
-- email in lower case ? [\#538](https://github.com/feathersjs/authentication/issues/538)
-- Im unable to ping feathers server from react native. [\#537](https://github.com/feathersjs/authentication/issues/537)
-- whats the official way to open cors in feather ? [\#536](https://github.com/feathersjs/authentication/issues/536)
-- Error options.service does not exist after initial auth setup [\#535](https://github.com/feathersjs/authentication/issues/535)
-- LogoutTimer not being cleared correctly [\#532](https://github.com/feathersjs/authentication/issues/532)
-- logoutTimer causing early logouts [\#404](https://github.com/feathersjs/authentication/issues/404)
-
-**Merged pull requests:**
-
-- fixed meta undefined error [\#542](https://github.com/feathersjs/authentication/pull/542) ([markacola](https://github.com/markacola))
-
-## [v1.2.6](https://github.com/feathersjs/authentication/tree/v1.2.6) (2017-06-22)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.2.5...v1.2.6)
-
-**Closed issues:**
-
-- OAuth 2 login for cordova [\#530](https://github.com/feathersjs/authentication/issues/530)
-
-**Merged pull requests:**
-
-- Change cleartimeout\(\) to lt.clearTimeout\(\) [\#534](https://github.com/feathersjs/authentication/pull/534) ([wnxhaja](https://github.com/wnxhaja))
-- Update feathers-authentication-local to the latest version 🚀 [\#533](https://github.com/feathersjs/authentication/pull/533) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v1.2.5](https://github.com/feathersjs/authentication/tree/v1.2.5) (2017-06-21)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.2.4...v1.2.5)
-
-**Closed issues:**
-
-- Cannot read property 'user' of undefined - lib\socket\update-entity.js:26:104 [\#529](https://github.com/feathersjs/authentication/issues/529)
-- Provider is undefined when using restrictToRoles [\#525](https://github.com/feathersjs/authentication/issues/525)
-- How to make a request to an Endpoint that requires authentication from nodejs? [\#523](https://github.com/feathersjs/authentication/issues/523)
-
-**Merged pull requests:**
-
-- fixes several issues with update-entity w/ test cases [\#531](https://github.com/feathersjs/authentication/pull/531) ([jerfowler](https://github.com/jerfowler))
-
-## [v1.2.4](https://github.com/feathersjs/authentication/tree/v1.2.4) (2017-06-08)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.2.3...v1.2.4)
-
-**Fixed bugs:**
-
-- User \(Entity\) needs to be updated on the socket after authentication [\#293](https://github.com/feathersjs/authentication/issues/293)
-
-**Closed issues:**
-
-- Express Middleware local -\> jwt does not authorize on redirect [\#518](https://github.com/feathersjs/authentication/issues/518)
-- Issue with feathers-authentication [\#512](https://github.com/feathersjs/authentication/issues/512)
-- User Authentication Missing Credentials error \(and subsequent nav authorization\) [\#508](https://github.com/feathersjs/authentication/issues/508)
-- passport log failure [\#505](https://github.com/feathersjs/authentication/issues/505)
-- authenticate with a custom username field \(rather than email\) [\#502](https://github.com/feathersjs/authentication/issues/502)
-- app.get\('auth'\) vs app.get\('authentication'\) [\#497](https://github.com/feathersjs/authentication/issues/497)
-- Can't get success authorization with pure feathers server [\#491](https://github.com/feathersjs/authentication/issues/491)
-
-**Merged pull requests:**
-
-- Test and fix for authenticate event with invalid data [\#524](https://github.com/feathersjs/authentication/pull/524) ([daffl](https://github.com/daffl))
-- Remove hook.data.payload [\#522](https://github.com/feathersjs/authentication/pull/522) ([marshallswain](https://github.com/marshallswain))
-- Update socket entity [\#521](https://github.com/feathersjs/authentication/pull/521) ([marshallswain](https://github.com/marshallswain))
-- Made each option, optional [\#515](https://github.com/feathersjs/authentication/pull/515) ([cranesandcaff](https://github.com/cranesandcaff))
-- Add feathers-authentication-hooks in readme [\#510](https://github.com/feathersjs/authentication/pull/510) ([bertho-zero](https://github.com/bertho-zero))
-- Update ms to the latest version 🚀 [\#509](https://github.com/feathersjs/authentication/pull/509) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Fix default authentication config keys [\#506](https://github.com/feathersjs/authentication/pull/506) ([ekryski](https://github.com/ekryski))
-
-## [v1.2.3](https://github.com/feathersjs/authentication/tree/v1.2.3) (2017-05-10)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.2.2...v1.2.3)
-
-**Closed issues:**
-
-- Validating custom express routes [\#498](https://github.com/feathersjs/authentication/issues/498)
-- Payload won't include userId when logging in with stored localStorage token [\#496](https://github.com/feathersjs/authentication/issues/496)
-- How to send oauth token authentication to another client server [\#493](https://github.com/feathersjs/authentication/issues/493)
-- Unhandled Promise Rejection error. [\#489](https://github.com/feathersjs/authentication/issues/489)
-- No Auth token on authentication resource [\#488](https://github.com/feathersjs/authentication/issues/488)
-- How to verify JWT in feathers issued by another feathers instance ? [\#484](https://github.com/feathersjs/authentication/issues/484)
-- hook.params.user [\#483](https://github.com/feathersjs/authentication/issues/483)
-- Overriding JWT's expiresIn with a value more than 20d prevents users from signing in [\#458](https://github.com/feathersjs/authentication/issues/458)
-
-**Merged pull requests:**
-
-- Update feathers-socketio to the latest version 🚀 [\#503](https://github.com/feathersjs/authentication/pull/503) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update socket.io-client to the latest version 🚀 [\#501](https://github.com/feathersjs/authentication/pull/501) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Fix issue with very large token timeout. [\#499](https://github.com/feathersjs/authentication/pull/499) ([asdacap](https://github.com/asdacap))
-- Typo [\#492](https://github.com/feathersjs/authentication/pull/492) ([wdmtech](https://github.com/wdmtech))
-- Update migrating.md [\#490](https://github.com/feathersjs/authentication/pull/490) ([MichaelErmer](https://github.com/MichaelErmer))
-- Update semistandard to the latest version 🚀 [\#487](https://github.com/feathersjs/authentication/pull/487) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update feathers-hooks to the latest version 🚀 [\#485](https://github.com/feathersjs/authentication/pull/485) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-- Update dependencies to enable Greenkeeper 🌴 [\#482](https://github.com/feathersjs/authentication/pull/482) ([greenkeeper[bot]](https://github.com/apps/greenkeeper))
-
-## [v1.2.2](https://github.com/feathersjs/authentication/tree/v1.2.2) (2017-04-12)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.2.1...v1.2.2)
-
-**Fixed bugs:**
-
-- accessToken not being used when provided by client over socketio [\#400](https://github.com/feathersjs/authentication/issues/400)
-
-**Closed issues:**
-
-- Incompatible old client dependency [\#479](https://github.com/feathersjs/authentication/issues/479)
-- Using feathers-authentication-client for an existing API? [\#478](https://github.com/feathersjs/authentication/issues/478)
-- app.authenticate error : UnhandledPromiseRejectionWarning: Unhandled promise rejection \(rejection id: 2\): \* Error \* [\#476](https://github.com/feathersjs/authentication/issues/476)
-- Make `socket.feathers` data available in authentication hooks [\#475](https://github.com/feathersjs/authentication/issues/475)
-- Allow the authenticate hook to be called with no parameters [\#473](https://github.com/feathersjs/authentication/issues/473)
-- Authenticate : How to return more infos ? [\#471](https://github.com/feathersjs/authentication/issues/471)
-
-**Merged pull requests:**
-
-- Use latest version of feathers-authentication-client [\#480](https://github.com/feathersjs/authentication/pull/480) ([daffl](https://github.com/daffl))
-- Resolves \#475 - Socket params are made available to authentication hooks [\#477](https://github.com/feathersjs/authentication/pull/477) ([thomas-p-wilson](https://github.com/thomas-p-wilson))
-
-## [v1.2.1](https://github.com/feathersjs/authentication/tree/v1.2.1) (2017-04-07)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.2.0...v1.2.1)
-
-**Fixed bugs:**
-
-- failureRedirect is never used when using with oauth2 [\#387](https://github.com/feathersjs/authentication/issues/387)
-
-**Closed issues:**
-
-- OAuth guides [\#470](https://github.com/feathersjs/authentication/issues/470)
-- app.authenticate not working [\#466](https://github.com/feathersjs/authentication/issues/466)
-- how can I logout using local authentication? [\#465](https://github.com/feathersjs/authentication/issues/465)
-- How to do Socket.io Authentication [\#462](https://github.com/feathersjs/authentication/issues/462)
-- Add event filtering by default \(socket.io\) [\#460](https://github.com/feathersjs/authentication/issues/460)
-- Add ability to control if socket is marked as authenticated. [\#448](https://github.com/feathersjs/authentication/issues/448)
-- Auth redirect issue [\#425](https://github.com/feathersjs/authentication/issues/425)
-- E-mail verification step can be bypassed using Postman or Curl [\#391](https://github.com/feathersjs/authentication/issues/391)
-- Example app [\#386](https://github.com/feathersjs/authentication/issues/386)
-
-**Merged pull requests:**
-
-- Allow the cookie to be set if action is not `remove` [\#474](https://github.com/feathersjs/authentication/pull/474) ([marshallswain](https://github.com/marshallswain))
-
-## [v1.2.0](https://github.com/feathersjs/authentication/tree/v1.2.0) (2017-03-23)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.1.1...v1.2.0)
-
-**Fixed bugs:**
-
-- 1.0 authentication service hooks don't run when client uses feathers-socketio [\#455](https://github.com/feathersjs/authentication/issues/455)
-- `hook.params.provider` is not set when calling `client.authenticate\(\)` [\#432](https://github.com/feathersjs/authentication/issues/432)
-- remove method failed with JsonWebTokenError: invalid token [\#388](https://github.com/feathersjs/authentication/issues/388)
-
-**Closed issues:**
-
-- Token creation has side effect [\#454](https://github.com/feathersjs/authentication/issues/454)
-- Question: When is userId set? [\#453](https://github.com/feathersjs/authentication/issues/453)
-- How to authenticate SPA? More precisely how does the redirect works? [\#451](https://github.com/feathersjs/authentication/issues/451)
-- POST to auth/facebook for FacebookTokenStrategy 404? [\#447](https://github.com/feathersjs/authentication/issues/447)
-- feathers-authentication 1.1.1 `No auth token` [\#445](https://github.com/feathersjs/authentication/issues/445)
-- Another readme incorrect and maybe docs to [\#441](https://github.com/feathersjs/authentication/issues/441)
-- Readme incorrect and maybe docs to [\#440](https://github.com/feathersjs/authentication/issues/440)
-- npm version issue? [\#439](https://github.com/feathersjs/authentication/issues/439)
-- setCookie express middleware only works inside hooks [\#438](https://github.com/feathersjs/authentication/issues/438)
-- createJWT throws 'secret must provided' [\#437](https://github.com/feathersjs/authentication/issues/437)
-- Not useful error message on NotAuthenticated error [\#436](https://github.com/feathersjs/authentication/issues/436)
-- Passwordfeld in auth.local does not work as expected [\#435](https://github.com/feathersjs/authentication/issues/435)
-- Authentication via REST returns token without finding user on db [\#430](https://github.com/feathersjs/authentication/issues/430)
-
-**Merged pull requests:**
-
-- Filter out all events [\#461](https://github.com/feathersjs/authentication/pull/461) ([daffl](https://github.com/daffl))
-- Fix socket auth [\#459](https://github.com/feathersjs/authentication/pull/459) ([marshallswain](https://github.com/marshallswain))
-- Fix \#454 Token create has side effect [\#456](https://github.com/feathersjs/authentication/pull/456) ([whollacsek](https://github.com/whollacsek))
-- Windows compatible version of the original compile comand with public folder support. [\#442](https://github.com/feathersjs/authentication/pull/442) ([appurist](https://github.com/appurist))
-- Add client.js back for consistency [\#433](https://github.com/feathersjs/authentication/pull/433) ([daffl](https://github.com/daffl))
-- add string to authenticate \(typescript\) [\#431](https://github.com/feathersjs/authentication/pull/431) ([superbarne](https://github.com/superbarne))
-- Add support for Bearer scheme in remove method [\#403](https://github.com/feathersjs/authentication/pull/403) ([boybundit](https://github.com/boybundit))
-
-## [v1.1.1](https://github.com/feathersjs/authentication/tree/v1.1.1) (2017-03-02)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.1.0...v1.1.1)
-
-**Closed issues:**
-
-- Authentication over socket.io never answers [\#428](https://github.com/feathersjs/authentication/issues/428)
-
-**Merged pull requests:**
-
-- Remove lots of hardcoded values for config, and adds the `authenticate` hook [\#427](https://github.com/feathersjs/authentication/pull/427) ([myknbani](https://github.com/myknbani))
-
-## [v1.1.0](https://github.com/feathersjs/authentication/tree/v1.1.0) (2017-03-01)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.0.2...v1.1.0)
-
-**Fixed bugs:**
-
-- Mongo update error after logging into Facebook [\#244](https://github.com/feathersjs/authentication/issues/244)
-
-**Closed issues:**
-
-- Feature Request: Anonymous Authentication Strategy Support [\#423](https://github.com/feathersjs/authentication/issues/423)
-- Error is not thrown if token that is provided is invalid [\#421](https://github.com/feathersjs/authentication/issues/421)
-- Request body 'token' parameter disappears [\#420](https://github.com/feathersjs/authentication/issues/420)
-- Auth2 issue getting JWT token from server when different ports [\#416](https://github.com/feathersjs/authentication/issues/416)
-- Cookie-based authentication with XHR is not possible [\#413](https://github.com/feathersjs/authentication/issues/413)
-- JWT Authentication setup failing [\#411](https://github.com/feathersjs/authentication/issues/411)
-- how to disable service for external usage in version 1.0 [\#410](https://github.com/feathersjs/authentication/issues/410)
-- v1.0 is removed from npm? [\#408](https://github.com/feathersjs/authentication/issues/408)
-- Make JWT data more configurable [\#407](https://github.com/feathersjs/authentication/issues/407)
-- Possible typo [\#406](https://github.com/feathersjs/authentication/issues/406)
-- Authentication with an existing database with existing hashed \(md5\) passwords [\#398](https://github.com/feathersjs/authentication/issues/398)
-- can modify selected fields only [\#397](https://github.com/feathersjs/authentication/issues/397)
-- \[Discussion\] Migrating to 1.0 - hook changes [\#396](https://github.com/feathersjs/authentication/issues/396)
-- feathers-authentication 'local' strategy requires token? [\#394](https://github.com/feathersjs/authentication/issues/394)
-- JWT for local auth. [\#390](https://github.com/feathersjs/authentication/issues/390)
-- Feathers 'Twitter API' style [\#385](https://github.com/feathersjs/authentication/issues/385)
-- Missing code in example app [\#383](https://github.com/feathersjs/authentication/issues/383)
-- feathers-authentication errors with any view error, and redirects to /auth/failure [\#381](https://github.com/feathersjs/authentication/issues/381)
-- what does app.service\('authentication'\).remove\(...\) mean? [\#379](https://github.com/feathersjs/authentication/issues/379)
-- Rest Endpoints. [\#375](https://github.com/feathersjs/authentication/issues/375)
-- cordova google-plus signUp with id_token [\#373](https://github.com/feathersjs/authentication/issues/373)
-- How to reconnect socket with cookie after page refresh ? [\#372](https://github.com/feathersjs/authentication/issues/372)
-- Error: Could not find stored JWT and no authentication strategy was given [\#367](https://github.com/feathersjs/authentication/issues/367)
-- "No auth token" using authenticate strategy: 'jwt' \(v.1.0.0-beta-2\) [\#366](https://github.com/feathersjs/authentication/issues/366)
-- Navigating to /auth/\ twice redirects to /auth/failed [\#344](https://github.com/feathersjs/authentication/issues/344)
-- Meteor auth migration guide [\#334](https://github.com/feathersjs/authentication/issues/334)
-- Auth 1.0 [\#330](https://github.com/feathersjs/authentication/issues/330)
-- RSA token secret [\#309](https://github.com/feathersjs/authentication/issues/309)
-- Add option to use bcrypt [\#300](https://github.com/feathersjs/authentication/issues/300)
-- Better example of how to change hashing algorithm? \[Question\] [\#289](https://github.com/feathersjs/authentication/issues/289)
-- issuer doesn't work [\#284](https://github.com/feathersjs/authentication/issues/284)
-- passport auth question [\#274](https://github.com/feathersjs/authentication/issues/274)
-- Add support for authenticating active users only [\#259](https://github.com/feathersjs/authentication/issues/259)
-- 404 response from populateUser\(\) hook [\#258](https://github.com/feathersjs/authentication/issues/258)
-- Responses hang when token.secret is undefined for local authentication [\#249](https://github.com/feathersjs/authentication/issues/249)
-- Authentication without password [\#246](https://github.com/feathersjs/authentication/issues/246)
-- Fix successRedirect to not override cookie path [\#243](https://github.com/feathersjs/authentication/issues/243)
-- Deprecate verifyToken and populateUser hooks in favour of middleware [\#227](https://github.com/feathersjs/authentication/issues/227)
-- Authenticating and creating [\#100](https://github.com/feathersjs/authentication/issues/100)
-- Add a password service [\#83](https://github.com/feathersjs/authentication/issues/83)
-
-**Merged pull requests:**
-
-- Fix JWT options typo [\#415](https://github.com/feathersjs/authentication/pull/415) ([daffl](https://github.com/daffl))
-- Prevent setCookie from mutating authOptions [\#414](https://github.com/feathersjs/authentication/pull/414) ([adrien-k](https://github.com/adrien-k))
-- Typescript Definitions [\#412](https://github.com/feathersjs/authentication/pull/412) ([AbraaoAlves](https://github.com/AbraaoAlves))
-- Docs for migrating to auth.hooks.authenticate hook [\#399](https://github.com/feathersjs/authentication/pull/399) ([petermikitsh](https://github.com/petermikitsh))
-- Typo 'cookie.enable' should be 'cookie.enabled' [\#380](https://github.com/feathersjs/authentication/pull/380) ([whollacsek](https://github.com/whollacsek))
-- Docs: Equalize usage of feathers-authenticate [\#378](https://github.com/feathersjs/authentication/pull/378) ([eikaramba](https://github.com/eikaramba))
-
-## [v1.0.2](https://github.com/feathersjs/authentication/tree/v1.0.2) (2016-12-14)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.0.1...v1.0.2)
-
-**Closed issues:**
-
-- successRedirect not redirecting [\#364](https://github.com/feathersjs/authentication/issues/364)
-
-## [v1.0.1](https://github.com/feathersjs/authentication/tree/v1.0.1) (2016-12-14)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.0.0...v1.0.1)
-
-## [v1.0.0](https://github.com/feathersjs/authentication/tree/v1.0.0) (2016-12-14)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.7.12...v1.0.0)
-
-**Fixed bugs:**
-
-- restrictToOwner does not support multi patch, update and remove [\#228](https://github.com/feathersjs/authentication/issues/228)
-
-**Closed issues:**
-
-- auth.express.authenticate got undefined [\#363](https://github.com/feathersjs/authentication/issues/363)
-- Non-standard header structure [\#361](https://github.com/feathersjs/authentication/issues/361)
-- localEndpoint without local strategy [\#359](https://github.com/feathersjs/authentication/issues/359)
-- Using custom passport strategies [\#356](https://github.com/feathersjs/authentication/issues/356)
-- Client-side app.on\('login'\) [\#355](https://github.com/feathersjs/authentication/issues/355)
-- Payload limiting on `app.get\('user'\)`? [\#354](https://github.com/feathersjs/authentication/issues/354)
-- Authentication token is missing [\#352](https://github.com/feathersjs/authentication/issues/352)
-- \[1.0\] The entity on the socket should pull from the strategy options. [\#348](https://github.com/feathersjs/authentication/issues/348)
-- \[1.0\] Only the first failure is returned on auth failure when chaining multiple strategies [\#346](https://github.com/feathersjs/authentication/issues/346)
-- Build 0.7.11 does not contain current code on NPMJS [\#342](https://github.com/feathersjs/authentication/issues/342)
-- feathers-authentication branch 0.8 did not work with payload \(tested on socket\) [\#264](https://github.com/feathersjs/authentication/issues/264)
-- Add method for updating JWT [\#260](https://github.com/feathersjs/authentication/issues/260)
-- 1.0 architecture considerations [\#226](https://github.com/feathersjs/authentication/issues/226)
-- Features/RFC [\#213](https://github.com/feathersjs/authentication/issues/213)
-- Support access_token based OAuth2 providers [\#169](https://github.com/feathersjs/authentication/issues/169)
-- Support openID [\#154](https://github.com/feathersjs/authentication/issues/154)
-- Disable cookie by default if not using OAuth [\#152](https://github.com/feathersjs/authentication/issues/152)
-- Add token service tests [\#144](https://github.com/feathersjs/authentication/issues/144)
-- Add local service tests [\#143](https://github.com/feathersjs/authentication/issues/143)
-- Add OAuth2 service tests [\#142](https://github.com/feathersjs/authentication/issues/142)
-- Add OAuth2 integration tests [\#141](https://github.com/feathersjs/authentication/issues/141)
-- Add integration tests for custom redirects [\#125](https://github.com/feathersjs/authentication/issues/125)
-- Support mobile authentication via OAuth1 [\#47](https://github.com/feathersjs/authentication/issues/47)
-- Support OAuth1 [\#42](https://github.com/feathersjs/authentication/issues/42)
-- Password-less Local Auth with Email / SMS [\#7](https://github.com/feathersjs/authentication/issues/7)
-
-**Merged pull requests:**
-
-- migrating to semistandard [\#371](https://github.com/feathersjs/authentication/pull/371) ([ekryski](https://github.com/ekryski))
-- Logout should always give a response. [\#369](https://github.com/feathersjs/authentication/pull/369) ([marshallswain](https://github.com/marshallswain))
-- Clarify that the authenticate hook is required. [\#368](https://github.com/feathersjs/authentication/pull/368) ([marshallswain](https://github.com/marshallswain))
-- Fix README example [\#365](https://github.com/feathersjs/authentication/pull/365) ([saiberz](https://github.com/saiberz))
-- Remove additional deprecation notice [\#362](https://github.com/feathersjs/authentication/pull/362) ([porsager](https://github.com/porsager))
-- fix typo [\#360](https://github.com/feathersjs/authentication/pull/360) ([osenvosem](https://github.com/osenvosem))
-- Update feathers-primus to version 2.0.0 🚀 [\#358](https://github.com/feathersjs/authentication/pull/358) ([greenkeeperio-bot](https://github.com/greenkeeperio-bot))
-- Create .codeclimate.yml [\#357](https://github.com/feathersjs/authentication/pull/357) ([larkinscott](https://github.com/larkinscott))
-- fixing redirect middleware [\#353](https://github.com/feathersjs/authentication/pull/353) ([ekryski](https://github.com/ekryski))
-- Remove useless quotes [\#351](https://github.com/feathersjs/authentication/pull/351) ([bertho-zero](https://github.com/bertho-zero))
-- A bunch of bug fixes [\#349](https://github.com/feathersjs/authentication/pull/349) ([ekryski](https://github.com/ekryski))
-- fix\(docs/new-features\): syntax highlighting [\#347](https://github.com/feathersjs/authentication/pull/347) ([justingreenberg](https://github.com/justingreenberg))
-- Update superagent to version 3.0.0 🚀 [\#345](https://github.com/feathersjs/authentication/pull/345) ([greenkeeperio-bot](https://github.com/greenkeeperio-bot))
-- Update feathers-memory to version 1.0.0 🚀 [\#343](https://github.com/feathersjs/authentication/pull/343) ([greenkeeperio-bot](https://github.com/greenkeeperio-bot))
-- 1.0 Pre-release [\#336](https://github.com/feathersjs/authentication/pull/336) ([ekryski](https://github.com/ekryski))
-
-## [v0.7.12](https://github.com/feathersjs/authentication/tree/v0.7.12) (2016-11-11)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.7.11...v0.7.12)
-
-**Closed issues:**
-
-- App.authenticate uses wrong `this` reference [\#341](https://github.com/feathersjs/authentication/issues/341)
-- Getting more done in GitHub with ZenHub [\#331](https://github.com/feathersjs/authentication/issues/331)
-- Need help to use feathers authentication storage in vue vuex [\#329](https://github.com/feathersjs/authentication/issues/329)
-- How to get user id in hooks? [\#322](https://github.com/feathersjs/authentication/issues/322)
-- I checked out my new feathersjs app in another machine, created a new user but I can't log in! [\#320](https://github.com/feathersjs/authentication/issues/320)
-- restrict-to-owner throws error when user id is 0 [\#319](https://github.com/feathersjs/authentication/issues/319)
-- Not providing sufficient details for an auth provider should not be an error. [\#318](https://github.com/feathersjs/authentication/issues/318)
-- \[Question\] Is there a way to verify a user with password? [\#316](https://github.com/feathersjs/authentication/issues/316)
-- 0.8.0 beta 1 bug - this is not defined [\#315](https://github.com/feathersjs/authentication/issues/315)
-- Client: Document getJWT & verifyJWT [\#313](https://github.com/feathersjs/authentication/issues/313)
-- Socket client should automatically auth on reconnect [\#310](https://github.com/feathersjs/authentication/issues/310)
-- app.get\('token'\) doesn't work after a browser refresh. [\#303](https://github.com/feathersjs/authentication/issues/303)
-- Problem issuing multiple jwt's for the same user [\#302](https://github.com/feathersjs/authentication/issues/302)
-- restrict-to-owner does not allow Service.remove\(null\) from internal systems [\#301](https://github.com/feathersjs/authentication/issues/301)
-- How to migrate from restrictToOwner to checkPermissions [\#299](https://github.com/feathersjs/authentication/issues/299)
-- "username" cannot be used as local strategy usernameField [\#294](https://github.com/feathersjs/authentication/issues/294)
-- Bad Hook API Design: Hooks are inconsistent and impure functions [\#288](https://github.com/feathersjs/authentication/issues/288)
-- Mutliple 'user' models for authentication [\#282](https://github.com/feathersjs/authentication/issues/282)
-- Client should ensure socket.io upgrade is complete before authenticating [\#275](https://github.com/feathersjs/authentication/issues/275)
-- JWT is not sent after socket reconnection [\#272](https://github.com/feathersjs/authentication/issues/272)
-- 401 after service is moved/refactored [\#270](https://github.com/feathersjs/authentication/issues/270)
-- Client side auth should subscribe to user updates so that app.get\('user'\) is fresh [\#195](https://github.com/feathersjs/authentication/issues/195)
-- Make oauth2 more general [\#179](https://github.com/feathersjs/authentication/issues/179)
-- Add integration tests for custom service endpoints [\#145](https://github.com/feathersjs/authentication/issues/145)
-- Create a `requireAuth` wrapper for `verifyToken`, `populateUser`, `restrictToAuth` [\#118](https://github.com/feathersjs/authentication/issues/118)
-
-**Merged pull requests:**
-
-- babel-core@6.18.2 breaks build 🚨 [\#339](https://github.com/feathersjs/authentication/pull/339) ([greenkeeperio-bot](https://github.com/greenkeeperio-bot))
-- 👻😱 Node.js 0.10 is unmaintained 😱👻 [\#337](https://github.com/feathersjs/authentication/pull/337) ([greenkeeperio-bot](https://github.com/greenkeeperio-bot))
-- restrictToOwner -Fix check for methodNotAllowed [\#335](https://github.com/feathersjs/authentication/pull/335) ([daffl](https://github.com/daffl))
-- Implement login and logout events for REST authentication [\#325](https://github.com/feathersjs/authentication/pull/325) ([daffl](https://github.com/daffl))
-- Socket.io authentication tests and login logout event [\#324](https://github.com/feathersjs/authentication/pull/324) ([daffl](https://github.com/daffl))
-- Reorganization [\#321](https://github.com/feathersjs/authentication/pull/321) ([ekryski](https://github.com/ekryski))
-- client: use Authentication class, make `getJWT` and `verifyJWT` async [\#317](https://github.com/feathersjs/authentication/pull/317) ([marshallswain](https://github.com/marshallswain))
-- 0.8 client decode jwt [\#314](https://github.com/feathersjs/authentication/pull/314) ([marshallswain](https://github.com/marshallswain))
-- Store config at `app.config` [\#312](https://github.com/feathersjs/authentication/pull/312) ([marshallswain](https://github.com/marshallswain))
-- Cookies will match jwt expiry by default. [\#308](https://github.com/feathersjs/authentication/pull/308) ([marshallswain](https://github.com/marshallswain))
-- Remove permissions hooks and middleware [\#307](https://github.com/feathersjs/authentication/pull/307) ([daffl](https://github.com/daffl))
-- First cut for authentication middleware [\#305](https://github.com/feathersjs/authentication/pull/305) ([daffl](https://github.com/daffl))
-- 0.8 - OAuth fixes [\#304](https://github.com/feathersjs/authentication/pull/304) ([marshallswain](https://github.com/marshallswain))
-
-## [v0.7.11](https://github.com/feathersjs/authentication/tree/v0.7.11) (2016-09-28)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.7.10...v0.7.11)
-
-**Closed issues:**
-
-- Unable to authenticate with passport-google-oauth20 [\#295](https://github.com/feathersjs/authentication/issues/295)
-- "Unauthorized" Response with Hook Data [\#291](https://github.com/feathersjs/authentication/issues/291)
-- hashPassword in patch [\#286](https://github.com/feathersjs/authentication/issues/286)
-- Mobile App Facebook Login [\#276](https://github.com/feathersjs/authentication/issues/276)
-- Socket user should update automatically [\#266](https://github.com/feathersjs/authentication/issues/266)
-- Get user outside a service [\#261](https://github.com/feathersjs/authentication/issues/261)
-
-**Merged pull requests:**
-
-- hashPassword fall-through if there's no password [\#287](https://github.com/feathersjs/authentication/pull/287) ([marshallswain](https://github.com/marshallswain))
-- Update feathers-memory to version 0.8.0 🚀 [\#285](https://github.com/feathersjs/authentication/pull/285) ([greenkeeperio-bot](https://github.com/greenkeeperio-bot))
-- Allow multiple username fields for local auth [\#283](https://github.com/feathersjs/authentication/pull/283) ([sdbondi](https://github.com/sdbondi))
-
-## [v0.7.10](https://github.com/feathersjs/authentication/tree/v0.7.10) (2016-08-31)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.7.9...v0.7.10)
-
-**Fixed bugs:**
-
-- restrictToOwner should not throw an error on mass deletions [\#175](https://github.com/feathersjs/authentication/issues/175)
-
-**Closed issues:**
-
-- Duplicate Email should be rejected by Default [\#281](https://github.com/feathersjs/authentication/issues/281)
-- Auth0 & featherjs authorization only [\#277](https://github.com/feathersjs/authentication/issues/277)
-- Cannot read property 'scope' of undefined [\#273](https://github.com/feathersjs/authentication/issues/273)
-- Socker.js | Custom successHandler [\#271](https://github.com/feathersjs/authentication/issues/271)
-- Use feathers-socketio? and rest&socket share session maybe? [\#269](https://github.com/feathersjs/authentication/issues/269)
-- Ability to invalidate old token/session when user login with another machine. [\#267](https://github.com/feathersjs/authentication/issues/267)
-- 0.8 authentication before hooks - only ever getting a 401 Unauthorised [\#263](https://github.com/feathersjs/authentication/issues/263)
-- REST Middleware breaks local auth [\#262](https://github.com/feathersjs/authentication/issues/262)
-- 0.8: Token Service errors on token auth using client [\#254](https://github.com/feathersjs/authentication/issues/254)
-- 0.8: Cookies, turning off feathers-session cookie also turns off feathers-jwt cookie. [\#253](https://github.com/feathersjs/authentication/issues/253)
-- Any example of how to do refresh token? [\#248](https://github.com/feathersjs/authentication/issues/248)
-- Custom Authentication Hooks [\#236](https://github.com/feathersjs/authentication/issues/236)
-- Is there an Authenticated Event [\#235](https://github.com/feathersjs/authentication/issues/235)
-- Error while using /auth/local [\#233](https://github.com/feathersjs/authentication/issues/233)
-- Providing token to feathers.authentication doesn't work [\#230](https://github.com/feathersjs/authentication/issues/230)
-- bundled hooks customize errors [\#215](https://github.com/feathersjs/authentication/issues/215)
-- Hooks should support a callback for conditionally running [\#210](https://github.com/feathersjs/authentication/issues/210)
-- restrictToRoles hook: More complex determination of "owner". [\#205](https://github.com/feathersjs/authentication/issues/205)
-- verifyToken hook option to error [\#200](https://github.com/feathersjs/authentication/issues/200)
-- Allow using restrictToOwner as an after hook [\#123](https://github.com/feathersjs/authentication/issues/123)
-
-**Merged pull requests:**
-
-- Manually supply an endpoint to the Client authenticate\(\) method [\#278](https://github.com/feathersjs/authentication/pull/278) ([mcnamee](https://github.com/mcnamee))
-- Update mocha to version 3.0.0 🚀 [\#257](https://github.com/feathersjs/authentication/pull/257) ([greenkeeperio-bot](https://github.com/greenkeeperio-bot))
-- Don’t mix options when signing tokens [\#255](https://github.com/feathersjs/authentication/pull/255) ([marshallswain](https://github.com/marshallswain))
-- Attempt to get token right away. [\#252](https://github.com/feathersjs/authentication/pull/252) ([marshallswain](https://github.com/marshallswain))
-- Update async to version 2.0.0 🚀 [\#240](https://github.com/feathersjs/authentication/pull/240) ([greenkeeperio-bot](https://github.com/greenkeeperio-bot))
-- Creates better way or returning data in a familiar format [\#234](https://github.com/feathersjs/authentication/pull/234) ([codingfriend1](https://github.com/codingfriend1))
-- Throws an error if restriction methods are used outside of a find or get hook [\#232](https://github.com/feathersjs/authentication/pull/232) ([codingfriend1](https://github.com/codingfriend1))
-- RestrictToOwner now takes an array [\#231](https://github.com/feathersjs/authentication/pull/231) ([sscaff1](https://github.com/sscaff1))
-- Adds ability to limit queries unless authenticated and authorized [\#229](https://github.com/feathersjs/authentication/pull/229) ([codingfriend1](https://github.com/codingfriend1))
-
-## [v0.7.9](https://github.com/feathersjs/authentication/tree/v0.7.9) (2016-06-20)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.7.8...v0.7.9)
-
-**Fixed bugs:**
-
-- Calling logout should revoke/blacklist a JWT [\#133](https://github.com/feathersjs/authentication/issues/133)
-
-**Closed issues:**
-
-- Query email rather than oauth provider id on /auth/\ [\#223](https://github.com/feathersjs/authentication/issues/223)
-- Cannot read property \'service\' of undefined [\#222](https://github.com/feathersjs/authentication/issues/222)
-
-**Merged pull requests:**
-
-- added support for hashing passwords when hook.data is an array [\#225](https://github.com/feathersjs/authentication/pull/225) ([eblin](https://github.com/eblin))
-- jwt ssl warning [\#214](https://github.com/feathersjs/authentication/pull/214) ([aboutlo](https://github.com/aboutlo))
-
-## [v0.7.8](https://github.com/feathersjs/authentication/tree/v0.7.8) (2016-06-09)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.7.7...v0.7.8)
-
-**Closed issues:**
-
-- Feathers-authentication assumptions [\#220](https://github.com/feathersjs/authentication/issues/220)
-- Server-side header option does not accept capital letters [\#218](https://github.com/feathersjs/authentication/issues/218)
-- How to figure out why redirect to /auth/failure? [\#217](https://github.com/feathersjs/authentication/issues/217)
-- Getting token via REST is not documented [\#216](https://github.com/feathersjs/authentication/issues/216)
-- How to use Feathers Client to Authenticate Facebook/Instagram credentials [\#204](https://github.com/feathersjs/authentication/issues/204)
-- Remove token from localstorage [\#203](https://github.com/feathersjs/authentication/issues/203)
-- Check user password [\#193](https://github.com/feathersjs/authentication/issues/193)
-- app.authenticate\(\): Warning: a promise was rejected with a non-error: \[object Object\] [\#191](https://github.com/feathersjs/authentication/issues/191)
-- Authentication provider for Facebook Account Kit [\#189](https://github.com/feathersjs/authentication/issues/189)
-
-**Merged pull requests:**
-
-- Lowercase custom header [\#219](https://github.com/feathersjs/authentication/pull/219) ([mmwtsn](https://github.com/mmwtsn))
-- mocha@2.5.0 breaks build 🚨 [\#212](https://github.com/feathersjs/authentication/pull/212) ([greenkeeperio-bot](https://github.com/greenkeeperio-bot))
-- Small refactoring to simplify structure and remove code duplication [\#209](https://github.com/feathersjs/authentication/pull/209) ([daffl](https://github.com/daffl))
-- Use removeItem in the storage on logout [\#208](https://github.com/feathersjs/authentication/pull/208) ([daffl](https://github.com/daffl))
-- Misspelled in a comment [\#201](https://github.com/feathersjs/authentication/pull/201) ([tryy3](https://github.com/tryy3))
-- Update babel-plugin-add-module-exports to version 0.2.0 🚀 [\#199](https://github.com/feathersjs/authentication/pull/199) ([greenkeeperio-bot](https://github.com/greenkeeperio-bot))
-
-## [v0.7.7](https://github.com/feathersjs/authentication/tree/v0.7.7) (2016-05-05)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.7.6...v0.7.7)
-
-**Fixed bugs:**
-
-- OAuth2 authentication callback failing due to missing property [\#196](https://github.com/feathersjs/authentication/issues/196)
-
-**Merged pull requests:**
-
-- properly handle optional `\_json` property [\#197](https://github.com/feathersjs/authentication/pull/197) ([nyaaao](https://github.com/nyaaao))
-
-## [v0.7.6](https://github.com/feathersjs/authentication/tree/v0.7.6) (2016-05-03)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.7.5...v0.7.6)
-
-**Fixed bugs:**
-
-- Facebook Authentication should do a patch not an update. [\#174](https://github.com/feathersjs/authentication/issues/174)
-
-**Closed issues:**
-
-- Authenticated user [\#192](https://github.com/feathersjs/authentication/issues/192)
-- REST token revoke [\#185](https://github.com/feathersjs/authentication/issues/185)
-- TypeError: Cannot read property 'service' of undefined [\#173](https://github.com/feathersjs/authentication/issues/173)
-- Optionally Include password in the params.query object passed to User.find\(\) [\#171](https://github.com/feathersjs/authentication/issues/171)
-- Pass more to local authentication params [\#165](https://github.com/feathersjs/authentication/issues/165)
-- Support custom authentication strategies [\#157](https://github.com/feathersjs/authentication/issues/157)
-
-**Merged pull requests:**
-
-- Allow manipulation of params before checking credentials [\#186](https://github.com/feathersjs/authentication/pull/186) ([saiichihashimoto](https://github.com/saiichihashimoto))
-- Update feathers to version 2.0.1 🚀 [\#184](https://github.com/feathersjs/authentication/pull/184) ([greenkeeperio-bot](https://github.com/greenkeeperio-bot))
-- fix\(oauth2\): Use patch to update user in oauthCallback [\#183](https://github.com/feathersjs/authentication/pull/183) ([beevelop](https://github.com/beevelop))
-
-## [v0.7.5](https://github.com/feathersjs/authentication/tree/v0.7.5) (2016-04-23)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.7.4...v0.7.5)
-
-**Fixed bugs:**
-
-- restrictToOwner and restrictToRoles have invalid type checking [\#172](https://github.com/feathersjs/authentication/issues/172)
-
-**Closed issues:**
-
-- user fails to signup with facebook if there is also local auth [\#168](https://github.com/feathersjs/authentication/issues/168)
-- Unable to authenticate requests when using vanilla Socket.IO [\#166](https://github.com/feathersjs/authentication/issues/166)
-
-## [v0.7.4](https://github.com/feathersjs/authentication/tree/v0.7.4) (2016-04-18)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.7.3...v0.7.4)
-
-**Fixed bugs:**
-
-- restrictToOwner and restrictToRoles hooks don't work with nested models [\#163](https://github.com/feathersjs/authentication/issues/163)
-- Change restrictToOwner error when a request does not contain ID [\#160](https://github.com/feathersjs/authentication/issues/160)
-
-**Closed issues:**
-
-- authenticate\(\) can leak sensetive user data via token service [\#162](https://github.com/feathersjs/authentication/issues/162)
-- onBeforeLogin Hook [\#161](https://github.com/feathersjs/authentication/issues/161)
-
-**Merged pull requests:**
-
-- Hook fixes [\#164](https://github.com/feathersjs/authentication/pull/164) ([ekryski](https://github.com/ekryski))
-
-## [v0.7.3](https://github.com/feathersjs/authentication/tree/v0.7.3) (2016-04-16)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.7.2...v0.7.3)
-
-## [v0.7.2](https://github.com/feathersjs/authentication/tree/v0.7.2) (2016-04-16)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.7.1...v0.7.2)
-
-**Closed issues:**
-
-- Auth doesn't work with non default local.userEndpoint [\#159](https://github.com/feathersjs/authentication/issues/159)
-- Automatically add the hashPassword hook to local.userEndpoint [\#158](https://github.com/feathersjs/authentication/issues/158)
-- Client authentication\(\) storage option not documented [\#155](https://github.com/feathersjs/authentication/issues/155)
-- restrictToRoles availability inconsistency [\#153](https://github.com/feathersjs/authentication/issues/153)
-- Does not populate user for other services [\#150](https://github.com/feathersjs/authentication/issues/150)
-
-**Merged pull requests:**
-
-- Steal Compatibility [\#156](https://github.com/feathersjs/authentication/pull/156) ([marshallswain](https://github.com/marshallswain))
-
-## [v0.7.1](https://github.com/feathersjs/authentication/tree/v0.7.1) (2016-04-08)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.7.0...v0.7.1)
-
-**Closed issues:**
-
-- Documentation discrepancies [\#148](https://github.com/feathersjs/authentication/issues/148)
-- bcrypt is hardcoded [\#146](https://github.com/feathersjs/authentication/issues/146)
-- Update Docs, Guides, Examples for v0.7 [\#129](https://github.com/feathersjs/authentication/issues/129)
-- populateUser: allow option to populate without db call. [\#92](https://github.com/feathersjs/authentication/issues/92)
-
-**Merged pull requests:**
-
-- Update feathers-memory to version 0.7.0 🚀 [\#149](https://github.com/feathersjs/authentication/pull/149) ([greenkeeperio-bot](https://github.com/greenkeeperio-bot))
-- fix a typo [\#147](https://github.com/feathersjs/authentication/pull/147) ([chrjean](https://github.com/chrjean))
-- Fix copy paste typo in queryWithCurrentUser hook. [\#140](https://github.com/feathersjs/authentication/pull/140) ([juodumas](https://github.com/juodumas))
-
-## [v0.7.0](https://github.com/feathersjs/authentication/tree/v0.7.0) (2016-03-30)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.6.0...v0.7.0)
-
-**Fixed bugs:**
-
-- logout should de-authenticate a socket [\#136](https://github.com/feathersjs/authentication/issues/136)
-- \[Security\] JsonWebToken Lifecycle Concerns; Set HttpOnly = true in JWT cookie [\#132](https://github.com/feathersjs/authentication/issues/132)
-- restrictToRoles hook needs to throw an error and not scope the query [\#128](https://github.com/feathersjs/authentication/issues/128)
-- restrictToOwner hook needs to throw an error and not scope the query [\#127](https://github.com/feathersjs/authentication/issues/127)
-- \[security\] Generated tokens are broadcast to all socket clients \(by default\) [\#126](https://github.com/feathersjs/authentication/issues/126)
-- \[oAuth\] User profile should be updated every time they are authenticated [\#124](https://github.com/feathersjs/authentication/issues/124)
-- Logout should clear the cookie [\#122](https://github.com/feathersjs/authentication/issues/122)
-- Want the default success/fail routes, not the sendFile [\#121](https://github.com/feathersjs/authentication/issues/121)
-
-**Closed issues:**
-
-- Make all hooks optional if used internally [\#138](https://github.com/feathersjs/authentication/issues/138)
-- Throw errors for deprecated hooks and update documentation [\#134](https://github.com/feathersjs/authentication/issues/134)
-- v6.0.0: How can I return the user object along with the token ? [\#131](https://github.com/feathersjs/authentication/issues/131)
-- user field not getting populated [\#119](https://github.com/feathersjs/authentication/issues/119)
-- Move to bcryptjs [\#112](https://github.com/feathersjs/authentication/issues/112)
-- Bundled hooks should pull from auth config to avoid having to pass duplicate props. [\#93](https://github.com/feathersjs/authentication/issues/93)
-- Customize the JWT payload [\#78](https://github.com/feathersjs/authentication/issues/78)
-- Needs a test for verifying that a custom tokenEndpoint works. [\#59](https://github.com/feathersjs/authentication/issues/59)
-- Finish test coverage for existing features. [\#9](https://github.com/feathersjs/authentication/issues/9)
-
-**Merged pull requests:**
-
-- 0.7 Release [\#139](https://github.com/feathersjs/authentication/pull/139) ([ekryski](https://github.com/ekryski))
-
-## [v0.6.0](https://github.com/feathersjs/authentication/tree/v0.6.0) (2016-03-24)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.5.1...v0.6.0)
-
-**Fixed bugs:**
-
-- Token encoding is not using the idField option. [\#107](https://github.com/feathersjs/authentication/issues/107)
-- Logging out breaks in React Native [\#105](https://github.com/feathersjs/authentication/issues/105)
-- Updating User Attached to Params in Client [\#102](https://github.com/feathersjs/authentication/issues/102)
-- local auth should not redirect by default [\#89](https://github.com/feathersjs/authentication/issues/89)
-
-**Closed issues:**
-
-- Id of user can't be 0 for auth [\#116](https://github.com/feathersjs/authentication/issues/116)
-- how to authenticate user in the socket.io? [\#111](https://github.com/feathersjs/authentication/issues/111)
-- Wrong Status Error [\#110](https://github.com/feathersjs/authentication/issues/110)
-- TypeError: Cannot read property 'service' of undefined \(continued\) [\#108](https://github.com/feathersjs/authentication/issues/108)
-- `idField` breaks from `tokenService.create\(\)` to `populateUser\(\)` after hook [\#103](https://github.com/feathersjs/authentication/issues/103)
-
-**Merged pull requests:**
-
-- Bcryptjs [\#137](https://github.com/feathersjs/authentication/pull/137) ([ekryski](https://github.com/ekryski))
-- Allow user.id to be 0. Fixes \#116 [\#117](https://github.com/feathersjs/authentication/pull/117) ([marshallswain](https://github.com/marshallswain))
-- client should return a 401 error code when no token is provided [\#115](https://github.com/feathersjs/authentication/pull/115) ([ccummings](https://github.com/ccummings))
-- v0.6 - Bugs fixes, new hooks, and hook tests [\#109](https://github.com/feathersjs/authentication/pull/109) ([ekryski](https://github.com/ekryski))
-- primus client connect event is 'open' [\#106](https://github.com/feathersjs/authentication/pull/106) ([ahdinosaur](https://github.com/ahdinosaur))
-
-## [v0.5.1](https://github.com/feathersjs/authentication/tree/v0.5.1) (2016-03-15)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.5.0...v0.5.1)
-
-## [v0.5.0](https://github.com/feathersjs/authentication/tree/v0.5.0) (2016-03-14)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.4.1...v0.5.0)
-
-**Fixed bugs:**
-
-- Client should store token string and not the token object [\#95](https://github.com/feathersjs/authentication/issues/95)
-
-**Closed issues:**
-
-- using feathers-rest/client with feathers-authentication/client [\#94](https://github.com/feathersjs/authentication/issues/94)
-- populateUser can pull defaults from config, if available. [\#91](https://github.com/feathersjs/authentication/issues/91)
-- App level auth routes for multiple sub-routes [\#90](https://github.com/feathersjs/authentication/issues/90)
-- POST to /auth/local never gets response [\#88](https://github.com/feathersjs/authentication/issues/88)
-- populate-user.js do not get settings [\#86](https://github.com/feathersjs/authentication/issues/86)
-- Add rate limiting [\#81](https://github.com/feathersjs/authentication/issues/81)
-
-**Merged pull requests:**
-
-- Finalizing client side authentication module [\#101](https://github.com/feathersjs/authentication/pull/101) ([daffl](https://github.com/daffl))
-- Ten hours is only 36 seconds [\#99](https://github.com/feathersjs/authentication/pull/99) ([mileswilson](https://github.com/mileswilson))
-- Fix examples [\#98](https://github.com/feathersjs/authentication/pull/98) ([mastertinner](https://github.com/mastertinner))
-- fix html in templates [\#97](https://github.com/feathersjs/authentication/pull/97) ([mastertinner](https://github.com/mastertinner))
-- update populateUser\(\) hook [\#87](https://github.com/feathersjs/authentication/pull/87) ([kulakowka](https://github.com/kulakowka))
-- Customize the JWT payload [\#80](https://github.com/feathersjs/authentication/pull/80) ([enten](https://github.com/enten))
-
-## [v0.4.1](https://github.com/feathersjs/authentication/tree/v0.4.1) (2016-02-28)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.4.0...v0.4.1)
-
-**Fixed bugs:**
-
-- app.logout\(\) fails [\#85](https://github.com/feathersjs/authentication/issues/85)
-
-**Closed issues:**
-
-- Username response ? [\#84](https://github.com/feathersjs/authentication/issues/84)
-- User doesn't get populated after authentication with databases that don't use \_id [\#71](https://github.com/feathersjs/authentication/issues/71)
-- Support client usage in NodeJS [\#52](https://github.com/feathersjs/authentication/issues/52)
-- Support async storage for React Native [\#51](https://github.com/feathersjs/authentication/issues/51)
-- RequireAdmin on userService [\#36](https://github.com/feathersjs/authentication/issues/36)
-- Create test for changing the `usernameField` [\#1](https://github.com/feathersjs/authentication/issues/1)
-
-## [v0.4.0](https://github.com/feathersjs/authentication/tree/v0.4.0) (2016-02-27)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.3.5...v0.4.0)
-
-**Closed issues:**
-
-- Authentication not worked with hooks.remove\('password'\) [\#82](https://github.com/feathersjs/authentication/issues/82)
-
-**Merged pull requests:**
-
-- Refactoring for storage service [\#76](https://github.com/feathersjs/authentication/pull/76) ([ekryski](https://github.com/ekryski))
-
-## [v0.3.5](https://github.com/feathersjs/authentication/tree/v0.3.5) (2016-02-25)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.3.4...v0.3.5)
-
-**Merged pull requests:**
-
-- Adding support for OAuth2 token based auth strategies. Closes \#46. [\#77](https://github.com/feathersjs/authentication/pull/77) ([ekryski](https://github.com/ekryski))
-
-## [v0.3.4](https://github.com/feathersjs/authentication/tree/v0.3.4) (2016-02-25)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.3.3...v0.3.4)
-
-## [v0.3.3](https://github.com/feathersjs/authentication/tree/v0.3.3) (2016-02-25)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.3.2...v0.3.3)
-
-## [v0.3.2](https://github.com/feathersjs/authentication/tree/v0.3.2) (2016-02-24)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.3.1...v0.3.2)
-
-**Merged pull requests:**
-
-- bumping feathers-errors version [\#79](https://github.com/feathersjs/authentication/pull/79) ([ekryski](https://github.com/ekryski))
-
-## [v0.3.1](https://github.com/feathersjs/authentication/tree/v0.3.1) (2016-02-23)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.3.0...v0.3.1)
-
-**Closed issues:**
-
-- Fix toLowerCase hook [\#74](https://github.com/feathersjs/authentication/issues/74)
-- REST auth/local not working if socketio\(\) not set [\#72](https://github.com/feathersjs/authentication/issues/72)
-- Support mobile authentication via OAuth2 [\#46](https://github.com/feathersjs/authentication/issues/46)
-
-**Merged pull requests:**
-
-- Fix toLowerCase hook [\#75](https://github.com/feathersjs/authentication/pull/75) ([enten](https://github.com/enten))
-
-## [v0.3.0](https://github.com/feathersjs/authentication/tree/v0.3.0) (2016-02-19)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.2.4...v0.3.0)
-
-**Fixed bugs:**
-
-- Don't register successRedirect route if custom one is passed in [\#61](https://github.com/feathersjs/authentication/issues/61)
-
-**Closed issues:**
-
-- Specify the secret in one place instead of two [\#69](https://github.com/feathersjs/authentication/issues/69)
-- support a failRedirect [\#62](https://github.com/feathersjs/authentication/issues/62)
-- Document authentication updates [\#50](https://github.com/feathersjs/authentication/issues/50)
-
-**Merged pull requests:**
-
-- Config options [\#70](https://github.com/feathersjs/authentication/pull/70) ([ekryski](https://github.com/ekryski))
-
-## [v0.2.4](https://github.com/feathersjs/authentication/tree/v0.2.4) (2016-02-17)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.2.3...v0.2.4)
-
-**Closed issues:**
-
-- Find "query" is replaced by token [\#64](https://github.com/feathersjs/authentication/issues/64)
-
-**Merged pull requests:**
-
-- Add module exports Babel module and test CommonJS compatibility [\#68](https://github.com/feathersjs/authentication/pull/68) ([daffl](https://github.com/daffl))
-
-## [v0.2.3](https://github.com/feathersjs/authentication/tree/v0.2.3) (2016-02-15)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.2.2...v0.2.3)
-
-**Closed issues:**
-
-- How to forbid get and find on the userEndpoint? [\#66](https://github.com/feathersjs/authentication/issues/66)
-- userEndpoint problem in sub-app [\#63](https://github.com/feathersjs/authentication/issues/63)
-- How to modify successRedirect in local authentication? [\#60](https://github.com/feathersjs/authentication/issues/60)
-
-**Merged pull requests:**
-
-- Removing assigning token to params.query for sockets. [\#67](https://github.com/feathersjs/authentication/pull/67) ([ekryski](https://github.com/ekryski))
-- Fixing client query [\#65](https://github.com/feathersjs/authentication/pull/65) ([fastlorenzo](https://github.com/fastlorenzo))
-
-## [v0.2.2](https://github.com/feathersjs/authentication/tree/v0.2.2) (2016-02-13)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.2.1...v0.2.2)
-
-**Closed issues:**
-
-- Custom tokenEndpoint failing [\#57](https://github.com/feathersjs/authentication/issues/57)
-- TypeError: Cannot read property 'service' of undefined [\#56](https://github.com/feathersjs/authentication/issues/56)
-- Login returns 500: Internal server error [\#54](https://github.com/feathersjs/authentication/issues/54)
-
-**Merged pull requests:**
-
-- Fixing token endpoint [\#58](https://github.com/feathersjs/authentication/pull/58) ([marshallswain](https://github.com/marshallswain))
-
-## [v0.2.1](https://github.com/feathersjs/authentication/tree/v0.2.1) (2016-02-12)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.2.0...v0.2.1)
-
-**Closed issues:**
-
-- Custom local options not being respected. [\#55](https://github.com/feathersjs/authentication/issues/55)
-- node can not require\("feathers-authentication"\).default [\#53](https://github.com/feathersjs/authentication/issues/53)
-
-## [v0.2.0](https://github.com/feathersjs/authentication/tree/v0.2.0) (2016-02-12)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.1.2...v0.2.0)
-
-**Closed issues:**
-
-- Support graceful fallback to cookies [\#45](https://github.com/feathersjs/authentication/issues/45)
-- Add a client side component for authentication [\#44](https://github.com/feathersjs/authentication/issues/44)
-- Support OAuth2 [\#43](https://github.com/feathersjs/authentication/issues/43)
-- Support token based authentication [\#41](https://github.com/feathersjs/authentication/issues/41)
-- Support local authentication [\#40](https://github.com/feathersjs/authentication/issues/40)
-- Only sign the JWT with user id. Not the whole user object [\#38](https://github.com/feathersjs/authentication/issues/38)
-- Discussion: Securing token for socket.io auth [\#33](https://github.com/feathersjs/authentication/issues/33)
-- Handling expired tokens [\#25](https://github.com/feathersjs/authentication/issues/25)
-- Support multiple auth providers [\#6](https://github.com/feathersjs/authentication/issues/6)
-
-**Merged pull requests:**
-
-- Decoupling [\#49](https://github.com/feathersjs/authentication/pull/49) ([ekryski](https://github.com/ekryski))
-- Adding an auth client [\#48](https://github.com/feathersjs/authentication/pull/48) ([ekryski](https://github.com/ekryski))
-- Validate if provider [\#39](https://github.com/feathersjs/authentication/pull/39) ([mastertinner](https://github.com/mastertinner))
-
-## [v0.1.2](https://github.com/feathersjs/authentication/tree/v0.1.2) (2016-02-04)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.1.1...v0.1.2)
-
-**Closed issues:**
-
-- Hooks should support incoming data as arrays of objects. [\#34](https://github.com/feathersjs/authentication/issues/34)
-- Support authenticating with Username and Password via sockets [\#32](https://github.com/feathersjs/authentication/issues/32)
-
-**Merged pull requests:**
-
-- Check for params.provider in requireAuth hook [\#37](https://github.com/feathersjs/authentication/pull/37) ([marshallswain](https://github.com/marshallswain))
-- safety check for data [\#35](https://github.com/feathersjs/authentication/pull/35) ([deanmcpherson](https://github.com/deanmcpherson))
-
-## [v0.1.1](https://github.com/feathersjs/authentication/tree/v0.1.1) (2016-01-30)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.1.0...v0.1.1)
-
-## [v0.1.0](https://github.com/feathersjs/authentication/tree/v0.1.0) (2016-01-25)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.0.8...v0.1.0)
-
-**Closed issues:**
-
-- Get the Travis build to work. [\#27](https://github.com/feathersjs/authentication/issues/27)
-- Login not working [\#24](https://github.com/feathersjs/authentication/issues/24)
-- Hooks should be configurable \(they should be functions\) [\#11](https://github.com/feathersjs/authentication/issues/11)
-- Document the bundled hooks. [\#10](https://github.com/feathersjs/authentication/issues/10)
-
-**Merged pull requests:**
-
-- Migrate docs to book [\#31](https://github.com/feathersjs/authentication/pull/31) ([marshallswain](https://github.com/marshallswain))
-- hashPassword: Async bcrypt usage needs a promise [\#30](https://github.com/feathersjs/authentication/pull/30) ([marshallswain](https://github.com/marshallswain))
-- Removing extras from travis.yml [\#29](https://github.com/feathersjs/authentication/pull/29) ([marshallswain](https://github.com/marshallswain))
-- Fixing build [\#28](https://github.com/feathersjs/authentication/pull/28) ([marshallswain](https://github.com/marshallswain))
-- Adding nsp check [\#26](https://github.com/feathersjs/authentication/pull/26) ([marshallswain](https://github.com/marshallswain))
-
-## [v0.0.8](https://github.com/feathersjs/authentication/tree/v0.0.8) (2016-01-16)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.0.7...v0.0.8)
-
-**Merged pull requests:**
-
-- Support services that use pagination. [\#23](https://github.com/feathersjs/authentication/pull/23) ([marshallswain](https://github.com/marshallswain))
-
-## [v0.0.7](https://github.com/feathersjs/authentication/tree/v0.0.7) (2016-01-07)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.0.6...v0.0.7)
-
-**Closed issues:**
-
-- Password isn't removed from responses when using a mongoose service for users endpoint [\#19](https://github.com/feathersjs/authentication/issues/19)
-- next called twice using socket.io and using an unauthenticated service [\#17](https://github.com/feathersjs/authentication/issues/17)
-- Switch to a callback-based field configuration? [\#15](https://github.com/feathersjs/authentication/issues/15)
-- Cannot authenticate [\#14](https://github.com/feathersjs/authentication/issues/14)
-- Allow require without `.default` [\#13](https://github.com/feathersjs/authentication/issues/13)
-- Login validation [\#2](https://github.com/feathersjs/authentication/issues/2)
-
-**Merged pull requests:**
-
-- Adding separate route for refreshing a login token. [\#21](https://github.com/feathersjs/authentication/pull/21) ([corymsmith](https://github.com/corymsmith))
-- Converting user model to object when using mongoose service [\#20](https://github.com/feathersjs/authentication/pull/20) ([corymsmith](https://github.com/corymsmith))
-- Fixing issue where next is called twice when hitting an unauthenticated service via socket.io [\#18](https://github.com/feathersjs/authentication/pull/18) ([corymsmith](https://github.com/corymsmith))
-- Fixing usage of mongoose service [\#16](https://github.com/feathersjs/authentication/pull/16) ([corymsmith](https://github.com/corymsmith))
-
-## [v0.0.6](https://github.com/feathersjs/authentication/tree/v0.0.6) (2015-11-22)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.0.5...v0.0.6)
-
-**Closed issues:**
-
-- Feathers Auth Configuration Error [\#12](https://github.com/feathersjs/authentication/issues/12)
-- Make sure we're returning proper error responses. [\#8](https://github.com/feathersjs/authentication/issues/8)
-
-## [v0.0.5](https://github.com/feathersjs/authentication/tree/v0.0.5) (2015-11-19)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.0.4...v0.0.5)
-
-## [v0.0.4](https://github.com/feathersjs/authentication/tree/v0.0.4) (2015-11-19)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v0.0.3...v0.0.4)
-
-## [v0.0.3](https://github.com/feathersjs/authentication/tree/v0.0.3) (2015-11-18)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.0.6...v0.0.3)
-
-**Merged pull requests:**
-
-- allow runtime auth via socket.io [\#4](https://github.com/feathersjs/authentication/pull/4) ([randomnerd](https://github.com/randomnerd))
-
-## [v1.0.6](https://github.com/feathersjs/authentication/tree/v1.0.6) (2015-11-02)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.0.5...v1.0.6)
-
-## [v1.0.5](https://github.com/feathersjs/authentication/tree/v1.0.5) (2015-11-02)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.0.4...v1.0.5)
-
-## [v1.0.4](https://github.com/feathersjs/authentication/tree/v1.0.4) (2015-11-02)
-
-[Full Changelog](https://github.com/feathersjs/authentication/compare/v1.0.3...v1.0.4)
-
-## [v1.0.3](https://github.com/feathersjs/authentication/tree/v1.0.3) (2015-10-12)
-
-\* _This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)_
diff --git a/packages/authentication/LICENSE b/packages/authentication/LICENSE
deleted file mode 100644
index 7712f870f3..0000000000
--- a/packages/authentication/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2024 Feathers Contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
diff --git a/packages/authentication/README.md b/packages/authentication/README.md
deleted file mode 100644
index c669c7c280..0000000000
--- a/packages/authentication/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# @feathersjs/authentication
-
-[](https://github.com/feathersjs/feathers/actions?query=workflow%3ACI)
-[](https://www.npmjs.com/package/@feathersjs/authentication)
-[](https://discord.gg/qa8kez8QBx)
-
-> Add Authentication to your FeathersJS app.
-
-## Installation
-
-```
-npm install @feathersjs/authentication --save
-```
-
-## Documentation
-
-Refer to the [Feathers authentication API documentation](https://feathersjs.com/api/authentication/) for more details.
-
-## License
-
-Copyright (c) 2024 [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
-
-Licensed under the [MIT license](LICENSE).
diff --git a/packages/authentication/package.json b/packages/authentication/package.json
deleted file mode 100644
index 3f10ef4ed8..0000000000
--- a/packages/authentication/package.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "name": "@feathersjs/authentication",
- "description": "Add Authentication to your FeathersJS app.",
- "version": "5.0.34",
- "homepage": "https://feathersjs.com",
- "main": "lib/",
- "types": "lib/",
- "keywords": [
- "feathers",
- "feathers-plugin"
- ],
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/daffl"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/feathersjs/feathers.git",
- "directory": "packages/authentication"
- },
- "author": {
- "name": "Feathers contributors",
- "email": "hello@feathersjs.com",
- "url": "https://feathersjs.com"
- },
- "files": [
- "CHANGELOG.md",
- "LICENSE",
- "README.md",
- "src/**",
- "lib/**",
- "*.d.ts",
- "*.js"
- ],
- "contributors": [],
- "bugs": {
- "url": "https://github.com/feathersjs/feathers/issues"
- },
- "engines": {
- "node": ">= 12"
- },
- "scripts": {
- "prepublish": "npm run compile",
- "pack": "npm pack --pack-destination ../generators/test/build",
- "compile": "shx rm -rf lib/ && tsc && npm run pack",
- "test": "mocha --config ../../.mocharc.json --recursive test/**.test.ts test/**/*.test.ts"
- },
- "directories": {
- "lib": "lib"
- },
- "publishConfig": {
- "access": "public"
- },
- "dependencies": {
- "@feathersjs/commons": "^5.0.34",
- "@feathersjs/errors": "^5.0.34",
- "@feathersjs/feathers": "^5.0.34",
- "@feathersjs/hooks": "^0.9.0",
- "@feathersjs/schema": "^5.0.34",
- "@feathersjs/transport-commons": "^5.0.34",
- "@types/jsonwebtoken": "^9.0.10",
- "jsonwebtoken": "^9.0.2",
- "lodash": "^4.17.21",
- "long-timeout": "^0.1.1",
- "uuid": "^11.1.0"
- },
- "devDependencies": {
- "@feathersjs/memory": "^5.0.34",
- "@types/lodash": "^4.17.20",
- "@types/mocha": "^10.0.10",
- "@types/node": "^24.1.0",
- "@types/uuid": "^10.0.0",
- "mocha": "^11.7.1",
- "shx": "^0.4.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.9.2"
- },
- "gitHead": "90caf635aec850550b9d37bea2762af959d9e8d5"
-}
diff --git a/packages/authentication/src/core.ts b/packages/authentication/src/core.ts
deleted file mode 100644
index 623bc56d40..0000000000
--- a/packages/authentication/src/core.ts
+++ /dev/null
@@ -1,318 +0,0 @@
-import merge from 'lodash/merge'
-import jsonwebtoken, { SignOptions, Secret, VerifyOptions, Algorithm } from 'jsonwebtoken'
-import { v4 as uuidv4 } from 'uuid'
-import { NotAuthenticated } from '@feathersjs/errors'
-import { createDebug } from '@feathersjs/commons'
-import { Application, Params } from '@feathersjs/feathers'
-import { IncomingMessage, ServerResponse } from 'http'
-import { AuthenticationConfiguration, defaultOptions } from './options'
-
-const debug = createDebug('@feathersjs/authentication/base')
-
-export interface AuthenticationResult {
- [key: string]: any
-}
-
-export interface AuthenticationRequest {
- strategy?: string
- [key: string]: any
-}
-
-export interface AuthenticationParams extends Params {
- payload?: { [key: string]: any }
- jwtOptions?: SignOptions
- authStrategies?: string[]
- secret?: string
- [key: string]: any
-}
-
-export type ConnectionEvent = 'login' | 'logout' | 'disconnect'
-
-export interface AuthenticationStrategy {
- /**
- * Implement this method to get access to the AuthenticationService
- *
- * @param auth The AuthenticationService
- */
- setAuthentication?(auth: AuthenticationBase): void
- /**
- * Implement this method to get access to the Feathers application
- *
- * @param app The Feathers application instance
- */
- setApplication?(app: Application): void
- /**
- * Implement this method to get access to the strategy name
- *
- * @param name The name of the strategy
- */
- setName?(name: string): void
- /**
- * Implement this method to verify the current configuration
- * and throw an error if it is invalid.
- */
- verifyConfiguration?(): void
- /**
- * Implement this method to setup this strategy
- * @param auth The AuthenticationService
- * @param name The name of the strategy
- */
- setup?(auth: AuthenticationBase, name: string): Promise
- /**
- * Authenticate an authentication request with this strategy.
- * Should throw an error if the strategy did not succeed.
- *
- * @param authentication The authentication request
- * @param params The service call parameters
- */
- authenticate?(
- authentication: AuthenticationRequest,
- params: AuthenticationParams
- ): Promise
- /**
- * Update a real-time connection according to this strategy.
- *
- * @param connection The real-time connection
- * @param context The hook context
- */
- handleConnection?(event: ConnectionEvent, connection: any, authResult?: AuthenticationResult): Promise
- /**
- * Parse a basic HTTP request and response for authentication request information.
- *
- * @param req The HTTP request
- * @param res The HTTP response
- */
- parse?(req: IncomingMessage, res: ServerResponse): Promise
-}
-
-export interface JwtVerifyOptions extends VerifyOptions {
- algorithm?: string | string[]
-}
-
-/**
- * A base class for managing authentication strategies and creating and verifying JWTs
- */
-export class AuthenticationBase {
- app: Application
- strategies: { [key: string]: AuthenticationStrategy }
- configKey: string
- isReady: boolean
-
- /**
- * Create a new authentication service.
- *
- * @param app The Feathers application instance
- * @param configKey The configuration key name in `app.get` (default: `authentication`)
- * @param options Optional initial options
- */
- constructor(app: Application, configKey = 'authentication', options = {}) {
- if (!app || typeof app.use !== 'function') {
- throw new Error('An application instance has to be passed to the authentication service')
- }
-
- this.app = app
- this.strategies = {}
- this.configKey = configKey
- this.isReady = false
-
- app.set('defaultAuthentication', app.get('defaultAuthentication') || configKey)
- app.set(configKey, merge({}, app.get(configKey), options))
- }
-
- /**
- * Return the current configuration from the application
- */
- get configuration(): AuthenticationConfiguration {
- // Always returns a copy of the authentication configuration
- return Object.assign({}, defaultOptions, this.app.get(this.configKey))
- }
-
- /**
- * A list of all registered strategy names
- */
- get strategyNames() {
- return Object.keys(this.strategies)
- }
-
- /**
- * Register a new authentication strategy under a given name.
- *
- * @param name The name to register the strategy under
- * @param strategy The authentication strategy instance
- */
- register(name: string, strategy: AuthenticationStrategy) {
- // Call the functions a strategy can implement
- if (typeof strategy.setName === 'function') {
- strategy.setName(name)
- }
-
- if (typeof strategy.setApplication === 'function') {
- strategy.setApplication(this.app)
- }
-
- if (typeof strategy.setAuthentication === 'function') {
- strategy.setAuthentication(this)
- }
-
- if (typeof strategy.verifyConfiguration === 'function') {
- strategy.verifyConfiguration()
- }
-
- // Register strategy as name
- this.strategies[name] = strategy
-
- if (this.isReady) {
- strategy.setup?.(this, name)
- }
- }
-
- /**
- * Get the registered authentication strategies for a list of names.
- *
- * @param names The list or strategy names
- */
- getStrategies(...names: string[]) {
- return names.map((name) => this.strategies[name]).filter((current) => !!current)
- }
-
- /**
- * Returns a single strategy by name
- *
- * @param name The strategy name
- * @returns The authentication strategy or undefined
- */
- getStrategy(name: string) {
- return this.strategies[name]
- }
-
- /**
- * Create a new access token with payload and options.
- *
- * @param payload The JWT payload
- * @param optsOverride The options to extend the defaults (`configuration.jwtOptions`) with
- * @param secretOverride Use a different secret instead
- */
- async createAccessToken(
- payload: string | Buffer | object,
- optsOverride?: SignOptions,
- secretOverride?: Secret
- ) {
- const { secret, jwtOptions } = this.configuration
- // Use configuration by default but allow overriding the secret
- const jwtSecret = secretOverride || secret
- // Default jwt options merged with additional options
- const options = merge({}, jwtOptions, optsOverride)
-
- if (!options.jwtid) {
- // Generate a UUID as JWT ID by default
- options.jwtid = uuidv4()
- }
-
- return jsonwebtoken.sign(payload, jwtSecret, options)
- }
-
- /**
- * Verifies an access token.
- *
- * @param accessToken The token to verify
- * @param optsOverride The options to extend the defaults (`configuration.jwtOptions`) with
- * @param secretOverride Use a different secret instead
- */
- async verifyAccessToken(accessToken: string, optsOverride?: JwtVerifyOptions, secretOverride?: Secret) {
- const { secret, jwtOptions } = this.configuration
- const jwtSecret = secretOverride || secret
- const options = merge({}, jwtOptions, optsOverride)
- const { algorithm } = options
-
- // Normalize the `algorithm` setting into the algorithms array
- if (algorithm && !options.algorithms) {
- options.algorithms = (Array.isArray(algorithm) ? algorithm : [algorithm]) as Algorithm[]
- delete options.algorithm
- }
-
- try {
- const verified = jsonwebtoken.verify(accessToken, jwtSecret, options)
-
- return verified as any
- } catch (error: any) {
- throw new NotAuthenticated(error.message, error)
- }
- }
-
- /**
- * Authenticate a given authentication request against a list of strategies.
- *
- * @param authentication The authentication request
- * @param params Service call parameters
- * @param allowed A list of allowed strategy names
- */
- async authenticate(
- authentication: AuthenticationRequest,
- params: AuthenticationParams,
- ...allowed: string[]
- ) {
- const { strategy } = authentication || {}
- const [authStrategy] = this.getStrategies(strategy)
- const strategyAllowed = allowed.includes(strategy)
-
- debug('Running authenticate for strategy', strategy, allowed)
-
- if (!authentication || !authStrategy || !strategyAllowed) {
- const additionalInfo =
- (!strategy && ' (no `strategy` set)') ||
- (!strategyAllowed && ' (strategy not allowed in authStrategies)') ||
- ''
-
- // If there are no valid strategies or `authentication` is not an object
- throw new NotAuthenticated('Invalid authentication information' + additionalInfo)
- }
-
- return authStrategy.authenticate(authentication, {
- ...params,
- authenticated: true
- })
- }
-
- async handleConnection(event: ConnectionEvent, connection: any, authResult?: AuthenticationResult) {
- const strategies = this.getStrategies(...Object.keys(this.strategies)).filter(
- (current) => typeof current.handleConnection === 'function'
- )
-
- for (const strategy of strategies) {
- await strategy.handleConnection(event, connection, authResult)
- }
- }
-
- /**
- * Parse an HTTP request and response for authentication request information.
- *
- * @param req The HTTP request
- * @param res The HTTP response
- * @param names A list of strategies to use
- */
- async parse(req: IncomingMessage, res: ServerResponse, ...names: string[]) {
- const strategies = this.getStrategies(...names).filter((current) => typeof current.parse === 'function')
-
- debug('Strategies parsing HTTP header for authentication information', names)
-
- for (const authStrategy of strategies) {
- const value = await authStrategy.parse(req, res)
-
- if (value !== null) {
- return value
- }
- }
-
- return null
- }
-
- async setup() {
- this.isReady = true
-
- for (const name of Object.keys(this.strategies)) {
- const strategy = this.strategies[name]
-
- await strategy.setup?.(this, name)
- }
- }
-}
diff --git a/packages/authentication/src/hooks/authenticate.ts b/packages/authentication/src/hooks/authenticate.ts
deleted file mode 100644
index ad3cdf4c11..0000000000
--- a/packages/authentication/src/hooks/authenticate.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-import { HookContext, NextFunction } from '@feathersjs/feathers'
-import { NotAuthenticated } from '@feathersjs/errors'
-import { createDebug } from '@feathersjs/commons'
-
-const debug = createDebug('@feathersjs/authentication/hooks/authenticate')
-
-export interface AuthenticateHookSettings {
- service?: string
- strategies?: string[]
-}
-
-export default (originalSettings: string | AuthenticateHookSettings, ...originalStrategies: string[]) => {
- const settings =
- typeof originalSettings === 'string'
- ? { strategies: [originalSettings, ...originalStrategies] }
- : originalSettings
-
- if (!originalSettings || settings.strategies.length === 0) {
- throw new Error('The authenticate hook needs at least one allowed strategy')
- }
-
- return async (context: HookContext, _next?: NextFunction) => {
- const next = typeof _next === 'function' ? _next : async () => context
- const { app, params, type, path, service } = context
- const { strategies } = settings
- const { provider, authentication } = params
- const authService = app.defaultAuthentication(settings.service)
-
- debug(`Running authenticate hook on '${path}'`)
-
- if (type && type !== 'before' && type !== 'around') {
- throw new NotAuthenticated('The authenticate hook must be used as a before hook')
- }
-
- if (!authService || typeof authService.authenticate !== 'function') {
- throw new NotAuthenticated('Could not find a valid authentication service')
- }
-
- if (service === authService) {
- throw new NotAuthenticated(
- 'The authenticate hook does not need to be used on the authentication service'
- )
- }
-
- if (params.authenticated === true) {
- return next()
- }
-
- if (authentication) {
- const { provider, authentication, ...authParams } = params
-
- debug('Authenticating with', authentication, strategies)
-
- const authResult = await authService.authenticate(authentication, authParams, ...strategies)
-
- const { accessToken, ...authResultWithoutToken } = authResult
-
- context.params = {
- ...params,
- ...authResultWithoutToken,
- authenticated: true
- }
- } else if (provider) {
- throw new NotAuthenticated('Not authenticated')
- }
-
- return next()
- }
-}
diff --git a/packages/authentication/src/hooks/connection.ts b/packages/authentication/src/hooks/connection.ts
deleted file mode 100644
index 4cf06c12d6..0000000000
--- a/packages/authentication/src/hooks/connection.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { HookContext, NextFunction } from '@feathersjs/feathers'
-import { AuthenticationBase, ConnectionEvent } from '../core'
-
-export default (event: ConnectionEvent) => async (context: HookContext, next: NextFunction) => {
- await next()
-
- const {
- result,
- params: { connection }
- } = context
-
- if (connection) {
- const service = context.service as unknown as AuthenticationBase
-
- await service.handleConnection(event, connection, result)
- }
-}
diff --git a/packages/authentication/src/hooks/event.ts b/packages/authentication/src/hooks/event.ts
deleted file mode 100644
index 44b6953b91..0000000000
--- a/packages/authentication/src/hooks/event.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { HookContext, NextFunction } from '@feathersjs/feathers'
-import { createDebug } from '@feathersjs/commons'
-import { ConnectionEvent } from '../core'
-
-const debug = createDebug('@feathersjs/authentication/hooks/connection')
-
-export default (event: ConnectionEvent) => async (context: HookContext, next: NextFunction) => {
- await next()
-
- const { app, result, params } = context
-
- if (params.provider && result) {
- debug(`Sending authentication event '${event}'`)
- app.emit(event, result, params, context)
- }
-}
diff --git a/packages/authentication/src/hooks/index.ts b/packages/authentication/src/hooks/index.ts
deleted file mode 100644
index 4c9a354cfa..0000000000
--- a/packages/authentication/src/hooks/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export { default as authenticate } from './authenticate'
-export { default as connection } from './connection'
-export { default as event } from './event'
diff --git a/packages/authentication/src/index.ts b/packages/authentication/src/index.ts
deleted file mode 100644
index f7ea82a173..0000000000
--- a/packages/authentication/src/index.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-export * as hooks from './hooks'
-export { authenticate } from './hooks'
-export {
- AuthenticationBase,
- AuthenticationRequest,
- AuthenticationResult,
- AuthenticationStrategy,
- AuthenticationParams,
- ConnectionEvent,
- JwtVerifyOptions
-} from './core'
-export { AuthenticationBaseStrategy } from './strategy'
-export { AuthenticationService } from './service'
-export { JWTStrategy } from './jwt'
-export { authenticationSettingsSchema, AuthenticationConfiguration } from './options'
diff --git a/packages/authentication/src/jwt.ts b/packages/authentication/src/jwt.ts
deleted file mode 100644
index 0724760b12..0000000000
--- a/packages/authentication/src/jwt.ts
+++ /dev/null
@@ -1,190 +0,0 @@
-/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/ban-ts-comment */
-import { IncomingMessage } from 'http'
-import { NotAuthenticated } from '@feathersjs/errors'
-import { Params } from '@feathersjs/feathers'
-import { createDebug } from '@feathersjs/commons'
-// @ts-ignore
-import lt from 'long-timeout'
-
-import { AuthenticationBaseStrategy } from './strategy'
-import { AuthenticationParams, AuthenticationRequest, AuthenticationResult, ConnectionEvent } from './core'
-
-const debug = createDebug('@feathersjs/authentication/jwt')
-const SPLIT_HEADER = /(\S+)\s+(\S+)/
-
-export class JWTStrategy extends AuthenticationBaseStrategy {
- expirationTimers = new WeakMap()
-
- get configuration() {
- const authConfig = this.authentication.configuration
- const config = super.configuration
-
- return {
- service: authConfig.service,
- entity: authConfig.entity,
- entityId: authConfig.entityId,
- header: 'Authorization',
- schemes: ['Bearer', 'JWT'],
- ...config
- }
- }
-
- async handleConnection(
- event: ConnectionEvent,
- connection: any,
- authResult?: AuthenticationResult
- ): Promise {
- const isValidLogout =
- event === 'logout' &&
- connection.authentication &&
- authResult &&
- connection.authentication.accessToken === authResult.accessToken
-
- const { accessToken } = authResult || {}
- const { entity } = this.configuration
-
- if (accessToken && event === 'login') {
- debug('Adding authentication information to connection')
- const { exp } =
- authResult?.authentication?.payload || (await this.authentication.verifyAccessToken(accessToken))
- // The time (in ms) until the token expires
- const duration = exp * 1000 - Date.now()
- const timer = lt.setTimeout(() => this.app.emit('disconnect', connection), duration)
-
- debug(`Registering connection expiration timer for ${duration}ms`)
- lt.clearTimeout(this.expirationTimers.get(connection))
- this.expirationTimers.set(connection, timer)
-
- debug('Adding authentication information to connection')
- connection.authentication = {
- strategy: this.name,
- accessToken
- }
- connection[entity] = authResult[entity]
- } else if (event === 'disconnect' || isValidLogout) {
- debug('Removing authentication information and expiration timer from connection')
-
- await new Promise((resolve) =>
- process.nextTick(() => {
- delete connection[entity]
- delete connection.authentication
- resolve(connection)
- })
- )
-
- lt.clearTimeout(this.expirationTimers.get(connection))
- this.expirationTimers.delete(connection)
- }
- }
-
- verifyConfiguration() {
- const allowedKeys = ['entity', 'entityId', 'service', 'header', 'schemes']
-
- for (const key of Object.keys(this.configuration)) {
- if (!allowedKeys.includes(key)) {
- throw new Error(
- `Invalid JwtStrategy option 'authentication.${this.name}.${key}'. Did you mean to set it in 'authentication.jwtOptions'?`
- )
- }
- }
-
- if (typeof this.configuration.header !== 'string') {
- throw new Error(`The 'header' option for the ${this.name} strategy must be a string`)
- }
- }
-
- async getEntityQuery(_params: Params) {
- return {}
- }
-
- /**
- * Return the entity for a given id
- *
- * @param id The id to use
- * @param params Service call parameters
- */
- async getEntity(id: string, params: Params) {
- const entityService = this.entityService
- const { entity } = this.configuration
-
- debug('Getting entity', id)
-
- if (entityService === null) {
- throw new NotAuthenticated('Could not find entity service')
- }
-
- const query = await this.getEntityQuery(params)
- const { provider, ...paramsWithoutProvider } = params
- const result = await entityService.get(id, {
- ...paramsWithoutProvider,
- query
- })
-
- if (!params.provider) {
- return result
- }
-
- return entityService.get(id, { ...params, [entity]: result })
- }
-
- async getEntityId(authResult: AuthenticationResult, _params: Params) {
- return authResult.authentication.payload.sub
- }
-
- async authenticate(authentication: AuthenticationRequest, params: AuthenticationParams) {
- const { accessToken } = authentication
- const { entity } = this.configuration
-
- if (!accessToken) {
- throw new NotAuthenticated('No access token')
- }
-
- const payload = await this.authentication.verifyAccessToken(accessToken, params.jwt)
- const result = {
- accessToken,
- authentication: {
- strategy: 'jwt',
- accessToken,
- payload
- }
- }
-
- if (entity === null) {
- return result
- }
-
- const entityId = await this.getEntityId(result, params)
- const value = await this.getEntity(entityId, params)
-
- return {
- ...result,
- [entity]: value
- }
- }
-
- async parse(req: IncomingMessage): Promise<{
- strategy: string
- accessToken: string
- } | null> {
- const { header, schemes }: { header: string; schemes: string[] } = this.configuration
- const headerValue = req.headers && req.headers[header.toLowerCase()]
-
- if (!headerValue || typeof headerValue !== 'string') {
- return null
- }
-
- debug('Found parsed header value')
-
- const [, scheme, schemeValue] = headerValue.match(SPLIT_HEADER) || []
- const hasScheme = scheme && schemes.some((current) => new RegExp(current, 'i').test(scheme))
-
- if (scheme && !hasScheme) {
- return null
- }
-
- return {
- strategy: this.name,
- accessToken: hasScheme ? schemeValue : headerValue
- }
- }
-}
diff --git a/packages/authentication/src/options.ts b/packages/authentication/src/options.ts
deleted file mode 100644
index 2176889087..0000000000
--- a/packages/authentication/src/options.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { FromSchema, authenticationSettingsSchema } from '@feathersjs/schema'
-
-export const defaultOptions = {
- authStrategies: [] as string[],
- jwtOptions: {
- header: { typ: 'access' }, // by default is an access token but can be any type
- audience: 'https://yourdomain.com', // The resource server where the token is processed
- issuer: 'feathers', // The issuing server, application or resource
- algorithm: 'HS256',
- expiresIn: '1d'
- }
-}
-
-export { authenticationSettingsSchema }
-
-export type AuthenticationConfiguration = FromSchema
diff --git a/packages/authentication/src/service.ts b/packages/authentication/src/service.ts
deleted file mode 100644
index cba07330a1..0000000000
--- a/packages/authentication/src/service.ts
+++ /dev/null
@@ -1,203 +0,0 @@
-import merge from 'lodash/merge'
-import { NotAuthenticated } from '@feathersjs/errors'
-import '@feathersjs/transport-commons'
-import { createDebug } from '@feathersjs/commons'
-import { ServiceMethods } from '@feathersjs/feathers'
-import { resolveDispatch } from '@feathersjs/schema'
-import jsonwebtoken from 'jsonwebtoken'
-import { hooks } from '@feathersjs/hooks'
-
-import { AuthenticationBase, AuthenticationResult, AuthenticationRequest, AuthenticationParams } from './core'
-import { connection, event } from './hooks'
-import { RealTimeConnection } from '@feathersjs/feathers'
-
-const debug = createDebug('@feathersjs/authentication/service')
-
-declare module '@feathersjs/feathers/lib/declarations' {
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- interface FeathersApplication {
- // eslint-disable-line
- /**
- * Returns the default authentication service or the
- * authentication service for a given path.
- *
- * @param location The service path to use (optional)
- */
- defaultAuthentication?(location?: string): AuthenticationService
- }
-
- interface Params {
- authenticated?: boolean
- authentication?: AuthenticationRequest
- }
-}
-
-export class AuthenticationService
- extends AuthenticationBase
- implements Partial>
-{
- constructor(app: any, configKey = 'authentication', options = {}) {
- super(app, configKey, options)
-
- hooks(this, {
- create: [resolveDispatch(), event('login'), connection('login')],
- remove: [resolveDispatch(), event('logout'), connection('logout')]
- })
-
- this.app.on('disconnect', async (connection: RealTimeConnection) => {
- await this.handleConnection('disconnect', connection)
- })
-
- if (typeof app.defaultAuthentication !== 'function') {
- app.defaultAuthentication = function (location?: string) {
- const configKey = app.get('defaultAuthentication')
- const path =
- location ||
- Object.keys(this.services).find((current) => this.service(current).configKey === configKey)
-
- return path ? this.service(path) : null
- }
- }
- }
- /**
- * Return the payload for a JWT based on the authentication result.
- * Called internally by the `create` method.
- *
- * @param _authResult The current authentication result
- * @param params The service call parameters
- */
- async getPayload(_authResult: AuthenticationResult, params: AuthenticationParams) {
- // Uses `params.payload` or returns an empty payload
- const { payload = {} } = params
-
- return payload
- }
-
- /**
- * Returns the JWT options based on an authentication result.
- * By default sets the JWT subject to the entity id.
- *
- * @param authResult The authentication result
- * @param params Service call parameters
- */
- async getTokenOptions(authResult: AuthenticationResult, params: AuthenticationParams) {
- const { service, entity, entityId } = this.configuration
- const jwtOptions = merge({}, params.jwtOptions, params.jwt)
- const value = service && entity && authResult[entity]
-
- // Set the subject to the entity id if it is available
- if (value && !jwtOptions.subject) {
- const idProperty = entityId || this.app.service(service).id
- const subject = value[idProperty]
-
- if (subject === undefined) {
- throw new NotAuthenticated(`Can not set subject from ${entity}.${idProperty}`)
- }
-
- jwtOptions.subject = `${subject}`
- }
-
- return jwtOptions
- }
-
- /**
- * Create and return a new JWT for a given authentication request.
- * Will trigger the `login` event.
- *
- * @param data The authentication request (should include `strategy` key)
- * @param params Service call parameters
- */
- async create(data: AuthenticationRequest, params?: AuthenticationParams) {
- const authStrategies = params.authStrategies || this.configuration.authStrategies
-
- if (!authStrategies.length) {
- throw new NotAuthenticated('No authentication strategies allowed for creating a JWT (`authStrategies`)')
- }
-
- const authResult = await this.authenticate(data, params, ...authStrategies)
-
- debug('Got authentication result', authResult)
-
- if (authResult.accessToken) {
- return authResult
- }
-
- const [payload, jwtOptions] = await Promise.all([
- this.getPayload(authResult, params),
- this.getTokenOptions(authResult, params)
- ])
-
- debug('Creating JWT with', payload, jwtOptions)
-
- const accessToken = await this.createAccessToken(payload, jwtOptions, params.secret)
-
- return {
- accessToken,
- ...authResult,
- authentication: {
- ...authResult.authentication,
- payload: jsonwebtoken.decode(accessToken)
- }
- }
- }
-
- /**
- * Mark a JWT as removed. By default only verifies the JWT and returns the result.
- * Triggers the `logout` event.
- *
- * @param id The JWT to remove or null
- * @param params Service call parameters
- */
- async remove(id: string | null, params?: AuthenticationParams) {
- const { authentication } = params
- const { authStrategies } = this.configuration
-
- // When an id is passed it is expected to be the authentication `accessToken`
- if (id !== null && id !== authentication.accessToken) {
- throw new NotAuthenticated('Invalid access token')
- }
-
- debug('Verifying authentication strategy in remove')
-
- return this.authenticate(authentication, params, ...authStrategies)
- }
-
- /**
- * Validates the service configuration.
- */
- async setup() {
- await super.setup()
-
- // The setup method checks for valid settings and registers the
- // connection and event (login, logout) hooks
- const { secret, service, entity, entityId } = this.configuration
-
- if (typeof secret !== 'string') {
- throw new Error("A 'secret' must be provided in your authentication configuration")
- }
-
- if (entity !== null) {
- if (service === undefined) {
- throw new Error("The 'service' option is not set in the authentication configuration")
- }
-
- if (this.app.service(service) === undefined) {
- throw new Error(
- `The '${service}' entity service does not exist (set to 'null' if it is not required)`
- )
- }
-
- if (this.app.service(service).id === undefined && entityId === undefined) {
- throw new Error(
- `The '${service}' service does not have an 'id' property and no 'entityId' option is set.`
- )
- }
- }
-
- const publishable = this as any
-
- if (typeof publishable.publish === 'function') {
- publishable.publish((): any => null)
- }
- }
-}
diff --git a/packages/authentication/src/strategy.ts b/packages/authentication/src/strategy.ts
deleted file mode 100644
index 99a1ec9c58..0000000000
--- a/packages/authentication/src/strategy.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { AuthenticationStrategy, AuthenticationBase } from './core'
-import { Application, Service } from '@feathersjs/feathers'
-
-export class AuthenticationBaseStrategy implements AuthenticationStrategy {
- authentication?: AuthenticationBase
- app?: Application
- name?: string
-
- setAuthentication(auth: AuthenticationBase) {
- this.authentication = auth
- }
-
- setApplication(app: Application) {
- this.app = app
- }
-
- setName(name: string) {
- this.name = name
- }
-
- get configuration(): any {
- return this.authentication.configuration[this.name]
- }
-
- get entityService(): Service {
- const { service } = this.configuration
-
- if (!service) {
- return null
- }
-
- return this.app.service(service) || null
- }
-}
diff --git a/packages/authentication/test/core.test.ts b/packages/authentication/test/core.test.ts
deleted file mode 100644
index 3ffcf97ec3..0000000000
--- a/packages/authentication/test/core.test.ts
+++ /dev/null
@@ -1,445 +0,0 @@
-/* eslint-disable @typescript-eslint/ban-ts-comment */
-import assert from 'assert'
-import { feathers, Application } from '@feathersjs/feathers'
-import jwt from 'jsonwebtoken'
-import { Infer, schema } from '@feathersjs/schema'
-
-import { AuthenticationBase, AuthenticationRequest } from '../src/core'
-import { authenticationSettingsSchema } from '../src/options'
-import { Strategy1, Strategy2, MockRequest } from './fixtures'
-import { ServerResponse } from 'http'
-
-const UUID = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/
-
-describe('authentication/core', () => {
- let app: Application
- let auth: AuthenticationBase
-
- beforeEach(() => {
- app = feathers()
- auth = new AuthenticationBase(app, 'authentication', {
- entity: 'user',
- service: 'users',
- secret: 'supersecret',
- first: { hello: 'test' }
- })
-
- auth.register('first', new Strategy1())
- auth.register('second', new Strategy2())
- auth.register('dummy', {
- async authenticate(data: AuthenticationRequest) {
- return data
- }
- })
- })
-
- describe('configuration', () => {
- it('infers configuration from settings schema', async () => {
- const settingsSchema = schema({
- $id: 'AuthSettingsSchema',
- ...authenticationSettingsSchema
- } as const)
- type Settings = Infer