diff options
author | Ricardo <ricardo@cino.io> | 2023-10-13 14:12:03 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-13 13:12:03 +0100 |
commit | e503468660a13760010a94ecda5f0625c6f47f87 (patch) | |
tree | fa532f54fc5f091de08d55405ec6339bd2440a02 | |
parent | 1.3.16 [skip ci] (diff) | |
download | ferdium-server-e503468660a13760010a94ecda5f0625c6f47f87.tar.gz ferdium-server-e503468660a13760010a94ecda5f0625c6f47f87.tar.zst ferdium-server-e503468660a13760010a94ecda5f0625c6f47f87.zip |
Server re-build with latest AdonisJS framework & Typescript (#47)
* chore: setup first basis structure
* chore: ensure styling is loaded correctly
* chore: comply to new routing syntax by replace . with / in routes/resource locations
* chore: add login controller
* chore: correctly use views with slash instead of dot
* chore: working login + tests
* chore: clean up tests
* chore: add password-forgot endpoint and matching test
* chore: add delete page test
* chore: add logout test
* chore: add reset-password route and tests
* chore: remove obsolete comment
* chore: add account-page and tests
* chore: add data page & first step of the test
* chore: add transfer/import data feature and tests
* chore: add export and basic test
* chore: add all static api routes with tests
* Regenerate 'pnpm-lock.json' and fix bad merge conflict
WIP:
- Tests have been commented out since they dont work
- Server doesn't start
* easier dev and test runs
* - remove --require-pragma from reformat-files so formatting works properly
- run pnpm reformat-files over codebase
- remove .json files from .eslintignore
- add invalid.json file to .eslintignore
- configure prettier properly in eslint config
- add type jsdoc to prettier config
- run adonis generate:manifest command to regenerate ace-manifest.json
- specify volta in package.json
- introduce typecheck npm script
- remove unused .mjs extension from npm scripts
- install missing type definition dependencies
- add pnpm.allowedDeprecatedVersions to package.json
- fix invalid extends in tsconfig.json causing TS issues throughout codebase
- remove @ts-ignore throughout codebase which is not relevant anymore
- enable some of the tsconfig options
- remove outdated eslint-disable from codebase
- change deprecated faker.company.companyName() to faker.company.name()
- fix TS issues inside transfer.spec.ts
* - update to latest node and pnpm versions
- upgrade all non-major dependencies to latest
- install missing @types/luxon dependency
- add cuid to pnpm.allowedDeprecatedVersions
- add esModuleInterop config option to tsconfig
- migrate more deprecated faker methods to new ones
- add more temporary ts-ignore to code
* - update eslint config
- remove trailingComma: all since default in prettier v3
- add typecheck command to prepare-code npm script
- upgrade various dependencies to latest major version
- update tsconfig to include only useful config options
- disable some lint issues and fix others
* - add test command to prepare-code
- disable strictPropertyInitialization flag in tsconfig which creates issues with adonis models
- update precommit hook to excute pnpm prepare-code
- remove ts-ignore statements from all models
* fix node and pnpm dependency update
* add cross env (so that we can develop on windows)
* add signup endpoint (TODO: JWT auth)
* Add login endpoint
* Add me and updateMe endpoints
* Add service endpoint
* refactor: change endpoints to use jwt
* add recipes endpoint
* add workspaces endpoint
* fix web controllors for login and post import
* Update node deps
* Change auth middleware (for web) and exempt api from CSRF
* Add import endpoint (franz import)
* Fix export/import logic
* Fix service and workspace data in user/data
* Fix partial lint
* chore: workaround lint issues
* fix: migration naming had two .
* Sync back node with recipes repo
* Temporarily ignore typescript
* Fix adonisrc to handle public folder static assets
* Fix issue with production database
* add Legacy Password Provider
* Fix lint errors
* Fix issue on login errors frontend
* add Legacy Password Provider
* Fix issue with customIcons
* Fix issue with auth tokens
* Update 'node' to '18.18.0'
* make docker work
* improve docker entrypoint (test api performance)
* Add migration database script
* NODE_ENV on recipes
* prefer @ts-expect-error over @ts-ignore
* small fixes
* Update 'pnpm' to '8.7.6'
* fix error catch
* Automatically generate JWT Public and Private keys
* Use custom Adonis5-jwt
* Update code to use secret (old way, no breaking changes)
* Normalize appKey
* Trick to make JWT tokens on client work with new version
* Fix error with new JWT logic
* Change migration and how we store JWT
* Fix 500 response code (needs to be 401)
* Improve logic and fix bugs
* Fix build and entrypoint logic
* Catch error if appKey changes
* Add newToken logic
* Fix lint (ignore any errors)
* Add build for PRs
* pnpm reformat-files result
* Fix some tests
* Fix reset password not working (test failing)
* Restore csrfTokens (disabled by accident)
* Fix pnpm start command with .env
* Disable failing tests on the transfer endpoint (TODO)
* Add tests to PR build
* Fix build
* Remove unnecessary assertStatus
* Add typecheck
* hash password on UserFactory (fix build)
* Add JWT_USE_PEM true by default (increase security)
* fix name of github action
---------
Co-authored-by: Vijay A <vraravam@users.noreply.github.com>
Co-authored-by: Balaji Vijayakumar <kuttibalaji.v6@gmail.com>
Co-authored-by: MCMXC <16797721+mcmxcdev@users.noreply.github.com>
Co-authored-by: André Oliveira <oliveira.andrerodrigues95@gmail.com>
185 files changed, 15896 insertions, 5943 deletions
diff --git a/.adonisrc.json b/.adonisrc.json new file mode 100644 index 0000000..b776e25 --- /dev/null +++ b/.adonisrc.json | |||
@@ -0,0 +1,52 @@ | |||
1 | { | ||
2 | "typescript": true, | ||
3 | "commands": [ | ||
4 | "./commands", | ||
5 | "@adonisjs/core/build/commands/index.js", | ||
6 | "@adonisjs/repl/build/commands", | ||
7 | "@adonisjs/lucid/build/commands", | ||
8 | "@adonisjs/mail/build/commands", | ||
9 | "adonis5-jwt/build/commands" | ||
10 | ], | ||
11 | "exceptionHandlerNamespace": "App/Exceptions/Handler", | ||
12 | "aliases": { | ||
13 | "App": "app", | ||
14 | "Config": "config", | ||
15 | "Database": "database", | ||
16 | "Contracts": "contracts" | ||
17 | }, | ||
18 | "preloads": ["./start/routes", "./start/kernel", "./start/events"], | ||
19 | "providers": [ | ||
20 | "./providers/AppProvider", | ||
21 | "@adonisjs/core", | ||
22 | "@adonisjs/view", | ||
23 | "@adonisjs/lucid", | ||
24 | "@adonisjs/auth", | ||
25 | "@adonisjs/shield", | ||
26 | "@adonisjs/session", | ||
27 | "@adonisjs/mail", | ||
28 | "adonis5-jwt", | ||
29 | "./providers/LegacyHasherProvider" | ||
30 | ], | ||
31 | "aceProviders": ["@adonisjs/repl"], | ||
32 | "tests": { | ||
33 | "suites": [ | ||
34 | { | ||
35 | "name": "functional", | ||
36 | "files": ["tests/functional/**/*.spec(.ts|.js)"], | ||
37 | "timeout": 60000 | ||
38 | } | ||
39 | ] | ||
40 | }, | ||
41 | "testProviders": ["@japa/preset-adonis/TestsProvider"], | ||
42 | "metaFiles": [ | ||
43 | { | ||
44 | "pattern": "resources/views/**/*.edge", | ||
45 | "reloadServer": false | ||
46 | }, | ||
47 | { | ||
48 | "pattern": "public/**", | ||
49 | "reloadServer": false | ||
50 | } | ||
51 | ] | ||
52 | } | ||
diff --git a/.do/deploy.template.yaml b/.do/deploy.template.yaml deleted file mode 100644 index eae9e22..0000000 --- a/.do/deploy.template.yaml +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | spec: | ||
2 | alerts: | ||
3 | - rule: DEPLOYMENT_FAILED | ||
4 | - rule: DOMAIN_FAILED | ||
5 | databases: | ||
6 | - engine: PG | ||
7 | name: ferdium-db | ||
8 | num_nodes: 1 | ||
9 | size: db-s-dev-database | ||
10 | version: "12" | ||
11 | name: ferdium-server | ||
12 | region: lon | ||
13 | services: | ||
14 | - dockerfile_path: Dockerfile | ||
15 | git: | ||
16 | branch: main | ||
17 | repo_clone_url: https://github.com/ferdium/ferdium-server.git | ||
18 | envs: | ||
19 | - key: DB_HOST | ||
20 | scope: RUN_AND_BUILD_TIME | ||
21 | value: ${ferdium-db.HOSTNAME} | ||
22 | - key: DB_PORT | ||
23 | scope: RUN_AND_BUILD_TIME | ||
24 | value: ${ferdium-db.PORT} | ||
25 | - key: DB_USER | ||
26 | scope: RUN_AND_BUILD_TIME | ||
27 | value: ${ferdium-db.USERNAME} | ||
28 | - key: DB_PASSWORD | ||
29 | scope: RUN_AND_BUILD_TIME | ||
30 | value: ${ferdium-db.PASSWORD} | ||
31 | - key: DB_DATABASE | ||
32 | scope: RUN_AND_BUILD_TIME | ||
33 | value: ${ferdium-db.DATABASE} | ||
34 | - key: DB_CA_CERT | ||
35 | scope: RUN_AND_BUILD_TIME | ||
36 | value: ${ferdium-db.CA_CERT} | ||
37 | - key: DB_CONNECTION | ||
38 | scope: RUN_AND_BUILD_TIME | ||
39 | value: pg | ||
40 | http_port: 8080 | ||
41 | instance_count: 1 | ||
42 | instance_size_slug: basic-xxs | ||
43 | name: ferdium-server | ||
44 | routes: | ||
45 | - path: / | ||
46 | source_dir: / | ||
diff --git a/.dockerignore b/.dockerignore index 84d3156..f76f0a0 100644 --- a/.dockerignore +++ b/.dockerignore | |||
@@ -17,5 +17,12 @@ docker | |||
17 | node_modules | 17 | node_modules |
18 | .husky | 18 | .husky |
19 | 19 | ||
20 | # Ignore data folder | ||
21 | data | ||
22 | tmp | ||
23 | |||
20 | # Ignore recipes folder (it is pulled in the image by git) | 24 | # Ignore recipes folder (it is pulled in the image by git) |
21 | recipes | 25 | recipes |
26 | |||
27 | # Ignore build folder | ||
28 | build | ||
diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..2a66ad4 --- /dev/null +++ b/.env.development | |||
@@ -0,0 +1,15 @@ | |||
1 | #This is a minimal needed configuration for development | ||
2 | |||
3 | NODE_ENV=development | ||
4 | APP_URL=http://localhost:3333 | ||
5 | DB_CONNECTION=sqlite | ||
6 | APP_KEY=IDU2cMbrvS6iv5841YmFJSjnIqT1X1Nx | ||
7 | |||
8 | # These are needed if running outside of Docker | ||
9 | HOST=127.0.0.1 | ||
10 | PORT=3333 | ||
11 | |||
12 | IS_CREATION_ENABLED=true | ||
13 | IS_DASHBOARD_ENABLED=true | ||
14 | IS_REGISTRATION_ENABLED=true | ||
15 | CONNECT_WITH_FRANZ=true | ||
diff --git a/.env.example b/.env.example index a486df9..a288fde 100644 --- a/.env.example +++ b/.env.example | |||
@@ -1,3 +1,5 @@ | |||
1 | #This is a example file with all the available configuration options. | ||
2 | |||
1 | NODE_ENV=development | 3 | NODE_ENV=development |
2 | APP_URL=localhost | 4 | APP_URL=localhost |
3 | DB_CONNECTION=sqlite | 5 | DB_CONNECTION=sqlite |
@@ -19,8 +21,6 @@ IS_DASHBOARD_ENABLED=true | |||
19 | IS_REGISTRATION_ENABLED=true | 21 | IS_REGISTRATION_ENABLED=true |
20 | CONNECT_WITH_FRANZ=false | 22 | CONNECT_WITH_FRANZ=false |
21 | DATA_DIR=data | 23 | DATA_DIR=data |
22 | PUID=1000 | ||
23 | PGID=1000 | ||
24 | 24 | ||
25 | # These are needed if running outside of Docker | 25 | # These are needed if running outside of Docker |
26 | APP_KEY= # Need to set some value | 26 | APP_KEY= # Need to set some value |
diff --git a/.env.test b/.env.test new file mode 100644 index 0000000..c522ba5 --- /dev/null +++ b/.env.test | |||
@@ -0,0 +1,6 @@ | |||
1 | #This is a minimal needed configuration for test | ||
2 | |||
3 | NODE_ENV=test | ||
4 | ASSETS_DRIVER=fake | ||
5 | SESSION_DRIVER=memory | ||
6 | APP_KEY=IDU2cMbrvS6iv5841YmFJSjnIqT1X1Nx | ||
diff --git a/.eslintignore b/.eslintignore index 79e0599..606431b 100644 --- a/.eslintignore +++ b/.eslintignore | |||
@@ -29,8 +29,7 @@ node_modules | |||
29 | /recipes/ | 29 | /recipes/ |
30 | 30 | ||
31 | # package files | 31 | # package files |
32 | package.json | ||
33 | pnpm-lock.yaml | 32 | pnpm-lock.yaml |
34 | 33 | ||
35 | # Json | 34 | # Json |
36 | *.json | 35 | tests/functional/dashboard/import-stubs/invalid.json |
diff --git a/.eslintrc.js b/.eslintrc.js index d3bc05b..2660c04 100644 --- a/.eslintrc.js +++ b/.eslintrc.js | |||
@@ -1,33 +1,86 @@ | |||
1 | /** @type {import('eslint').Linter.Config} */ | ||
1 | module.exports = { | 2 | module.exports = { |
2 | root: true, | 3 | root: true, |
3 | env: { | 4 | parserOptions: { |
4 | commonjs: true, | 5 | ecmaVersion: 2018, |
5 | es6: true, | 6 | sourceType: 'module', |
6 | node: true, | 7 | project: './tsconfig.json', |
7 | }, | 8 | }, |
8 | extends: ['airbnb-base'], | 9 | ignorePatterns: ['node_modules', 'build', 'recipes', '.eslintrc.js'], |
10 | extends: [ | ||
11 | 'plugin:adonis/typescriptApp', | ||
12 | 'plugin:unicorn/recommended', | ||
13 | 'prettier', | ||
14 | ], | ||
15 | plugins: [], | ||
9 | globals: { | 16 | globals: { |
10 | Atomics: 'readonly', | 17 | use: true, |
11 | SharedArrayBuffer: 'readonly', | ||
12 | use: 'readonly', | ||
13 | window: 'readonly', | ||
14 | document: 'readonly', | ||
15 | ENV: 'readonly', | ||
16 | session: 'readonly', | ||
17 | response: 'readonly', | ||
18 | }, | 18 | }, |
19 | parserOptions: { | 19 | env: { |
20 | ecmaVersion: 2018, | 20 | es6: true, |
21 | node: true, | ||
21 | }, | 22 | }, |
23 | reportUnusedDisableDirectives: true, | ||
24 | overrides: [ | ||
25 | { | ||
26 | files: ['**/*.ts'], | ||
27 | extends: [ | ||
28 | 'plugin:adonis/typescriptApp', | ||
29 | 'plugin:@typescript-eslint/eslint-recommended', | ||
30 | 'plugin:@typescript-eslint/strict', | ||
31 | // TODO: Opt-in to a stricter ruleset in the future | ||
32 | // 'plugin:@typescript-eslint/strict-type-checked', | ||
33 | 'plugin:@typescript-eslint/stylistic-type-checked', | ||
34 | 'plugin:import/typescript', | ||
35 | ], | ||
36 | parser: '@typescript-eslint/parser', | ||
37 | plugins: [], | ||
38 | rules: { | ||
39 | // eslint | ||
40 | 'max-len': 0, | ||
41 | |||
42 | // @typescript-eslint | ||
43 | '@typescript-eslint/no-non-null-assertion': 0, | ||
44 | '@typescript-eslint/no-empty-interface': 0, | ||
45 | '@typescript-eslint/semi': 0, | ||
46 | '@typescript-eslint/space-before-function-paren': 0, | ||
47 | '@typescript-eslint/no-extraneous-class': 0, | ||
48 | '@typescript-eslint/ban-ts-comment': 0, | ||
49 | '@typescript-eslint/prefer-ts-expect-error': 0, | ||
50 | }, | ||
51 | }, | ||
52 | ], | ||
22 | rules: { | 53 | rules: { |
23 | 'arrow-parens': 0, | 54 | // eslint |
24 | 'class-methods-use-this': 0, | 55 | 'array-callback-return': 1, |
25 | eqeqeq: 1, | 56 | 'consistent-return': 1, |
26 | 'implicit-arrow-linebreak': 0, | ||
27 | 'max-len': 0, | 57 | 'max-len': 0, |
28 | 'no-await-in-loop': 1, | 58 | 'no-await-in-loop': 1, |
29 | 'no-restricted-syntax': 0, | 59 | 'no-return-assign': 1, |
30 | 'operator-linebreak': 0, | 60 | 'no-console': [ |
31 | 'object-curly-newline': 0, | 61 | 1, |
62 | { | ||
63 | allow: ['warn', 'error'], | ||
64 | }, | ||
65 | ], | ||
66 | 'no-param-reassign': 1, | ||
67 | 'prefer-destructuring': 1, | ||
68 | // eslint-plugin-unicorn | ||
69 | 'unicorn/filename-case': 0, | ||
70 | 'unicorn/prefer-module': 0, | ||
71 | 'unicorn/prevent-abbreviations': 0, | ||
72 | |||
73 | 'unicorn/import-style': [ | ||
74 | 2, | ||
75 | { | ||
76 | styles: { | ||
77 | path: { | ||
78 | named: true, | ||
79 | }, | ||
80 | }, | ||
81 | }, | ||
82 | ], | ||
83 | 'unicorn/no-empty-file': 0, | ||
84 | 'unicorn/prefer-top-level-await': 0, | ||
32 | }, | 85 | }, |
33 | }; | 86 | }; |
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..c49eed4 --- /dev/null +++ b/.github/workflows/build.yml | |||
@@ -0,0 +1,30 @@ | |||
1 | name: AdonisJS check | ||
2 | |||
3 | on: | ||
4 | pull_request: | ||
5 | branches: [main] | ||
6 | |||
7 | jobs: | ||
8 | adonis-js-check: | ||
9 | runs-on: ubuntu-latest | ||
10 | |||
11 | steps: | ||
12 | - uses: actions/checkout@v3 | ||
13 | |||
14 | - name: Use Node.js specified in the '.nvmrc' file | ||
15 | uses: actions/setup-node@v3 | ||
16 | with: | ||
17 | node-version-file: ".nvmrc" | ||
18 | |||
19 | - name: Install pnpm | ||
20 | run: npm i -gf "pnpm@$(node -p 'require("./package.json").engines.pnpm')" && pnpm -v | ||
21 | |||
22 | - run: pnpm install | ||
23 | |||
24 | - run: pnpm typecheck | ||
25 | |||
26 | - run: pnpm lint | ||
27 | |||
28 | - run: pnpm test | ||
29 | |||
30 | - run: pnpm run build | ||
@@ -349,6 +349,8 @@ tags | |||
349 | 349 | ||
350 | # Adonis directory for storing tmp files | 350 | # Adonis directory for storing tmp files |
351 | tmp | 351 | tmp |
352 | build | ||
353 | public/assets | ||
352 | 354 | ||
353 | # Environment variables, never commit this file | 355 | # Environment variables, never commit this file |
354 | .env | 356 | .env |
diff --git a/.husky/pre-commit b/.husky/pre-commit index d1505ba..c22c561 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit | |||
@@ -6,5 +6,5 @@ FILE_NAME="$(dirname "$0")/_/husky.sh" | |||
6 | if [ -f $FILE_NAME ]; then | 6 | if [ -f $FILE_NAME ]; then |
7 | . $FILE_NAME | 7 | . $FILE_NAME |
8 | pnpm prepare | 8 | pnpm prepare |
9 | pnpm lint | 9 | pnpm prepare-code |
10 | fi | 10 | fi |
@@ -1,5 +1,4 @@ | |||
1 | save-exact = true | 1 | save-exact = true |
2 | engine-strict = true | 2 | engine-strict = true |
3 | unsafe-perm = true | 3 | unsafe-perm = true |
4 | legacy-peer-deps = true | ||
5 | frozen-lockfile = false | 4 | frozen-lockfile = false |
diff --git a/.prettierrc.js b/.prettierrc.js index 443f0c6..f2feee8 100644 --- a/.prettierrc.js +++ b/.prettierrc.js | |||
@@ -1,5 +1,5 @@ | |||
1 | /** @type {import("prettier").Options} */ | ||
1 | module.exports = { | 2 | module.exports = { |
2 | singleQuote: true, | 3 | singleQuote: true, |
3 | arrowParens: 'avoid', | 4 | arrowParens: 'avoid', |
4 | trailingComma: 'all', | 5 | }; |
5 | } | ||
@@ -9,6 +9,7 @@ COPY . /server-build | |||
9 | ENV CI=true | 9 | ENV CI=true |
10 | RUN PNPM_VERSION=$(node -p 'require("./package.json").engines.pnpm'); npm i -g pnpm@$PNPM_VERSION | 10 | RUN PNPM_VERSION=$(node -p 'require("./package.json").engines.pnpm'); npm i -g pnpm@$PNPM_VERSION |
11 | RUN pnpm install --config.build-from-source=sqlite --config.sqlite=/usr/local | 11 | RUN pnpm install --config.build-from-source=sqlite --config.sqlite=/usr/local |
12 | RUN pnpm build | ||
12 | 13 | ||
13 | # ---- RUNTIME IMAGE ---------------------------------------------------------- | 14 | # ---- RUNTIME IMAGE ---------------------------------------------------------- |
14 | FROM node:18.18.0-alpine | 15 | FROM node:18.18.0-alpine |
@@ -19,7 +20,9 @@ LABEL maintainer="ferdium" | |||
19 | # TODO: Shouldn't we set 'NODE_ENV=production' when running in production mode? | 20 | # TODO: Shouldn't we set 'NODE_ENV=production' when running in production mode? |
20 | ENV HOST=0.0.0.0 PORT=3333 DATA_DIR="/data" | 21 | ENV HOST=0.0.0.0 PORT=3333 DATA_DIR="/data" |
21 | 22 | ||
22 | RUN apk add --no-cache sqlite-libs curl su-exec python3 make g++ py3-pip git py3-pip | 23 | RUN apk add --no-cache sqlite-libs curl su-exec python3 make g++ py3-pip git py3-pip sqlite |
24 | # The next command is needed for sqlite3 install command executed by node-gyp | ||
25 | # RUN ln -s /usr/bin/python3 /usr/bin/python | ||
23 | 26 | ||
24 | 27 | ||
25 | COPY --from=build /server-build /app | 28 | COPY --from=build /server-build /app |
@@ -1,4 +1,4 @@ | |||
1 | <p align="center"> | 1 | <p align="center"> |
2 | <img src="./logo.png" alt="" width="300"/> | 2 | <img src="./logo.png" alt="" width="300"/> |
3 | </p> | 3 | </p> |
4 | 4 | ||
@@ -1,21 +1,16 @@ | |||
1 | 'use strict' | ||
2 | |||
3 | /* | 1 | /* |
4 | |-------------------------------------------------------------------------- | 2 | |-------------------------------------------------------------------------- |
5 | | Ace Commands | 3 | | Ace Commands |
6 | |-------------------------------------------------------------------------- | 4 | |-------------------------------------------------------------------------- |
7 | | | 5 | | |
8 | | The ace file is just a regular Javascript file but with no extension. You | 6 | | This file is the entry point for running ace commands. |
9 | | can call `node ace` followed by the command name and it just works. | ||
10 | | | ||
11 | | Also you can use `adonis` followed by the command name, since the adonis | ||
12 | | global proxies all the ace commands. | ||
13 | | | 7 | | |
14 | */ | 8 | */ |
15 | 9 | ||
16 | const { Ignitor } = require('@adonisjs/ignitor') | 10 | require('reflect-metadata') |
11 | require('source-map-support').install({ handleUncaughtExceptions: false }) | ||
17 | 12 | ||
18 | new Ignitor(require('@adonisjs/fold')) | 13 | const { Ignitor } = require('@adonisjs/core/build/standalone') |
19 | .appRoot(__dirname) | 14 | new Ignitor(__dirname) |
20 | .fireAce() | 15 | .ace() |
21 | .catch(console.error) | 16 | .handle(process.argv.slice(2)) |
diff --git a/ace-manifest.json b/ace-manifest.json new file mode 100644 index 0000000..d7befd2 --- /dev/null +++ b/ace-manifest.json | |||
@@ -0,0 +1,616 @@ | |||
1 | { | ||
2 | "commands": { | ||
3 | "dump:rcfile": { | ||
4 | "settings": {}, | ||
5 | "commandPath": "@adonisjs/core/build/commands/DumpRc", | ||
6 | "commandName": "dump:rcfile", | ||
7 | "description": "Dump contents of .adonisrc.json file along with defaults", | ||
8 | "args": [], | ||
9 | "aliases": [], | ||
10 | "flags": [] | ||
11 | }, | ||
12 | "list:routes": { | ||
13 | "settings": { | ||
14 | "loadApp": true, | ||
15 | "stayAlive": true | ||
16 | }, | ||
17 | "commandPath": "@adonisjs/core/build/commands/ListRoutes/index", | ||
18 | "commandName": "list:routes", | ||
19 | "description": "List application routes", | ||
20 | "args": [], | ||
21 | "aliases": [], | ||
22 | "flags": [ | ||
23 | { | ||
24 | "name": "verbose", | ||
25 | "propertyName": "verbose", | ||
26 | "type": "boolean", | ||
27 | "description": "Display more information" | ||
28 | }, | ||
29 | { | ||
30 | "name": "reverse", | ||
31 | "propertyName": "reverse", | ||
32 | "type": "boolean", | ||
33 | "alias": "r", | ||
34 | "description": "Reverse routes display" | ||
35 | }, | ||
36 | { | ||
37 | "name": "methods", | ||
38 | "propertyName": "methodsFilter", | ||
39 | "type": "array", | ||
40 | "alias": "m", | ||
41 | "description": "Filter routes by method" | ||
42 | }, | ||
43 | { | ||
44 | "name": "patterns", | ||
45 | "propertyName": "patternsFilter", | ||
46 | "type": "array", | ||
47 | "alias": "p", | ||
48 | "description": "Filter routes by the route pattern" | ||
49 | }, | ||
50 | { | ||
51 | "name": "names", | ||
52 | "propertyName": "namesFilter", | ||
53 | "type": "array", | ||
54 | "alias": "n", | ||
55 | "description": "Filter routes by route name" | ||
56 | }, | ||
57 | { | ||
58 | "name": "json", | ||
59 | "propertyName": "json", | ||
60 | "type": "boolean", | ||
61 | "description": "Output as JSON" | ||
62 | }, | ||
63 | { | ||
64 | "name": "table", | ||
65 | "propertyName": "table", | ||
66 | "type": "boolean", | ||
67 | "description": "Output as Table" | ||
68 | }, | ||
69 | { | ||
70 | "name": "max-width", | ||
71 | "propertyName": "maxWidth", | ||
72 | "type": "number", | ||
73 | "description": "Specify maximum rendering width. Ignored for JSON Output" | ||
74 | } | ||
75 | ] | ||
76 | }, | ||
77 | "generate:key": { | ||
78 | "settings": {}, | ||
79 | "commandPath": "@adonisjs/core/build/commands/GenerateKey", | ||
80 | "commandName": "generate:key", | ||
81 | "description": "Generate a new APP_KEY secret", | ||
82 | "args": [], | ||
83 | "aliases": [], | ||
84 | "flags": [] | ||
85 | }, | ||
86 | "repl": { | ||
87 | "settings": { | ||
88 | "loadApp": true, | ||
89 | "environment": "repl", | ||
90 | "stayAlive": true | ||
91 | }, | ||
92 | "commandPath": "@adonisjs/repl/build/commands/AdonisRepl", | ||
93 | "commandName": "repl", | ||
94 | "description": "Start a new REPL session", | ||
95 | "args": [], | ||
96 | "aliases": [], | ||
97 | "flags": [] | ||
98 | }, | ||
99 | "db:seed": { | ||
100 | "settings": { | ||
101 | "loadApp": true | ||
102 | }, | ||
103 | "commandPath": "@adonisjs/lucid/build/commands/DbSeed", | ||
104 | "commandName": "db:seed", | ||
105 | "description": "Execute database seeders", | ||
106 | "args": [], | ||
107 | "aliases": [], | ||
108 | "flags": [ | ||
109 | { | ||
110 | "name": "connection", | ||
111 | "propertyName": "connection", | ||
112 | "type": "string", | ||
113 | "description": "Define a custom database connection for the seeders", | ||
114 | "alias": "c" | ||
115 | }, | ||
116 | { | ||
117 | "name": "interactive", | ||
118 | "propertyName": "interactive", | ||
119 | "type": "boolean", | ||
120 | "description": "Run seeders in interactive mode", | ||
121 | "alias": "i" | ||
122 | }, | ||
123 | { | ||
124 | "name": "files", | ||
125 | "propertyName": "files", | ||
126 | "type": "array", | ||
127 | "description": "Define a custom set of seeders files names to run", | ||
128 | "alias": "f" | ||
129 | }, | ||
130 | { | ||
131 | "name": "compact-output", | ||
132 | "propertyName": "compactOutput", | ||
133 | "type": "boolean", | ||
134 | "description": "A compact single-line output" | ||
135 | } | ||
136 | ] | ||
137 | }, | ||
138 | "db:wipe": { | ||
139 | "settings": { | ||
140 | "loadApp": true | ||
141 | }, | ||
142 | "commandPath": "@adonisjs/lucid/build/commands/DbWipe", | ||
143 | "commandName": "db:wipe", | ||
144 | "description": "Drop all tables, views and types in database", | ||
145 | "args": [], | ||
146 | "aliases": [], | ||
147 | "flags": [ | ||
148 | { | ||
149 | "name": "connection", | ||
150 | "propertyName": "connection", | ||
151 | "type": "string", | ||
152 | "description": "Define a custom database connection", | ||
153 | "alias": "c" | ||
154 | }, | ||
155 | { | ||
156 | "name": "drop-views", | ||
157 | "propertyName": "dropViews", | ||
158 | "type": "boolean", | ||
159 | "description": "Drop all views" | ||
160 | }, | ||
161 | { | ||
162 | "name": "drop-types", | ||
163 | "propertyName": "dropTypes", | ||
164 | "type": "boolean", | ||
165 | "description": "Drop all custom types (Postgres only)" | ||
166 | }, | ||
167 | { | ||
168 | "name": "force", | ||
169 | "propertyName": "force", | ||
170 | "type": "boolean", | ||
171 | "description": "Explicitly force command to run in production" | ||
172 | } | ||
173 | ] | ||
174 | }, | ||
175 | "db:truncate": { | ||
176 | "settings": { | ||
177 | "loadApp": true | ||
178 | }, | ||
179 | "commandPath": "@adonisjs/lucid/build/commands/DbTruncate", | ||
180 | "commandName": "db:truncate", | ||
181 | "description": "Truncate all tables in database", | ||
182 | "args": [], | ||
183 | "aliases": [], | ||
184 | "flags": [ | ||
185 | { | ||
186 | "name": "connection", | ||
187 | "propertyName": "connection", | ||
188 | "type": "string", | ||
189 | "description": "Define a custom database connection", | ||
190 | "alias": "c" | ||
191 | }, | ||
192 | { | ||
193 | "name": "force", | ||
194 | "propertyName": "force", | ||
195 | "type": "boolean", | ||
196 | "description": "Explicitly force command to run in production" | ||
197 | } | ||
198 | ] | ||
199 | }, | ||
200 | "make:model": { | ||
201 | "settings": { | ||
202 | "loadApp": true | ||
203 | }, | ||
204 | "commandPath": "@adonisjs/lucid/build/commands/MakeModel", | ||
205 | "commandName": "make:model", | ||
206 | "description": "Make a new Lucid model", | ||
207 | "args": [ | ||
208 | { | ||
209 | "type": "string", | ||
210 | "propertyName": "name", | ||
211 | "name": "name", | ||
212 | "required": true, | ||
213 | "description": "Name of the model class" | ||
214 | } | ||
215 | ], | ||
216 | "aliases": [], | ||
217 | "flags": [ | ||
218 | { | ||
219 | "name": "migration", | ||
220 | "propertyName": "migration", | ||
221 | "type": "boolean", | ||
222 | "alias": "m", | ||
223 | "description": "Generate the migration for the model" | ||
224 | }, | ||
225 | { | ||
226 | "name": "controller", | ||
227 | "propertyName": "controller", | ||
228 | "type": "boolean", | ||
229 | "alias": "c", | ||
230 | "description": "Generate the controller for the model" | ||
231 | }, | ||
232 | { | ||
233 | "name": "factory", | ||
234 | "propertyName": "factory", | ||
235 | "type": "boolean", | ||
236 | "alias": "f", | ||
237 | "description": "Generate a factory for the model" | ||
238 | } | ||
239 | ] | ||
240 | }, | ||
241 | "make:migration": { | ||
242 | "settings": { | ||
243 | "loadApp": true | ||
244 | }, | ||
245 | "commandPath": "@adonisjs/lucid/build/commands/MakeMigration", | ||
246 | "commandName": "make:migration", | ||
247 | "description": "Make a new migration file", | ||
248 | "args": [ | ||
249 | { | ||
250 | "type": "string", | ||
251 | "propertyName": "name", | ||
252 | "name": "name", | ||
253 | "required": true, | ||
254 | "description": "Name of the migration file" | ||
255 | } | ||
256 | ], | ||
257 | "aliases": [], | ||
258 | "flags": [ | ||
259 | { | ||
260 | "name": "connection", | ||
261 | "propertyName": "connection", | ||
262 | "type": "string", | ||
263 | "description": "The connection flag is used to lookup the directory for the migration file" | ||
264 | }, | ||
265 | { | ||
266 | "name": "folder", | ||
267 | "propertyName": "folder", | ||
268 | "type": "string", | ||
269 | "description": "Pre-select a migration directory" | ||
270 | }, | ||
271 | { | ||
272 | "name": "create", | ||
273 | "propertyName": "create", | ||
274 | "type": "string", | ||
275 | "description": "Define the table name for creating a new table" | ||
276 | }, | ||
277 | { | ||
278 | "name": "table", | ||
279 | "propertyName": "table", | ||
280 | "type": "string", | ||
281 | "description": "Define the table name for altering an existing table" | ||
282 | } | ||
283 | ] | ||
284 | }, | ||
285 | "make:seeder": { | ||
286 | "settings": {}, | ||
287 | "commandPath": "@adonisjs/lucid/build/commands/MakeSeeder", | ||
288 | "commandName": "make:seeder", | ||
289 | "description": "Make a new Seeder file", | ||
290 | "args": [ | ||
291 | { | ||
292 | "type": "string", | ||
293 | "propertyName": "name", | ||
294 | "name": "name", | ||
295 | "required": true, | ||
296 | "description": "Name of the seeder class" | ||
297 | } | ||
298 | ], | ||
299 | "aliases": [], | ||
300 | "flags": [] | ||
301 | }, | ||
302 | "make:factory": { | ||
303 | "settings": {}, | ||
304 | "commandPath": "@adonisjs/lucid/build/commands/MakeFactory", | ||
305 | "commandName": "make:factory", | ||
306 | "description": "Make a new factory", | ||
307 | "args": [ | ||
308 | { | ||
309 | "type": "string", | ||
310 | "propertyName": "model", | ||
311 | "name": "model", | ||
312 | "required": true, | ||
313 | "description": "The name of the model" | ||
314 | } | ||
315 | ], | ||
316 | "aliases": [], | ||
317 | "flags": [ | ||
318 | { | ||
319 | "name": "model-path", | ||
320 | "propertyName": "modelPath", | ||
321 | "type": "string", | ||
322 | "description": "The path to the model" | ||
323 | }, | ||
324 | { | ||
325 | "name": "exact", | ||
326 | "propertyName": "exact", | ||
327 | "type": "boolean", | ||
328 | "description": "Create the factory with the exact name as provided", | ||
329 | "alias": "e" | ||
330 | } | ||
331 | ] | ||
332 | }, | ||
333 | "migration:run": { | ||
334 | "settings": { | ||
335 | "loadApp": true | ||
336 | }, | ||
337 | "commandPath": "@adonisjs/lucid/build/commands/Migration/Run", | ||
338 | "commandName": "migration:run", | ||
339 | "description": "Migrate database by running pending migrations", | ||
340 | "args": [], | ||
341 | "aliases": [], | ||
342 | "flags": [ | ||
343 | { | ||
344 | "name": "connection", | ||
345 | "propertyName": "connection", | ||
346 | "type": "string", | ||
347 | "description": "Define a custom database connection", | ||
348 | "alias": "c" | ||
349 | }, | ||
350 | { | ||
351 | "name": "force", | ||
352 | "propertyName": "force", | ||
353 | "type": "boolean", | ||
354 | "description": "Explicitly force to run migrations in production" | ||
355 | }, | ||
356 | { | ||
357 | "name": "dry-run", | ||
358 | "propertyName": "dryRun", | ||
359 | "type": "boolean", | ||
360 | "description": "Do not run actual queries. Instead view the SQL output" | ||
361 | }, | ||
362 | { | ||
363 | "name": "compact-output", | ||
364 | "propertyName": "compactOutput", | ||
365 | "type": "boolean", | ||
366 | "description": "A compact single-line output" | ||
367 | }, | ||
368 | { | ||
369 | "name": "disable-locks", | ||
370 | "propertyName": "disableLocks", | ||
371 | "type": "boolean", | ||
372 | "description": "Disable locks acquired to run migrations safely" | ||
373 | } | ||
374 | ] | ||
375 | }, | ||
376 | "migration:rollback": { | ||
377 | "settings": { | ||
378 | "loadApp": true | ||
379 | }, | ||
380 | "commandPath": "@adonisjs/lucid/build/commands/Migration/Rollback", | ||
381 | "commandName": "migration:rollback", | ||
382 | "description": "Rollback migrations to a specific batch number", | ||
383 | "args": [], | ||
384 | "aliases": [], | ||
385 | "flags": [ | ||
386 | { | ||
387 | "name": "connection", | ||
388 | "propertyName": "connection", | ||
389 | "type": "string", | ||
390 | "description": "Define a custom database connection", | ||
391 | "alias": "c" | ||
392 | }, | ||
393 | { | ||
394 | "name": "force", | ||
395 | "propertyName": "force", | ||
396 | "type": "boolean", | ||
397 | "description": "Explictly force to run migrations in production" | ||
398 | }, | ||
399 | { | ||
400 | "name": "dry-run", | ||
401 | "propertyName": "dryRun", | ||
402 | "type": "boolean", | ||
403 | "description": "Do not run actual queries. Instead view the SQL output" | ||
404 | }, | ||
405 | { | ||
406 | "name": "batch", | ||
407 | "propertyName": "batch", | ||
408 | "type": "number", | ||
409 | "description": "Define custom batch number for rollback. Use 0 to rollback to initial state" | ||
410 | }, | ||
411 | { | ||
412 | "name": "compact-output", | ||
413 | "propertyName": "compactOutput", | ||
414 | "type": "boolean", | ||
415 | "description": "A compact single-line output" | ||
416 | }, | ||
417 | { | ||
418 | "name": "disable-locks", | ||
419 | "propertyName": "disableLocks", | ||
420 | "type": "boolean", | ||
421 | "description": "Disable locks acquired to run migrations safely" | ||
422 | } | ||
423 | ] | ||
424 | }, | ||
425 | "migration:status": { | ||
426 | "settings": { | ||
427 | "loadApp": true | ||
428 | }, | ||
429 | "commandPath": "@adonisjs/lucid/build/commands/Migration/Status", | ||
430 | "commandName": "migration:status", | ||
431 | "description": "View migrations status", | ||
432 | "args": [], | ||
433 | "aliases": [], | ||
434 | "flags": [ | ||
435 | { | ||
436 | "name": "connection", | ||
437 | "propertyName": "connection", | ||
438 | "type": "string", | ||
439 | "description": "Define a custom database connection", | ||
440 | "alias": "c" | ||
441 | } | ||
442 | ] | ||
443 | }, | ||
444 | "migration:reset": { | ||
445 | "settings": { | ||
446 | "loadApp": true | ||
447 | }, | ||
448 | "commandPath": "@adonisjs/lucid/build/commands/Migration/Reset", | ||
449 | "commandName": "migration:reset", | ||
450 | "description": "Rollback all migrations", | ||
451 | "args": [], | ||
452 | "aliases": [], | ||
453 | "flags": [ | ||
454 | { | ||
455 | "name": "connection", | ||
456 | "propertyName": "connection", | ||
457 | "type": "string", | ||
458 | "description": "Define a custom database connection", | ||
459 | "alias": "c" | ||
460 | }, | ||
461 | { | ||
462 | "name": "force", | ||
463 | "propertyName": "force", | ||
464 | "type": "boolean", | ||
465 | "description": "Explicitly force command to run in production" | ||
466 | }, | ||
467 | { | ||
468 | "name": "dry-run", | ||
469 | "propertyName": "dryRun", | ||
470 | "type": "boolean", | ||
471 | "description": "Do not run actual queries. Instead view the SQL output" | ||
472 | }, | ||
473 | { | ||
474 | "name": "disable-locks", | ||
475 | "propertyName": "disableLocks", | ||
476 | "type": "boolean", | ||
477 | "description": "Disable locks acquired to run migrations safely" | ||
478 | } | ||
479 | ] | ||
480 | }, | ||
481 | "migration:refresh": { | ||
482 | "settings": { | ||
483 | "loadApp": true | ||
484 | }, | ||
485 | "commandPath": "@adonisjs/lucid/build/commands/Migration/Refresh", | ||
486 | "commandName": "migration:refresh", | ||
487 | "description": "Rollback and migrate database", | ||
488 | "args": [], | ||
489 | "aliases": [], | ||
490 | "flags": [ | ||
491 | { | ||
492 | "name": "connection", | ||
493 | "propertyName": "connection", | ||
494 | "type": "string", | ||
495 | "description": "Define a custom database connection", | ||
496 | "alias": "c" | ||
497 | }, | ||
498 | { | ||
499 | "name": "force", | ||
500 | "propertyName": "force", | ||
501 | "type": "boolean", | ||
502 | "description": "Explicitly force command to run in production" | ||
503 | }, | ||
504 | { | ||
505 | "name": "dry-run", | ||
506 | "propertyName": "dryRun", | ||
507 | "type": "boolean", | ||
508 | "description": "Do not run actual queries. Instead view the SQL output" | ||
509 | }, | ||
510 | { | ||
511 | "name": "seed", | ||
512 | "propertyName": "seed", | ||
513 | "type": "boolean", | ||
514 | "description": "Run seeders" | ||
515 | }, | ||
516 | { | ||
517 | "name": "disable-locks", | ||
518 | "propertyName": "disableLocks", | ||
519 | "type": "boolean", | ||
520 | "description": "Disable locks acquired to run migrations safely" | ||
521 | } | ||
522 | ] | ||
523 | }, | ||
524 | "migration:fresh": { | ||
525 | "settings": { | ||
526 | "loadApp": true | ||
527 | }, | ||
528 | "commandPath": "@adonisjs/lucid/build/commands/Migration/Fresh", | ||
529 | "commandName": "migration:fresh", | ||
530 | "description": "Drop all tables and re-migrate the database", | ||
531 | "args": [], | ||
532 | "aliases": [], | ||
533 | "flags": [ | ||
534 | { | ||
535 | "name": "connection", | ||
536 | "propertyName": "connection", | ||
537 | "type": "string", | ||
538 | "description": "Define a custom database connection", | ||
539 | "alias": "c" | ||
540 | }, | ||
541 | { | ||
542 | "name": "force", | ||
543 | "propertyName": "force", | ||
544 | "type": "boolean", | ||
545 | "description": "Explicitly force command to run in production" | ||
546 | }, | ||
547 | { | ||
548 | "name": "seed", | ||
549 | "propertyName": "seed", | ||
550 | "type": "boolean", | ||
551 | "description": "Run seeders" | ||
552 | }, | ||
553 | { | ||
554 | "name": "drop-views", | ||
555 | "propertyName": "dropViews", | ||
556 | "type": "boolean", | ||
557 | "description": "Drop all views" | ||
558 | }, | ||
559 | { | ||
560 | "name": "drop-types", | ||
561 | "propertyName": "dropTypes", | ||
562 | "type": "boolean", | ||
563 | "description": "Drop all custom types (Postgres only)" | ||
564 | }, | ||
565 | { | ||
566 | "name": "disable-locks", | ||
567 | "propertyName": "disableLocks", | ||
568 | "type": "boolean", | ||
569 | "description": "Disable locks acquired to run migrations safely" | ||
570 | } | ||
571 | ] | ||
572 | }, | ||
573 | "make:mailer": { | ||
574 | "settings": {}, | ||
575 | "commandPath": "@adonisjs/mail/build/commands/MakeMailer", | ||
576 | "commandName": "make:mailer", | ||
577 | "description": "Make a new mailer class", | ||
578 | "args": [ | ||
579 | { | ||
580 | "type": "string", | ||
581 | "propertyName": "name", | ||
582 | "name": "name", | ||
583 | "required": true, | ||
584 | "description": "Name of the mailer class" | ||
585 | } | ||
586 | ], | ||
587 | "aliases": [], | ||
588 | "flags": [] | ||
589 | }, | ||
590 | "jwt:generate-keys": { | ||
591 | "settings": {}, | ||
592 | "commandPath": "adonis5-jwt/build/commands/GenerateKeyPair", | ||
593 | "commandName": "jwt:generate-keys", | ||
594 | "description": "Generate key pair", | ||
595 | "args": [ | ||
596 | { | ||
597 | "type": "string", | ||
598 | "propertyName": "outputDir", | ||
599 | "name": "outputDir", | ||
600 | "required": false, | ||
601 | "description": "Key pair output dir" | ||
602 | }, | ||
603 | { | ||
604 | "type": "string", | ||
605 | "propertyName": "algorithm", | ||
606 | "name": "algorithm", | ||
607 | "required": false, | ||
608 | "description": "Key pair algorithm" | ||
609 | } | ||
610 | ], | ||
611 | "aliases": [], | ||
612 | "flags": [] | ||
613 | } | ||
614 | }, | ||
615 | "aliases": {} | ||
616 | } | ||
diff --git a/app/Controllers/Http/Api/Static/AnnouncementsController.ts b/app/Controllers/Http/Api/Static/AnnouncementsController.ts new file mode 100644 index 0000000..c20707b --- /dev/null +++ b/app/Controllers/Http/Api/Static/AnnouncementsController.ts | |||
@@ -0,0 +1,20 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | import Application from '@ioc:Adonis/Core/Application'; | ||
3 | import path from 'node:path'; | ||
4 | import fs from 'fs-extra'; | ||
5 | |||
6 | export default class AnnouncementsController { | ||
7 | public async show({ response, params }: HttpContextContract) { | ||
8 | const announcement = path.join( | ||
9 | Application.resourcesPath(), | ||
10 | 'announcements', | ||
11 | `${params.version}.json`, | ||
12 | ); | ||
13 | |||
14 | if (await fs.pathExists(announcement)) { | ||
15 | return response.download(announcement); | ||
16 | } | ||
17 | |||
18 | return response.status(404).send('No announcement found.'); | ||
19 | } | ||
20 | } | ||
diff --git a/app/Controllers/Http/Api/Static/EmptyController.ts b/app/Controllers/Http/Api/Static/EmptyController.ts new file mode 100644 index 0000000..a07790e --- /dev/null +++ b/app/Controllers/Http/Api/Static/EmptyController.ts | |||
@@ -0,0 +1,7 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | |||
3 | export default class EmptyController { | ||
4 | public async show({ response }: HttpContextContract) { | ||
5 | return response.send([]); | ||
6 | } | ||
7 | } | ||
diff --git a/app/Controllers/Http/Api/Static/FeaturesController.ts b/app/Controllers/Http/Api/Static/FeaturesController.ts new file mode 100644 index 0000000..d471b11 --- /dev/null +++ b/app/Controllers/Http/Api/Static/FeaturesController.ts | |||
@@ -0,0 +1,14 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | |||
3 | export default class FeaturesController { | ||
4 | public async show({ response }: HttpContextContract) { | ||
5 | return response.send({ | ||
6 | isServiceProxyEnabled: true, | ||
7 | isWorkspaceEnabled: true, | ||
8 | isAnnouncementsEnabled: true, | ||
9 | isSettingsWSEnabled: false, | ||
10 | isMagicBarEnabled: true, | ||
11 | isTodosEnabled: true, | ||
12 | }); | ||
13 | } | ||
14 | } | ||
diff --git a/app/Controllers/Http/Dashboard/AccountController.ts b/app/Controllers/Http/Dashboard/AccountController.ts new file mode 100644 index 0000000..3c4e919 --- /dev/null +++ b/app/Controllers/Http/Dashboard/AccountController.ts | |||
@@ -0,0 +1,80 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | import { schema, rules, validator } from '@ioc:Adonis/Core/Validator'; | ||
3 | import crypto from 'node:crypto'; | ||
4 | |||
5 | export default class AccountController { | ||
6 | /** | ||
7 | * Shows the user account page | ||
8 | */ | ||
9 | public async show({ auth, view }: HttpContextContract) { | ||
10 | return view.render('dashboard/account', { | ||
11 | username: auth.user?.username, | ||
12 | email: auth.user?.email, | ||
13 | lastname: auth.user?.lastname, | ||
14 | }); | ||
15 | } | ||
16 | |||
17 | /** | ||
18 | * Stores user account data | ||
19 | */ | ||
20 | public async store({ | ||
21 | auth, | ||
22 | request, | ||
23 | response, | ||
24 | session, | ||
25 | view, | ||
26 | }: HttpContextContract) { | ||
27 | try { | ||
28 | await validator.validate({ | ||
29 | schema: schema.create({ | ||
30 | username: schema.string([ | ||
31 | rules.required(), | ||
32 | rules.unique({ | ||
33 | table: 'users', | ||
34 | column: 'username', | ||
35 | caseInsensitive: true, | ||
36 | whereNot: { id: auth.user?.id }, | ||
37 | }), | ||
38 | ]), | ||
39 | email: schema.string([ | ||
40 | rules.required(), | ||
41 | rules.unique({ | ||
42 | table: 'users', | ||
43 | column: 'email', | ||
44 | caseInsensitive: true, | ||
45 | whereNot: { id: auth.user?.id }, | ||
46 | }), | ||
47 | ]), | ||
48 | lastname: schema.string([rules.required()]), | ||
49 | }), | ||
50 | data: request.only(['username', 'email', 'lastname']), | ||
51 | }); | ||
52 | } catch (error) { | ||
53 | session.flash(error.messages); | ||
54 | return response.redirect('/user/account'); | ||
55 | } | ||
56 | |||
57 | // Update user account | ||
58 | const { user } = auth; | ||
59 | if (user) { | ||
60 | user.username = request.input('username'); | ||
61 | user.lastname = request.input('lastname'); | ||
62 | user.email = request.input('email'); | ||
63 | if (request.input('password')) { | ||
64 | const hashedPassword = crypto | ||
65 | .createHash('sha256') | ||
66 | .update(request.input('password')) | ||
67 | .digest('base64'); | ||
68 | user.password = hashedPassword; | ||
69 | } | ||
70 | await user.save(); | ||
71 | } | ||
72 | |||
73 | return view.render('dashboard/account', { | ||
74 | username: user?.username, | ||
75 | lastname: user?.lastname, | ||
76 | email: user?.email, | ||
77 | success: user !== undefined, | ||
78 | }); | ||
79 | } | ||
80 | } | ||
diff --git a/app/Controllers/Http/Dashboard/DataController.ts b/app/Controllers/Http/Dashboard/DataController.ts new file mode 100644 index 0000000..f77702f --- /dev/null +++ b/app/Controllers/Http/Dashboard/DataController.ts | |||
@@ -0,0 +1,24 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | |||
3 | export default class DataController { | ||
4 | /** | ||
5 | * Display the data page | ||
6 | */ | ||
7 | public async show({ view, auth }: HttpContextContract) { | ||
8 | const { user } = auth; | ||
9 | |||
10 | const services = await user?.related('services').query(); | ||
11 | const workspaces = await user?.related('workspaces').query(); | ||
12 | |||
13 | return view.render('dashboard/data', { | ||
14 | username: user?.username, | ||
15 | lastname: user?.lastname, | ||
16 | mail: user?.email, | ||
17 | created: user?.created_at.toFormat('yyyy-MM-dd HH:mm:ss'), | ||
18 | updated: user?.updated_at.toFormat('yyyy-MM-dd HH:mm:ss'), | ||
19 | stringify: JSON.stringify, | ||
20 | services, | ||
21 | workspaces, | ||
22 | }); | ||
23 | } | ||
24 | } | ||
diff --git a/app/Controllers/Http/Dashboard/DeleteController.ts b/app/Controllers/Http/Dashboard/DeleteController.ts new file mode 100644 index 0000000..ef8188c --- /dev/null +++ b/app/Controllers/Http/Dashboard/DeleteController.ts | |||
@@ -0,0 +1,20 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | |||
3 | export default class DeleteController { | ||
4 | /** | ||
5 | * Display the delete page | ||
6 | */ | ||
7 | public async show({ view }: HttpContextContract) { | ||
8 | return view.render('dashboard/delete'); | ||
9 | } | ||
10 | |||
11 | /** | ||
12 | * Delete user and session | ||
13 | */ | ||
14 | public async delete({ auth, response }: HttpContextContract) { | ||
15 | auth.user?.delete(); | ||
16 | auth.use('web').logout(); | ||
17 | |||
18 | return response.redirect('/user/login'); | ||
19 | } | ||
20 | } | ||
diff --git a/app/Controllers/Http/Dashboard/ExportController.ts b/app/Controllers/Http/Dashboard/ExportController.ts new file mode 100644 index 0000000..7155eab --- /dev/null +++ b/app/Controllers/Http/Dashboard/ExportController.ts | |||
@@ -0,0 +1,56 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | |||
3 | // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
4 | function deepParseToJSON(obj: any): Record<string, unknown> { | ||
5 | if (typeof obj !== 'object' || obj === null) { | ||
6 | try { | ||
7 | // Try to parse the object as JSON | ||
8 | return JSON.parse(obj) as Record<string, unknown>; | ||
9 | } catch { | ||
10 | // If parsing fails, return the original value | ||
11 | return obj; | ||
12 | } | ||
13 | } | ||
14 | |||
15 | // If obj is an object, recursively parse its keys | ||
16 | if (Array.isArray(obj)) { | ||
17 | // If obj is an array, recursively parse each element | ||
18 | return obj.map(item => deepParseToJSON(item)) as unknown as Record< | ||
19 | string, | ||
20 | unknown | ||
21 | >; | ||
22 | } else { | ||
23 | // If obj is an object, recursively parse its keys | ||
24 | const parsedObj: Record<string, unknown> = {}; | ||
25 | for (const key in obj) { | ||
26 | if (obj.hasOwnProperty(key)) { | ||
27 | parsedObj[key] = deepParseToJSON(obj[key]); | ||
28 | } | ||
29 | } | ||
30 | return parsedObj; | ||
31 | } | ||
32 | } | ||
33 | |||
34 | export default class ExportController { | ||
35 | /** | ||
36 | * Display the export page | ||
37 | */ | ||
38 | public async show({ auth, response }: HttpContextContract) { | ||
39 | const user = auth.user!; | ||
40 | const services = await user.related('services').query(); | ||
41 | const workspaces = await user.related('workspaces').query(); | ||
42 | |||
43 | const exportData = { | ||
44 | username: user.username, | ||
45 | lastname: user.lastname, | ||
46 | mail: user.email, | ||
47 | services: deepParseToJSON(JSON.parse(JSON.stringify(services))), | ||
48 | workspaces: deepParseToJSON(JSON.parse(JSON.stringify(workspaces))), | ||
49 | }; | ||
50 | |||
51 | return response | ||
52 | .header('Content-Type', 'application/force-download') | ||
53 | .header('Content-disposition', 'attachment; filename=export.ferdium-data') | ||
54 | .send(exportData); | ||
55 | } | ||
56 | } | ||
diff --git a/app/Controllers/Http/Dashboard/ForgotPasswordController.ts b/app/Controllers/Http/Dashboard/ForgotPasswordController.ts new file mode 100644 index 0000000..da05bbd --- /dev/null +++ b/app/Controllers/Http/Dashboard/ForgotPasswordController.ts | |||
@@ -0,0 +1,41 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | import { schema, rules, validator } from '@ioc:Adonis/Core/Validator'; | ||
3 | import User from 'App/Models/User'; | ||
4 | |||
5 | export default class ForgotPasswordController { | ||
6 | /** | ||
7 | * Display the forgot password form | ||
8 | */ | ||
9 | public async show({ view }: HttpContextContract) { | ||
10 | return view.render('dashboard/forgotPassword'); | ||
11 | } | ||
12 | |||
13 | /** | ||
14 | * Send forget password email to user | ||
15 | */ | ||
16 | public async forgotPassword({ view, request }: HttpContextContract) { | ||
17 | try { | ||
18 | await validator.validate({ | ||
19 | schema: schema.create({ | ||
20 | mail: schema.string([rules.email(), rules.required()]), | ||
21 | }), | ||
22 | data: request.only(['mail']), | ||
23 | }); | ||
24 | } catch { | ||
25 | return view.render('others/message', { | ||
26 | heading: 'Cannot reset your password', | ||
27 | text: 'Please enter a valid email address', | ||
28 | }); | ||
29 | } | ||
30 | |||
31 | try { | ||
32 | const user = await User.findByOrFail('email', request.input('mail')); | ||
33 | await user.forgotPassword(); | ||
34 | } catch {} | ||
35 | |||
36 | return view.render('others/message', { | ||
37 | heading: 'Reset password', | ||
38 | text: 'If your provided E-Mail address is linked to an account, we have just sent an E-Mail to that address.', | ||
39 | }); | ||
40 | } | ||
41 | } | ||
diff --git a/app/Controllers/Http/Dashboard/LogOutController.ts b/app/Controllers/Http/Dashboard/LogOutController.ts new file mode 100644 index 0000000..41cbd31 --- /dev/null +++ b/app/Controllers/Http/Dashboard/LogOutController.ts | |||
@@ -0,0 +1,12 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | |||
3 | export default class LogOutController { | ||
4 | /** | ||
5 | * Login a user | ||
6 | */ | ||
7 | public async logout({ auth, response }: HttpContextContract) { | ||
8 | auth.logout(); | ||
9 | |||
10 | return response.redirect('/user/login'); | ||
11 | } | ||
12 | } | ||
diff --git a/app/Controllers/Http/Dashboard/LoginController.ts b/app/Controllers/Http/Dashboard/LoginController.ts new file mode 100644 index 0000000..ffb9eeb --- /dev/null +++ b/app/Controllers/Http/Dashboard/LoginController.ts | |||
@@ -0,0 +1,81 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | import { schema, rules, validator } from '@ioc:Adonis/Core/Validator'; | ||
3 | import User from 'App/Models/User'; | ||
4 | import crypto from 'node:crypto'; | ||
5 | import { handleVerifyAndReHash } from '../../../../helpers/PasswordHash'; | ||
6 | |||
7 | export default class LoginController { | ||
8 | /** | ||
9 | * Display the login form | ||
10 | */ | ||
11 | public async show({ view }: HttpContextContract) { | ||
12 | return view.render('dashboard/login'); | ||
13 | } | ||
14 | |||
15 | /** | ||
16 | * Login a user | ||
17 | */ | ||
18 | public async login({ | ||
19 | request, | ||
20 | response, | ||
21 | auth, | ||
22 | session, | ||
23 | }: HttpContextContract) { | ||
24 | try { | ||
25 | await validator.validate({ | ||
26 | schema: schema.create({ | ||
27 | mail: schema.string([rules.email(), rules.required()]), | ||
28 | password: schema.string([rules.required()]), | ||
29 | }), | ||
30 | data: request.only(['mail', 'password']), | ||
31 | }); | ||
32 | } catch { | ||
33 | session.flash({ | ||
34 | type: 'danger', | ||
35 | message: 'Invalid mail or password', | ||
36 | }); | ||
37 | session.flashExcept(['password']); | ||
38 | |||
39 | return response.redirect('/user/login'); | ||
40 | } | ||
41 | |||
42 | try { | ||
43 | const { mail, password } = request.all(); | ||
44 | |||
45 | // Check if user with email exists | ||
46 | const user = await User.query().where('email', mail).first(); | ||
47 | if (!user?.email) { | ||
48 | throw new Error('User credentials not valid (Invalid email)'); | ||
49 | } | ||
50 | |||
51 | const hashedPassword = crypto | ||
52 | .createHash('sha256') | ||
53 | .update(password) | ||
54 | .digest('base64'); | ||
55 | |||
56 | // Verify password | ||
57 | let isMatchedPassword = false; | ||
58 | try { | ||
59 | isMatchedPassword = await handleVerifyAndReHash(user, hashedPassword); | ||
60 | } catch (error) { | ||
61 | return response.internalServerError({ message: error.message }); | ||
62 | } | ||
63 | |||
64 | if (!isMatchedPassword) { | ||
65 | throw new Error('User credentials not valid (Invalid password)'); | ||
66 | } | ||
67 | |||
68 | await auth.use('web').login(user); | ||
69 | |||
70 | return response.redirect('/user/account'); | ||
71 | } catch { | ||
72 | session.flash({ | ||
73 | type: 'danger', | ||
74 | message: 'Invalid mail or password', | ||
75 | }); | ||
76 | session.flashExcept(['password']); | ||
77 | |||
78 | return response.redirect('/user/login'); | ||
79 | } | ||
80 | } | ||
81 | } | ||
diff --git a/app/Controllers/Http/Dashboard/ResetPasswordController.ts b/app/Controllers/Http/Dashboard/ResetPasswordController.ts new file mode 100644 index 0000000..0b9053f --- /dev/null +++ b/app/Controllers/Http/Dashboard/ResetPasswordController.ts | |||
@@ -0,0 +1,85 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | import { schema, rules, validator } from '@ioc:Adonis/Core/Validator'; | ||
3 | import Token from 'App/Models/Token'; | ||
4 | import moment from 'moment'; | ||
5 | import crypto from 'node:crypto'; | ||
6 | |||
7 | export default class ResetPasswordController { | ||
8 | /** | ||
9 | * Display the reset password form | ||
10 | */ | ||
11 | public async show({ view, request }: HttpContextContract) { | ||
12 | const { token } = request.qs(); | ||
13 | |||
14 | if (token) { | ||
15 | return view.render('dashboard/resetPassword', { token }); | ||
16 | } | ||
17 | |||
18 | return view.render('others/message', { | ||
19 | heading: 'Invalid token', | ||
20 | text: 'Please make sure you are using a valid and recent link to reset your password.', | ||
21 | }); | ||
22 | } | ||
23 | |||
24 | /** | ||
25 | * Resets user password | ||
26 | */ | ||
27 | public async resetPassword({ | ||
28 | response, | ||
29 | request, | ||
30 | session, | ||
31 | view, | ||
32 | }: HttpContextContract) { | ||
33 | try { | ||
34 | await validator.validate({ | ||
35 | schema: schema.create({ | ||
36 | password: schema.string([rules.required(), rules.confirmed()]), | ||
37 | token: schema.string([rules.required()]), | ||
38 | }), | ||
39 | data: request.only(['password', 'password_confirmation', 'token']), | ||
40 | }); | ||
41 | } catch { | ||
42 | session.flash({ | ||
43 | type: 'danger', | ||
44 | message: 'Passwords do not match', | ||
45 | }); | ||
46 | |||
47 | return response.redirect(`/user/reset?token=${request.input('token')}`); | ||
48 | } | ||
49 | |||
50 | const tokenRow = await Token.query() | ||
51 | .preload('user') | ||
52 | .where('token', request.input('token')) | ||
53 | .where('type', 'forgot_password') | ||
54 | .where('is_revoked', false) | ||
55 | .where( | ||
56 | 'updated_at', | ||
57 | '>=', | ||
58 | moment().subtract(24, 'hours').format('YYYY-MM-DD HH:mm:ss'), | ||
59 | ) | ||
60 | .first(); | ||
61 | |||
62 | if (!tokenRow) { | ||
63 | return view.render('others/message', { | ||
64 | heading: 'Cannot reset your password', | ||
65 | text: 'Please make sure you are using a valid and recent link to reset your password and that your passwords entered match.', | ||
66 | }); | ||
67 | } | ||
68 | |||
69 | // Update user password | ||
70 | const hashedPassword = crypto | ||
71 | .createHash('sha256') | ||
72 | .update(request.input('password')) | ||
73 | .digest('base64'); | ||
74 | tokenRow.user.password = hashedPassword; | ||
75 | await tokenRow.user.save(); | ||
76 | |||
77 | // Delete token to prevent it from being used again | ||
78 | await tokenRow.delete(); | ||
79 | |||
80 | return view.render('others/message', { | ||
81 | heading: 'Reset password', | ||
82 | text: 'Successfully reset your password. You can now login to your account using your new password.', | ||
83 | }); | ||
84 | } | ||
85 | } | ||
diff --git a/app/Controllers/Http/Dashboard/TransferController.ts b/app/Controllers/Http/Dashboard/TransferController.ts new file mode 100644 index 0000000..a005c1b --- /dev/null +++ b/app/Controllers/Http/Dashboard/TransferController.ts | |||
@@ -0,0 +1,128 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | import { schema, validator } from '@ioc:Adonis/Core/Validator'; | ||
3 | import Service from 'App/Models/Service'; | ||
4 | import Workspace from 'App/Models/Workspace'; | ||
5 | import { v4 as uuidv4 } from 'uuid'; | ||
6 | |||
7 | const importSchema = schema.create({ | ||
8 | username: schema.string(), | ||
9 | lastname: schema.string(), | ||
10 | mail: schema.string(), | ||
11 | services: schema.array().anyMembers(), | ||
12 | workspaces: schema.array().anyMembers(), | ||
13 | }); | ||
14 | |||
15 | export default class TransferController { | ||
16 | /** | ||
17 | * Display the transfer page | ||
18 | */ | ||
19 | public async show({ view }: HttpContextContract) { | ||
20 | return view.render('dashboard/transfer'); | ||
21 | } | ||
22 | |||
23 | public async import({ | ||
24 | auth, | ||
25 | request, | ||
26 | response, | ||
27 | session, | ||
28 | view, | ||
29 | }: HttpContextContract) { | ||
30 | let file; | ||
31 | try { | ||
32 | file = await validator.validate({ | ||
33 | schema: importSchema, | ||
34 | data: JSON.parse(request.body().file), | ||
35 | }); | ||
36 | } catch { | ||
37 | session.flash({ | ||
38 | message: 'Invalid Ferdium account file', | ||
39 | }); | ||
40 | |||
41 | return response.redirect('/user/transfer'); | ||
42 | } | ||
43 | |||
44 | if (!file?.services || !file.workspaces) { | ||
45 | session.flash({ | ||
46 | type: 'danger', | ||
47 | message: 'Invalid Ferdium account file (2)', | ||
48 | }); | ||
49 | return response.redirect('/user/transfer'); | ||
50 | } | ||
51 | |||
52 | const serviceIdTranslation = {}; | ||
53 | |||
54 | // Import services | ||
55 | try { | ||
56 | for (const service of file.services) { | ||
57 | // Get new, unused uuid | ||
58 | let serviceId; | ||
59 | do { | ||
60 | serviceId = uuidv4(); | ||
61 | } while ( | ||
62 | // eslint-disable-next-line no-await-in-loop, unicorn/no-await-expression-member | ||
63 | (await Service.query().where('serviceId', serviceId)).length > 0 | ||
64 | ); | ||
65 | |||
66 | // eslint-disable-next-line no-await-in-loop | ||
67 | await Service.create({ | ||
68 | userId: auth.user?.id, | ||
69 | serviceId, | ||
70 | name: service.name, | ||
71 | recipeId: service.recipe_id, | ||
72 | settings: JSON.stringify(service.settings), | ||
73 | }); | ||
74 | |||
75 | // @ts-expect-error Element implicitly has an 'any' type because expression of type 'any' can't be used to index type '{}' | ||
76 | serviceIdTranslation[service.service_id] = serviceId; | ||
77 | } | ||
78 | } catch (error) { | ||
79 | // eslint-disable-next-line no-console | ||
80 | console.log(error); | ||
81 | const errorMessage = `Could not import your services into our system.\nError: ${error}`; | ||
82 | return view.render('others/message', { | ||
83 | heading: 'Error while importing', | ||
84 | text: errorMessage, | ||
85 | }); | ||
86 | } | ||
87 | |||
88 | // Import workspaces | ||
89 | try { | ||
90 | for (const workspace of file.workspaces) { | ||
91 | let workspaceId; | ||
92 | |||
93 | do { | ||
94 | workspaceId = uuidv4(); | ||
95 | } while ( | ||
96 | // eslint-disable-next-line no-await-in-loop, unicorn/no-await-expression-member | ||
97 | (await Workspace.query().where('workspaceId', workspaceId)).length > 0 | ||
98 | ); | ||
99 | |||
100 | const services = workspace.services.map( | ||
101 | // @ts-expect-error Parameter 'service' implicitly has an 'any' type. | ||
102 | service => serviceIdTranslation[service], | ||
103 | ); | ||
104 | |||
105 | // eslint-disable-next-line no-await-in-loop | ||
106 | await Workspace.create({ | ||
107 | userId: auth.user?.id, | ||
108 | workspaceId, | ||
109 | name: workspace.name, | ||
110 | order: workspace.order, | ||
111 | services: JSON.stringify(services), | ||
112 | data: JSON.stringify(workspace.data), | ||
113 | }); | ||
114 | } | ||
115 | } catch (error) { | ||
116 | const errorMessage = `Could not import your workspaces into our system.\nError: ${error}`; | ||
117 | return view.render('others/message', { | ||
118 | heading: 'Error while importing', | ||
119 | text: errorMessage, | ||
120 | }); | ||
121 | } | ||
122 | |||
123 | return view.render('others/message', { | ||
124 | heading: 'Successfully imported', | ||
125 | text: 'Your account has been imported, you can now login as usual!', | ||
126 | }); | ||
127 | } | ||
128 | } | ||
diff --git a/app/Controllers/Http/DashboardController.js b/app/Controllers/Http/DashboardController.ts index 9b3b08e..a6f5b44 100644 --- a/app/Controllers/Http/DashboardController.js +++ b/app/Controllers/Http/DashboardController.ts | |||
@@ -1,3 +1,8 @@ | |||
1 | // import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' | ||
2 | |||
3 | export default class DashboardController {} | ||
4 | |||
5 | /* | ||
1 | const { validateAll } = use('Validator'); | 6 | const { validateAll } = use('Validator'); |
2 | 7 | ||
3 | const Service = use('App/Models/Service'); | 8 | const Service = use('App/Models/Service'); |
@@ -319,3 +324,4 @@ class DashboardController { | |||
319 | } | 324 | } |
320 | 325 | ||
321 | module.exports = DashboardController; | 326 | module.exports = DashboardController; |
327 | */ | ||
diff --git a/app/Controllers/Http/HealthController.ts b/app/Controllers/Http/HealthController.ts new file mode 100644 index 0000000..bf185d8 --- /dev/null +++ b/app/Controllers/Http/HealthController.ts | |||
@@ -0,0 +1,10 @@ | |||
1 | export default class HealthController { | ||
2 | public async index() { | ||
3 | // TODO: Actually do something instead of alwayas returning success. | ||
4 | |||
5 | return { | ||
6 | api: 'success', | ||
7 | db: 'success', | ||
8 | }; | ||
9 | } | ||
10 | } | ||
diff --git a/app/Controllers/Http/HomeController.ts b/app/Controllers/Http/HomeController.ts new file mode 100644 index 0000000..dbe9fbd --- /dev/null +++ b/app/Controllers/Http/HomeController.ts | |||
@@ -0,0 +1,9 @@ | |||
1 | // import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' | ||
2 | |||
3 | export default class HomeController { | ||
4 | public async index() { | ||
5 | // TODO: Actually do something instead of alwayas returning success. | ||
6 | |||
7 | return { hello: 'world' }; | ||
8 | } | ||
9 | } | ||
diff --git a/app/Controllers/Http/RecipeController.js b/app/Controllers/Http/RecipeController.js deleted file mode 100644 index cbdddaf..0000000 --- a/app/Controllers/Http/RecipeController.js +++ /dev/null | |||
@@ -1,226 +0,0 @@ | |||
1 | const Recipe = use('App/Models/Recipe'); | ||
2 | const Helpers = use('Helpers'); | ||
3 | const Drive = use('Drive'); | ||
4 | const { | ||
5 | validateAll, | ||
6 | } = use('Validator'); | ||
7 | const Env = use('Env'); | ||
8 | |||
9 | const targz = require('targz'); | ||
10 | const path = require('path'); | ||
11 | const fs = require('fs-extra'); | ||
12 | const semver = require('semver'); | ||
13 | |||
14 | const compress = (src, dest) => new Promise((resolve, reject) => { | ||
15 | targz.compress({ | ||
16 | src, | ||
17 | dest, | ||
18 | }, (err) => { | ||
19 | if (err) { | ||
20 | reject(err); | ||
21 | } else { | ||
22 | resolve(dest); | ||
23 | } | ||
24 | }); | ||
25 | }); | ||
26 | |||
27 | class RecipeController { | ||
28 | // List official and custom recipes | ||
29 | async list({ | ||
30 | response, | ||
31 | }) { | ||
32 | const officialRecipes = fs.readJsonSync(path.join(Helpers.appRoot(), 'recipes', 'all.json')); | ||
33 | const customRecipesArray = (await Recipe.all()).rows; | ||
34 | const customRecipes = customRecipesArray.map((recipe) => ({ | ||
35 | id: recipe.recipeId, | ||
36 | name: recipe.name, | ||
37 | ...typeof recipe.data === 'string' ? JSON.parse(recipe.data) : recipe.data, | ||
38 | })); | ||
39 | |||
40 | const recipes = [ | ||
41 | ...officialRecipes, | ||
42 | ...customRecipes, | ||
43 | ]; | ||
44 | |||
45 | return response.send(recipes); | ||
46 | } | ||
47 | |||
48 | // Create a new recipe using the new.html page | ||
49 | async create({ | ||
50 | request, | ||
51 | response, | ||
52 | }) { | ||
53 | // Check if recipe creation is enabled | ||
54 | if (Env.get('IS_CREATION_ENABLED') == 'false') { // eslint-disable-line eqeqeq | ||
55 | return response.send('This server doesn\'t allow the creation of new recipes.'); | ||
56 | } | ||
57 | |||
58 | // Validate user input | ||
59 | const validation = await validateAll(request.all(), { | ||
60 | name: 'required|string', | ||
61 | id: 'required|unique:recipes,recipeId', | ||
62 | author: 'required|accepted', | ||
63 | svg: 'required|url', | ||
64 | }); | ||
65 | if (validation.fails()) { | ||
66 | return response.status(401).send({ | ||
67 | message: 'Invalid POST arguments', | ||
68 | messages: validation.messages(), | ||
69 | status: 401, | ||
70 | }); | ||
71 | } | ||
72 | |||
73 | const data = request.all(); | ||
74 | |||
75 | if (!data.id) { | ||
76 | return response.send('Please provide an ID'); | ||
77 | } | ||
78 | |||
79 | // Check for invalid characters | ||
80 | if (/\.{1,}/.test(data.id) || /\/{1,}/.test(data.id)) { | ||
81 | return response.send('Invalid recipe name. Your recipe name may not contain "." or "/"'); | ||
82 | } | ||
83 | |||
84 | // Clear temporary recipe folder | ||
85 | await fs.emptyDir(Helpers.tmpPath('recipe')); | ||
86 | |||
87 | // Move uploaded files to temporary path | ||
88 | const files = request.file('files'); | ||
89 | await files.moveAll(Helpers.tmpPath('recipe')); | ||
90 | |||
91 | // Compress files to .tar.gz file | ||
92 | const source = Helpers.tmpPath('recipe'); | ||
93 | const destination = path.join(Helpers.appRoot(), `/recipes/archives/${data.id}.tar.gz`); | ||
94 | |||
95 | compress( | ||
96 | source, | ||
97 | destination, | ||
98 | ); | ||
99 | |||
100 | // Create recipe in db | ||
101 | await Recipe.create({ | ||
102 | name: data.name, | ||
103 | recipeId: data.id, | ||
104 | data: JSON.stringify({ | ||
105 | author: data.author, | ||
106 | featured: false, | ||
107 | version: '1.0.0', | ||
108 | icons: { | ||
109 | svg: data.svg, | ||
110 | }, | ||
111 | }), | ||
112 | }); | ||
113 | |||
114 | return response.send('Created new recipe'); | ||
115 | } | ||
116 | |||
117 | // Search official and custom recipes | ||
118 | async search({ | ||
119 | request, | ||
120 | response, | ||
121 | }) { | ||
122 | // Validate user input | ||
123 | const validation = await validateAll(request.all(), { | ||
124 | needle: 'required', | ||
125 | }); | ||
126 | if (validation.fails()) { | ||
127 | return response.status(401).send({ | ||
128 | message: 'Please provide a needle', | ||
129 | messages: validation.messages(), | ||
130 | status: 401, | ||
131 | }); | ||
132 | } | ||
133 | |||
134 | const needle = request.input('needle'); | ||
135 | |||
136 | // Get results | ||
137 | let results; | ||
138 | |||
139 | if (needle === 'ferdium:custom') { | ||
140 | const dbResults = (await Recipe.all()).toJSON(); | ||
141 | results = dbResults.map((recipe) => ({ | ||
142 | id: recipe.recipeId, | ||
143 | name: recipe.name, | ||
144 | ...typeof recipe.data === 'string' ? JSON.parse(recipe.data) : recipe.data, | ||
145 | })); | ||
146 | } else { | ||
147 | const localResultsArray = (await Recipe.query().where('name', 'LIKE', `%${needle}%`).fetch()).toJSON(); | ||
148 | results = localResultsArray.map((recipe) => ({ | ||
149 | id: recipe.recipeId, | ||
150 | name: recipe.name, | ||
151 | ...typeof recipe.data === 'string' ? JSON.parse(recipe.data) : recipe.data, | ||
152 | })); | ||
153 | } | ||
154 | |||
155 | return response.send(results); | ||
156 | } | ||
157 | |||
158 | popularRecipes({ | ||
159 | response, | ||
160 | }) { | ||
161 | return response.send( | ||
162 | fs | ||
163 | .readJsonSync(path.join( | ||
164 | Helpers.appRoot(), 'recipes', 'all.json', | ||
165 | )) | ||
166 | .filter((recipe) => recipe.featured), | ||
167 | ); | ||
168 | } | ||
169 | |||
170 | update({ request, response }) { | ||
171 | const updates = []; | ||
172 | const recipes = request.all(); | ||
173 | const allJson = fs.readJsonSync(path.join( | ||
174 | Helpers.appRoot(), 'recipes', 'all.json', | ||
175 | )); | ||
176 | |||
177 | for (const recipe of Object.keys(recipes)) { | ||
178 | const version = recipes[recipe]; | ||
179 | |||
180 | // Find recipe in local recipe repository | ||
181 | const localRecipe = allJson.find(r => r.id === recipe); | ||
182 | if (localRecipe && semver.lt(version, localRecipe.version)) { | ||
183 | updates.push(recipe); | ||
184 | } | ||
185 | } | ||
186 | |||
187 | return response.send(updates); | ||
188 | } | ||
189 | |||
190 | // Download a recipe | ||
191 | async download({ | ||
192 | response, | ||
193 | params, | ||
194 | }) { | ||
195 | // Validate user input | ||
196 | const validation = await validateAll(params, { | ||
197 | recipe: 'required|accepted', | ||
198 | }); | ||
199 | if (validation.fails()) { | ||
200 | return response.status(401).send({ | ||
201 | message: 'Please provide a recipe ID', | ||
202 | messages: validation.messages(), | ||
203 | status: 401, | ||
204 | }); | ||
205 | } | ||
206 | |||
207 | const service = params.recipe; | ||
208 | |||
209 | // Check for invalid characters | ||
210 | if (/\.{1,}/.test(service) || /\/{1,}/.test(service)) { | ||
211 | return response.send('Invalid recipe name'); | ||
212 | } | ||
213 | |||
214 | // Check if recipe exists in recipes folder | ||
215 | if (await Drive.exists(`${service}.tar.gz`)) { | ||
216 | return response.type('.tar.gz').send(await Drive.get(`${service}.tar.gz`)); | ||
217 | } | ||
218 | |||
219 | return response.status(400).send({ | ||
220 | message: 'Recipe not found', | ||
221 | code: 'recipe-not-found', | ||
222 | }); | ||
223 | } | ||
224 | } | ||
225 | |||
226 | module.exports = RecipeController; | ||
diff --git a/app/Controllers/Http/RecipeController.ts b/app/Controllers/Http/RecipeController.ts new file mode 100644 index 0000000..5186a11 --- /dev/null +++ b/app/Controllers/Http/RecipeController.ts | |||
@@ -0,0 +1,254 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | import fs from 'fs-extra'; | ||
3 | import Application from '@ioc:Adonis/Core/Application'; | ||
4 | import path from 'node:path'; | ||
5 | import Recipe from 'App/Models/Recipe'; | ||
6 | import { isCreationEnabled } from 'Config/app'; | ||
7 | import { validator, schema, rules } from '@ioc:Adonis/Core/Validator'; | ||
8 | import targz from 'targz'; | ||
9 | import semver from 'semver'; | ||
10 | import Drive from '@ioc:Adonis/Core/Drive'; | ||
11 | |||
12 | // TODO: This file needs to be refactored and cleaned up to include types | ||
13 | |||
14 | const createSchema = schema.create({ | ||
15 | name: schema.string(), | ||
16 | id: schema.string([rules.unique({ table: 'recipes', column: 'recipeId' })]), | ||
17 | // TODO: Check if this is correct | ||
18 | // author: 'required|accepted', | ||
19 | author: schema.string(), | ||
20 | svg: schema.string([rules.url()]), | ||
21 | }); | ||
22 | |||
23 | const searchSchema = schema.create({ | ||
24 | needle: schema.string(), | ||
25 | }); | ||
26 | |||
27 | const downloadSchema = schema.create({ | ||
28 | // TODO: Check if this is correct | ||
29 | // recipe: 'required|accepted', | ||
30 | recipe: schema.string(), | ||
31 | }); | ||
32 | |||
33 | const compress = (src: string, dest: string) => | ||
34 | new Promise((resolve, reject) => { | ||
35 | targz.compress( | ||
36 | { | ||
37 | src, | ||
38 | dest, | ||
39 | }, | ||
40 | err => { | ||
41 | if (err) { | ||
42 | reject(err); | ||
43 | } else { | ||
44 | resolve(dest); | ||
45 | } | ||
46 | }, | ||
47 | ); | ||
48 | }); | ||
49 | |||
50 | export default class RecipesController { | ||
51 | // List official and custom recipes | ||
52 | public async list({ response }: HttpContextContract) { | ||
53 | const officialRecipes = fs.readJsonSync( | ||
54 | path.join(Application.appRoot, 'recipes', 'all.json'), | ||
55 | ); | ||
56 | const customRecipesArray = await Recipe.all(); | ||
57 | const customRecipes = customRecipesArray.map(recipe => ({ | ||
58 | id: recipe.recipeId, | ||
59 | name: recipe.name, | ||
60 | ...(typeof recipe.data === 'string' | ||
61 | ? JSON.parse(recipe.data) | ||
62 | : recipe.data), | ||
63 | })); | ||
64 | |||
65 | const recipes = [...officialRecipes, ...customRecipes]; | ||
66 | |||
67 | return response.send(recipes); | ||
68 | } | ||
69 | |||
70 | // TODO: Test this endpoint | ||
71 | // Create a new recipe using the new.html page | ||
72 | public async create({ request, response }: HttpContextContract) { | ||
73 | // Check if recipe creation is enabled | ||
74 | if (isCreationEnabled === 'false') { | ||
75 | return response.send( | ||
76 | 'This server doesn\'t allow the creation of new recipes.', | ||
77 | ); | ||
78 | } | ||
79 | |||
80 | // Validate user input | ||
81 | let data; | ||
82 | try { | ||
83 | data = await request.validate({ schema: createSchema }); | ||
84 | } catch (error) { | ||
85 | return response.status(401).send({ | ||
86 | message: 'Invalid POST arguments', | ||
87 | messages: error.messages, | ||
88 | status: 401, | ||
89 | }); | ||
90 | } | ||
91 | |||
92 | if (!data.id) { | ||
93 | return response.send('Please provide an ID'); | ||
94 | } | ||
95 | |||
96 | // Check for invalid characters | ||
97 | if (/\.+/.test(data.id) || /\/+/.test(data.id)) { | ||
98 | return response.send( | ||
99 | 'Invalid recipe name. Your recipe name may not contain "." or "/"', | ||
100 | ); | ||
101 | } | ||
102 | |||
103 | // Clear temporary recipe folder | ||
104 | await fs.emptyDir(Application.tmpPath('recipe')); | ||
105 | |||
106 | // Move uploaded files to temporary path | ||
107 | const files = request.file('files'); | ||
108 | if (!files) { | ||
109 | return response.abort('Error processsing files.'); | ||
110 | } | ||
111 | await files.move(Application.tmpPath('recipe')); | ||
112 | |||
113 | // Compress files to .tar.gz file | ||
114 | const source = Application.tmpPath('recipe'); | ||
115 | const destination = path.join( | ||
116 | Application.appRoot, | ||
117 | `/recipes/archives/${data.id}.tar.gz`, | ||
118 | ); | ||
119 | |||
120 | compress(source, destination); | ||
121 | |||
122 | // Create recipe in db | ||
123 | await Recipe.create({ | ||
124 | name: data.name, | ||
125 | recipeId: data.id, | ||
126 | // @ts-expect-error | ||
127 | data: JSON.stringify({ | ||
128 | author: data.author, | ||
129 | featured: false, | ||
130 | version: '1.0.0', | ||
131 | icons: { | ||
132 | svg: data.svg, | ||
133 | }, | ||
134 | }), | ||
135 | }); | ||
136 | |||
137 | return response.send('Created new recipe'); | ||
138 | } | ||
139 | |||
140 | // Search official and custom recipes | ||
141 | public async search({ request, response }: HttpContextContract) { | ||
142 | // Validate user input | ||
143 | let data; | ||
144 | try { | ||
145 | data = await request.validate({ schema: searchSchema }); | ||
146 | } catch (error) { | ||
147 | return response.status(401).send({ | ||
148 | message: 'Please provide a needle', | ||
149 | messages: error.messages, | ||
150 | status: 401, | ||
151 | }); | ||
152 | } | ||
153 | |||
154 | const { needle } = data; | ||
155 | |||
156 | // Get results | ||
157 | let results; | ||
158 | |||
159 | if (needle === 'ferdium:custom') { | ||
160 | const dbResults = await Recipe.all(); | ||
161 | results = dbResults.map(recipe => ({ | ||
162 | id: recipe.recipeId, | ||
163 | name: recipe.name, | ||
164 | ...(typeof recipe.data === 'string' | ||
165 | ? JSON.parse(recipe.data) | ||
166 | : recipe.data), | ||
167 | })); | ||
168 | } else { | ||
169 | const localResultsArray = await Recipe.query().where( | ||
170 | 'name', | ||
171 | 'LIKE', | ||
172 | `%${needle}%`, | ||
173 | ); | ||
174 | results = localResultsArray.map(recipe => ({ | ||
175 | id: recipe.recipeId, | ||
176 | name: recipe.name, | ||
177 | ...(typeof recipe.data === 'string' | ||
178 | ? JSON.parse(recipe.data) | ||
179 | : recipe.data), | ||
180 | })); | ||
181 | } | ||
182 | |||
183 | return response.send(results); | ||
184 | } | ||
185 | |||
186 | public popularRecipes({ response }: HttpContextContract) { | ||
187 | return response.send( | ||
188 | fs | ||
189 | .readJsonSync(path.join(Application.appRoot, 'recipes', 'all.json')) | ||
190 | // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
191 | .filter((recipe: any) => recipe.featured), | ||
192 | ); | ||
193 | } | ||
194 | |||
195 | // TODO: test this endpoint | ||
196 | public update({ request, response }: HttpContextContract) { | ||
197 | const updates = []; | ||
198 | const recipes = request.all(); | ||
199 | const allJson = fs.readJsonSync( | ||
200 | path.join(Application.appRoot, 'recipes', 'all.json'), | ||
201 | ); | ||
202 | |||
203 | for (const recipe of Object.keys(recipes)) { | ||
204 | const version = recipes[recipe]; | ||
205 | |||
206 | // Find recipe in local recipe repository | ||
207 | // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
208 | const localRecipe = allJson.find((r: any) => r.id === recipe); | ||
209 | if (localRecipe && semver.lt(version, localRecipe.version)) { | ||
210 | updates.push(recipe); | ||
211 | } | ||
212 | } | ||
213 | |||
214 | return response.send(updates); | ||
215 | } | ||
216 | |||
217 | // TODO: test this endpoint | ||
218 | // Download a recipe | ||
219 | public async download({ response, params }: HttpContextContract) { | ||
220 | // Validate user input | ||
221 | let data; | ||
222 | try { | ||
223 | data = await validator.validate({ | ||
224 | data: params, | ||
225 | schema: downloadSchema, | ||
226 | }); | ||
227 | } catch (error) { | ||
228 | return response.status(401).send({ | ||
229 | message: 'Please provide a recipe ID', | ||
230 | messages: error.messages, | ||
231 | status: 401, | ||
232 | }); | ||
233 | } | ||
234 | |||
235 | const service = data.recipe; | ||
236 | |||
237 | // Check for invalid characters | ||
238 | if (/\.+/.test(service) || /\/+/.test(service)) { | ||
239 | return response.send('Invalid recipe name'); | ||
240 | } | ||
241 | |||
242 | // Check if recipe exists in recipes folder | ||
243 | if (await Drive.exists(`${service}.tar.gz`)) { | ||
244 | return response | ||
245 | .type('.tar.gz') | ||
246 | .send(await Drive.get(`${service}.tar.gz`)); | ||
247 | } | ||
248 | |||
249 | return response.status(400).send({ | ||
250 | message: 'Recipe not found', | ||
251 | code: 'recipe-not-found', | ||
252 | }); | ||
253 | } | ||
254 | } | ||
diff --git a/app/Controllers/Http/ServiceController.js b/app/Controllers/Http/ServiceController.ts index 6a27ef2..36c6ca4 100644 --- a/app/Controllers/Http/ServiceController.js +++ b/app/Controllers/Http/ServiceController.ts | |||
@@ -1,48 +1,51 @@ | |||
1 | const Service = use('App/Models/Service'); | 1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; |
2 | const { validateAll } = use('Validator'); | 2 | import { schema } from '@ioc:Adonis/Core/Validator'; |
3 | const Env = use('Env'); | 3 | import Service from 'App/Models/Service'; |
4 | const Helpers = use('Helpers'); | 4 | import { url } from 'Config/app'; |
5 | 5 | import { v4 as uuid } from 'uuid'; | |
6 | const { v4: uuid } = require('uuid'); | 6 | import * as fs from 'fs-extra'; |
7 | const path = require('path'); | 7 | import path from 'node:path'; |
8 | const fs = require('fs-extra'); | 8 | import Application from '@ioc:Adonis/Core/Application'; |
9 | const sanitize = require('sanitize-filename'); | 9 | import sanitize from 'sanitize-filename'; |
10 | 10 | ||
11 | class ServiceController { | 11 | const createSchema = schema.create({ |
12 | name: schema.string(), | ||
13 | recipeId: schema.string(), | ||
14 | }); | ||
15 | |||
16 | export default class ServicesController { | ||
12 | // Create a new service for user | 17 | // Create a new service for user |
13 | async create({ request, response, auth }) { | 18 | public async create({ request, response, auth }: HttpContextContract) { |
14 | try { | 19 | // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. |
15 | await auth.getUser(); | 20 | const user = auth.user ?? request.user; |
16 | } catch (error) { | 21 | |
17 | return response.send('Missing or invalid api token'); | 22 | if (!user) { |
23 | return response.unauthorized('Missing or invalid api token'); | ||
18 | } | 24 | } |
19 | 25 | ||
20 | // Validate user input | 26 | // Validate user input |
21 | const validation = await validateAll(request.all(), { | 27 | let data; |
22 | name: 'required|string', | 28 | try { |
23 | recipeId: 'required', | 29 | data = await request.validate({ schema: createSchema }); |
24 | }); | 30 | } catch (error) { |
25 | if (validation.fails()) { | ||
26 | return response.status(401).send({ | 31 | return response.status(401).send({ |
27 | message: 'Invalid POST arguments', | 32 | message: 'Invalid POST arguments', |
28 | messages: validation.messages(), | 33 | messages: error.messages, |
29 | status: 401, | 34 | status: 401, |
30 | }); | 35 | }); |
31 | } | 36 | } |
32 | 37 | ||
33 | const data = request.all(); | ||
34 | |||
35 | // Get new, unused uuid | 38 | // Get new, unused uuid |
36 | let serviceId; | 39 | let serviceId; |
37 | do { | 40 | do { |
38 | serviceId = uuid(); | 41 | serviceId = uuid(); |
39 | } while ( | 42 | } while ( |
40 | (await Service.query().where('serviceId', serviceId).fetch()).rows | 43 | // eslint-disable-next-line no-await-in-loop, unicorn/no-await-expression-member |
41 | .length > 0 | 44 | (await Service.query().where('serviceId', serviceId)).length > 0 |
42 | ); // eslint-disable-line no-await-in-loop | 45 | ); |
43 | 46 | ||
44 | await Service.create({ | 47 | await Service.create({ |
45 | userId: auth.user.id, | 48 | userId: user.id, |
46 | serviceId, | 49 | serviceId, |
47 | name: data.name, | 50 | name: data.name, |
48 | recipeId: data.recipeId, | 51 | recipeId: data.recipeId, |
@@ -51,7 +54,7 @@ class ServiceController { | |||
51 | 54 | ||
52 | return response.send({ | 55 | return response.send({ |
53 | data: { | 56 | data: { |
54 | userId: auth.user.id, | 57 | userId: user.id, |
55 | id: serviceId, | 58 | id: serviceId, |
56 | isEnabled: true, | 59 | isEnabled: true, |
57 | isNotificationEnabled: true, | 60 | isNotificationEnabled: true, |
@@ -63,6 +66,7 @@ class ServiceController { | |||
63 | customRecipe: false, | 66 | customRecipe: false, |
64 | hasCustomIcon: false, | 67 | hasCustomIcon: false, |
65 | workspaces: [], | 68 | workspaces: [], |
69 | // eslint-disable-next-line unicorn/no-null | ||
66 | iconUrl: null, | 70 | iconUrl: null, |
67 | ...data, | 71 | ...data, |
68 | }, | 72 | }, |
@@ -71,16 +75,20 @@ class ServiceController { | |||
71 | } | 75 | } |
72 | 76 | ||
73 | // List all services a user has created | 77 | // List all services a user has created |
74 | async list({ response, auth }) { | 78 | public async list({ request, response, auth }: HttpContextContract) { |
75 | try { | 79 | // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. |
76 | await auth.getUser(); | 80 | const user = auth.user ?? request.user; |
77 | } catch (error) { | 81 | |
78 | return response.send('Missing or invalid api token'); | 82 | if (!user) { |
83 | return response.unauthorized('Missing or invalid api token'); | ||
79 | } | 84 | } |
80 | 85 | ||
81 | const services = (await auth.user.services().fetch()).rows; | 86 | const { id } = user; |
87 | const services = await user.related('services').query(); | ||
88 | |||
82 | // Convert to array with all data Franz wants | 89 | // Convert to array with all data Franz wants |
83 | const servicesArray = services.map(service => { | 90 | // eslint-disable-next-line @typescript-eslint/no-explicit-any |
91 | const servicesArray = services.map((service: any) => { | ||
84 | const settings = | 92 | const settings = |
85 | typeof service.settings === 'string' | 93 | typeof service.settings === 'string' |
86 | ? JSON.parse(service.settings) | 94 | ? JSON.parse(service.settings) |
@@ -99,38 +107,65 @@ class ServiceController { | |||
99 | workspaces: [], | 107 | workspaces: [], |
100 | ...settings, | 108 | ...settings, |
101 | iconUrl: settings.iconId | 109 | iconUrl: settings.iconId |
102 | ? `${Env.get('APP_URL')}/v1/icon/${settings.iconId}` | 110 | ? `${url}/v1/icon/${settings.iconId}` |
103 | : null, | 111 | : // eslint-disable-next-line unicorn/no-null |
112 | null, | ||
104 | id: service.serviceId, | 113 | id: service.serviceId, |
105 | name: service.name, | 114 | name: service.name, |
106 | recipeId: service.recipeId, | 115 | recipeId: service.recipeId, |
107 | userId: auth.user.id, | 116 | userId: id, |
108 | }; | 117 | }; |
109 | }); | 118 | }); |
110 | 119 | ||
111 | return response.send(servicesArray); | 120 | return response.send(servicesArray); |
112 | } | 121 | } |
113 | 122 | ||
114 | async edit({ request, response, auth, params }) { | 123 | public async delete({ params, auth, response }: HttpContextContract) { |
115 | try { | 124 | // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. |
116 | await auth.getUser(); | 125 | const user = auth.user ?? request.user; |
117 | } catch (error) { | 126 | |
118 | return response.send('Missing or invalid api token'); | 127 | if (!user) { |
128 | return response.unauthorized('Missing or invalid api token'); | ||
119 | } | 129 | } |
120 | 130 | ||
131 | // Update data in database | ||
132 | await Service.query() | ||
133 | .where('serviceId', params.id) | ||
134 | .where('userId', user.id) | ||
135 | .delete(); | ||
136 | |||
137 | return response.send({ | ||
138 | message: 'Sucessfully deleted service', | ||
139 | status: 200, | ||
140 | }); | ||
141 | } | ||
142 | |||
143 | // TODO: Test if icon upload works | ||
144 | public async edit({ request, response, auth, params }: HttpContextContract) { | ||
145 | // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. | ||
146 | const user = auth.user ?? request.user; | ||
147 | |||
148 | if (!user) { | ||
149 | return response.unauthorized('Missing or invalid api token'); | ||
150 | } | ||
151 | |||
152 | const { id } = params; | ||
153 | const service = await Service.query() | ||
154 | .where('serviceId', id) | ||
155 | .where('userId', user.id) | ||
156 | .firstOrFail(); | ||
157 | |||
121 | if (request.file('icon')) { | 158 | if (request.file('icon')) { |
122 | // Upload custom service icon | 159 | // Upload custom service icon |
123 | const icon = request.file('icon', { | 160 | const icon = request.file('icon', { |
124 | types: ['image'], | 161 | extnames: ['png', 'jpg', 'jpeg', 'svg'], |
125 | size: '2mb', | 162 | size: '2mb', |
126 | }); | 163 | }); |
127 | const { id } = params; | 164 | |
128 | const service = ( | 165 | if (icon === null) { |
129 | await Service.query() | 166 | return response.badRequest('Icon not uploaded.'); |
130 | .where('serviceId', id) | 167 | } |
131 | .where('userId', auth.user.id) | 168 | |
132 | .fetch() | ||
133 | ).rows[0]; | ||
134 | const settings = | 169 | const settings = |
135 | typeof service.settings === 'string' | 170 | typeof service.settings === 'string' |
136 | ? JSON.parse(service.settings) | 171 | ? JSON.parse(service.settings) |
@@ -139,34 +174,34 @@ class ServiceController { | |||
139 | let iconId; | 174 | let iconId; |
140 | do { | 175 | do { |
141 | iconId = uuid() + uuid(); | 176 | iconId = uuid() + uuid(); |
177 | } while ( | ||
142 | // eslint-disable-next-line no-await-in-loop | 178 | // eslint-disable-next-line no-await-in-loop |
143 | } while (await fs.exists(path.join(Helpers.tmpPath('uploads'), iconId))); | 179 | await fs.exists(path.join(Application.tmpPath('uploads'), iconId)) |
180 | ); | ||
144 | iconId = `${iconId}.${icon.extname}`; | 181 | iconId = `${iconId}.${icon.extname}`; |
145 | 182 | ||
146 | await icon.move(Helpers.tmpPath('uploads'), { | 183 | await icon.move(Application.tmpPath('uploads'), { |
147 | name: iconId, | 184 | name: iconId, |
148 | overwrite: true, | 185 | overwrite: true, |
149 | }); | 186 | }); |
150 | 187 | ||
151 | if (!icon.moved()) { | 188 | if (icon.state !== 'moved') { |
152 | return response.status(500).send(icon.error()); | 189 | return response.status(500).send(icon.errors); |
153 | } | 190 | } |
154 | 191 | ||
155 | const newSettings = { | 192 | const newSettings = { |
156 | ...settings, | 193 | ...settings, |
157 | ...{ | 194 | |
158 | iconId, | 195 | iconId, |
159 | customIconVersion: | 196 | customIconVersion: settings?.customIconVersion |
160 | settings && settings.customIconVersion | 197 | ? settings.customIconVersion + 1 |
161 | ? settings.customIconVersion + 1 | 198 | : 1, |
162 | : 1, | ||
163 | }, | ||
164 | }; | 199 | }; |
165 | 200 | ||
166 | // Update data in database | 201 | // Update data in database |
167 | await Service.query() | 202 | await Service.query() |
168 | .where('serviceId', id) | 203 | .where('serviceId', id) |
169 | .where('userId', auth.user.id) | 204 | .where('userId', user.id) |
170 | .update({ | 205 | .update({ |
171 | name: service.name, | 206 | name: service.name, |
172 | settings: JSON.stringify(newSettings), | 207 | settings: JSON.stringify(newSettings), |
@@ -177,34 +212,25 @@ class ServiceController { | |||
177 | id, | 212 | id, |
178 | name: service.name, | 213 | name: service.name, |
179 | ...newSettings, | 214 | ...newSettings, |
180 | iconUrl: `${Env.get('APP_URL')}/v1/icon/${newSettings.iconId}`, | 215 | iconUrl: `${url}/v1/icon/${newSettings.iconId}`, |
181 | userId: auth.user.id, | 216 | userId: user.id, |
182 | }, | 217 | }, |
183 | status: ['updated'], | 218 | status: ['updated'], |
184 | }); | 219 | }); |
185 | } | 220 | } |
186 | // Update service info | 221 | // Update service info |
187 | const data = request.all(); | 222 | const data = request.all(); |
188 | const { id } = params; | ||
189 | |||
190 | // Get current settings from db | ||
191 | const serviceData = ( | ||
192 | await Service.query() | ||
193 | .where('serviceId', id) | ||
194 | .where('userId', auth.user.id) | ||
195 | .fetch() | ||
196 | ).rows[0]; | ||
197 | 223 | ||
198 | const settings = { | 224 | const settings = { |
199 | ...(typeof serviceData.settings === 'string' | 225 | ...(typeof service.settings === 'string' |
200 | ? JSON.parse(serviceData.settings) | 226 | ? JSON.parse(service.settings) |
201 | : serviceData.settings), | 227 | : service.settings), |
202 | ...data, | 228 | ...data, |
203 | }; | 229 | }; |
204 | 230 | ||
205 | if (settings.customIcon === 'delete') { | 231 | if (settings.customIcon === 'delete') { |
206 | fs.remove( | 232 | fs.remove( |
207 | path.join(Helpers.tmpPath('uploads'), settings.iconId), | 233 | path.join(Application.tmpPath('uploads'), settings.iconId), |
208 | ).catch(error => { | 234 | ).catch(error => { |
209 | console.error(error); | 235 | console.error(error); |
210 | }); | 236 | }); |
@@ -217,68 +243,48 @@ class ServiceController { | |||
217 | // Update data in database | 243 | // Update data in database |
218 | await Service.query() | 244 | await Service.query() |
219 | .where('serviceId', id) | 245 | .where('serviceId', id) |
220 | .where('userId', auth.user.id) | 246 | .where('userId', user.id) |
221 | .update({ | 247 | .update({ |
222 | name: data.name, | 248 | name: data.name, |
223 | settings: JSON.stringify(settings), | 249 | settings: JSON.stringify(settings), |
224 | }); | 250 | }); |
225 | 251 | ||
226 | // Get updated row | 252 | // Get updated row |
227 | const service = ( | 253 | const serviceUpdated = await Service.query() |
228 | await Service.query() | 254 | .where('serviceId', id) |
229 | .where('serviceId', id) | 255 | .where('userId', user.id) |
230 | .where('userId', auth.user.id) | 256 | .firstOrFail(); |
231 | .fetch() | ||
232 | ).rows[0]; | ||
233 | 257 | ||
234 | return response.send({ | 258 | return response.send({ |
235 | data: { | 259 | data: { |
236 | id, | 260 | id, |
237 | name: service.name, | 261 | name: serviceUpdated.name, |
238 | ...settings, | 262 | ...settings, |
239 | iconUrl: `${Env.get('APP_URL')}/v1/icon/${settings.iconId}`, | 263 | iconUrl: `${url}/v1/icon/${settings.iconId}`, |
240 | userId: auth.user.id, | 264 | userId: user.id, |
241 | }, | 265 | }, |
242 | status: ['updated'], | 266 | status: ['updated'], |
243 | }); | 267 | }); |
244 | } | 268 | } |
245 | 269 | ||
246 | async icon({ params, response }) { | 270 | // TODO: Test if this works |
247 | let { id } = params; | 271 | public async reorder({ request, response, auth }: HttpContextContract) { |
272 | // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. | ||
273 | const user = auth.user ?? request.user; | ||
248 | 274 | ||
249 | id = sanitize(id); | 275 | if (!user) { |
250 | if (id === '') { | 276 | return response.unauthorized('Missing or invalid api token'); |
251 | return response.status(404).send({ | ||
252 | status: "Icon doesn't exist", | ||
253 | }); | ||
254 | } | 277 | } |
255 | 278 | ||
256 | const iconPath = path.join(Helpers.tmpPath('uploads'), id); | ||
257 | |||
258 | try { | ||
259 | await fs.access(iconPath); | ||
260 | } catch (ex) { | ||
261 | console.log(ex); | ||
262 | // File not available. | ||
263 | return response.status(404).send({ | ||
264 | status: "Icon doesn't exist", | ||
265 | }); | ||
266 | } | ||
267 | |||
268 | return response.download(iconPath); | ||
269 | } | ||
270 | |||
271 | async reorder({ request, response, auth }) { | ||
272 | const data = request.all(); | 279 | const data = request.all(); |
273 | 280 | ||
274 | for (const service of Object.keys(data)) { | 281 | for (const service of Object.keys(data)) { |
275 | // Get current settings from db | 282 | // Get current settings from db |
276 | const serviceData = ( | 283 | const serviceData = await Service.query() // eslint-disable-line no-await-in-loop |
277 | await Service.query() // eslint-disable-line no-await-in-loop | 284 | .where('serviceId', service) |
278 | .where('serviceId', service) | 285 | .where('userId', user.id) |
279 | .where('userId', auth.user.id) | 286 | |
280 | .fetch() | 287 | .firstOrFail(); |
281 | ).rows[0]; | ||
282 | 288 | ||
283 | const settings = { | 289 | const settings = { |
284 | ...(typeof serviceData.settings === 'string' | 290 | ...(typeof serviceData.settings === 'string' |
@@ -290,16 +296,17 @@ class ServiceController { | |||
290 | // Update data in database | 296 | // Update data in database |
291 | await Service.query() // eslint-disable-line no-await-in-loop | 297 | await Service.query() // eslint-disable-line no-await-in-loop |
292 | .where('serviceId', service) | 298 | .where('serviceId', service) |
293 | .where('userId', auth.user.id) | 299 | .where('userId', user.id) |
294 | .update({ | 300 | .update({ |
295 | settings: JSON.stringify(settings), | 301 | settings: JSON.stringify(settings), |
296 | }); | 302 | }); |
297 | } | 303 | } |
298 | 304 | ||
299 | // Get new services | 305 | // Get new services |
300 | const services = (await auth.user.services().fetch()).rows; | 306 | const services = await user.related('services').query(); |
301 | // Convert to array with all data Franz wants | 307 | // Convert to array with all data Franz wants |
302 | const servicesArray = services.map(service => { | 308 | // eslint-disable-next-line @typescript-eslint/no-explicit-any |
309 | const servicesArray = services.map((service: any) => { | ||
303 | const settings = | 310 | const settings = |
304 | typeof service.settings === 'string' | 311 | typeof service.settings === 'string' |
305 | ? JSON.parse(service.settings) | 312 | ? JSON.parse(service.settings) |
@@ -318,30 +325,41 @@ class ServiceController { | |||
318 | workspaces: [], | 325 | workspaces: [], |
319 | ...settings, | 326 | ...settings, |
320 | iconUrl: settings.iconId | 327 | iconUrl: settings.iconId |
321 | ? `${Env.get('APP_URL')}/v1/icon/${settings.iconId}` | 328 | ? `${url}/v1/icon/${settings.iconId}` |
322 | : null, | 329 | : // eslint-disable-next-line unicorn/no-null |
330 | null, | ||
323 | id: service.serviceId, | 331 | id: service.serviceId, |
324 | name: service.name, | 332 | name: service.name, |
325 | recipeId: service.recipeId, | 333 | recipeId: service.recipeId, |
326 | userId: auth.user.id, | 334 | userId: user.id, |
327 | }; | 335 | }; |
328 | }); | 336 | }); |
329 | 337 | ||
330 | return response.send(servicesArray); | 338 | return response.send(servicesArray); |
331 | } | 339 | } |
332 | 340 | ||
333 | async delete({ params, auth, response }) { | 341 | // TODO: Test if this works |
334 | // Update data in database | 342 | public async icon({ params, response }: HttpContextContract) { |
335 | await Service.query() | 343 | let { id } = params; |
336 | .where('serviceId', params.id) | ||
337 | .where('userId', auth.user.id) | ||
338 | .delete(); | ||
339 | 344 | ||
340 | return response.send({ | 345 | id = sanitize(id); |
341 | message: 'Sucessfully deleted service', | 346 | if (id === '') { |
342 | status: 200, | 347 | return response.status(404).send({ |
343 | }); | 348 | status: 'Icon doesn\'t exist', |
349 | }); | ||
350 | } | ||
351 | |||
352 | const iconPath = path.join(Application.tmpPath('uploads'), id); | ||
353 | |||
354 | try { | ||
355 | await fs.access(iconPath); | ||
356 | } catch { | ||
357 | // File not available. | ||
358 | return response.status(404).send({ | ||
359 | status: 'Icon doesn\'t exist', | ||
360 | }); | ||
361 | } | ||
362 | |||
363 | return response.download(iconPath); | ||
344 | } | 364 | } |
345 | } | 365 | } |
346 | |||
347 | module.exports = ServiceController; | ||
diff --git a/app/Controllers/Http/StaticController.js b/app/Controllers/Http/StaticController.js deleted file mode 100644 index 82cf1db..0000000 --- a/app/Controllers/Http/StaticController.js +++ /dev/null | |||
@@ -1,44 +0,0 @@ | |||
1 | /** | ||
2 | * Controller for routes with static responses | ||
3 | */ | ||
4 | const Helpers = use('Helpers'); | ||
5 | const fs = require('fs-extra'); | ||
6 | const path = require('path'); | ||
7 | |||
8 | class StaticController { | ||
9 | // Enable all features | ||
10 | features({ | ||
11 | response, | ||
12 | }) { | ||
13 | return response.send({ | ||
14 | isServiceProxyEnabled: true, | ||
15 | isWorkspaceEnabled: true, | ||
16 | isAnnouncementsEnabled: true, | ||
17 | isSettingsWSEnabled: false, | ||
18 | isMagicBarEnabled: true, | ||
19 | isTodosEnabled: true, | ||
20 | }); | ||
21 | } | ||
22 | |||
23 | // Return an empty array | ||
24 | emptyArray({ | ||
25 | response, | ||
26 | }) { | ||
27 | return response.send([]); | ||
28 | } | ||
29 | |||
30 | // Show announcements | ||
31 | async announcement({ | ||
32 | response, | ||
33 | params, | ||
34 | }) { | ||
35 | const announcement = path.join(Helpers.resourcesPath(), 'announcements', `${params.version}.json`); | ||
36 | |||
37 | if (await fs.pathExists(announcement)) { | ||
38 | return response.download(announcement); | ||
39 | } | ||
40 | return response.status(404).send('No announcement found.'); | ||
41 | } | ||
42 | } | ||
43 | |||
44 | module.exports = StaticController; | ||
diff --git a/app/Controllers/Http/StaticsController.ts b/app/Controllers/Http/StaticsController.ts new file mode 100644 index 0000000..e221177 --- /dev/null +++ b/app/Controllers/Http/StaticsController.ts | |||
@@ -0,0 +1,3 @@ | |||
1 | // import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' | ||
2 | |||
3 | export default class StaticsController {} | ||
diff --git a/app/Controllers/Http/UserController.js b/app/Controllers/Http/UserController.ts index aef7f01..ef7cfdd 100644 --- a/app/Controllers/Http/UserController.js +++ b/app/Controllers/Http/UserController.ts | |||
@@ -1,17 +1,37 @@ | |||
1 | const User = use('App/Models/User'); | 1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; |
2 | const Service = use('App/Models/Service'); | 2 | import { schema, rules } from '@ioc:Adonis/Core/Validator'; |
3 | const Workspace = use('App/Models/Workspace'); | 3 | import User from 'App/Models/User'; |
4 | const { validateAll } = use('Validator'); | 4 | import { connectWithFranz, isRegistrationEnabled } from '../../../config/app'; |
5 | const Env = use('Env'); | 5 | import crypto from 'node:crypto'; |
6 | 6 | import { v4 as uuid } from 'uuid'; | |
7 | const atob = require('atob'); | 7 | import Workspace from 'App/Models/Workspace'; |
8 | const btoa = require('btoa'); | 8 | import Service from 'App/Models/Service'; |
9 | const fetch = require('node-fetch'); | 9 | import fetch from 'node-fetch'; |
10 | const { v4: uuid } = require('uuid'); | 10 | |
11 | const crypto = require('crypto'); | 11 | // TODO: This file needs to be refactored and cleaned up to include types |
12 | 12 | import { handleVerifyAndReHash } from '../../../helpers/PasswordHash'; | |
13 | // TODO: This whole controller needs to be changed such that it can support importing from both Franz and Ferdi | 13 | |
14 | const franzRequest = (route, method, auth) => | 14 | const newPostSchema = schema.create({ |
15 | firstname: schema.string(), | ||
16 | lastname: schema.string(), | ||
17 | email: schema.string([ | ||
18 | rules.email(), | ||
19 | rules.unique({ table: 'users', column: 'email' }), | ||
20 | ]), | ||
21 | password: schema.string([rules.minLength(8)]), | ||
22 | }); | ||
23 | |||
24 | const franzImportSchema = schema.create({ | ||
25 | email: schema.string([ | ||
26 | rules.email(), | ||
27 | rules.unique({ table: 'users', column: 'email' }), | ||
28 | ]), | ||
29 | password: schema.string([rules.minLength(8)]), | ||
30 | }); | ||
31 | |||
32 | // // TODO: This whole controller needs to be changed such that it can support importing from both Franz and Ferdi | ||
33 | // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
34 | const franzRequest = (route: any, method: any, auth: any) => | ||
15 | new Promise((resolve, reject) => { | 35 | new Promise((resolve, reject) => { |
16 | const base = 'https://api.franzinfra.com/v1/'; | 36 | const base = 'https://api.franzinfra.com/v1/'; |
17 | const user = | 37 | const user = |
@@ -27,16 +47,15 @@ const franzRequest = (route, method, auth) => | |||
27 | }) | 47 | }) |
28 | .then(data => data.json()) | 48 | .then(data => data.json()) |
29 | .then(json => resolve(json)); | 49 | .then(json => resolve(json)); |
30 | } catch (e) { | 50 | } catch { |
31 | reject(); | 51 | reject(); |
32 | } | 52 | } |
33 | }); | 53 | }); |
34 | 54 | ||
35 | class UserController { | 55 | export default class UsersController { |
36 | // Register a new user | 56 | // Register a new user |
37 | async signup({ request, response, auth }) { | 57 | public async signup({ request, response, auth }: HttpContextContract) { |
38 | if (Env.get('IS_REGISTRATION_ENABLED') == 'false') { | 58 | if (isRegistrationEnabled === 'false') { |
39 | // eslint-disable-line eqeqeq | ||
40 | return response.status(401).send({ | 59 | return response.status(401).send({ |
41 | message: 'Registration is disabled on this server', | 60 | message: 'Registration is disabled on this server', |
42 | status: 401, | 61 | status: 401, |
@@ -44,23 +63,17 @@ class UserController { | |||
44 | } | 63 | } |
45 | 64 | ||
46 | // Validate user input | 65 | // Validate user input |
47 | const validation = await validateAll(request.all(), { | 66 | let data; |
48 | firstname: 'required', | 67 | try { |
49 | lastname: 'required', | 68 | data = await request.validate({ schema: newPostSchema }); |
50 | email: 'required|email|unique:users,email', | 69 | } catch (error) { |
51 | password: 'required', | ||
52 | }); | ||
53 | |||
54 | if (validation.fails()) { | ||
55 | return response.status(401).send({ | 70 | return response.status(401).send({ |
56 | message: 'Invalid POST arguments', | 71 | message: 'Invalid POST arguments', |
57 | messages: validation.messages(), | 72 | messages: error.messages, |
58 | status: 401, | 73 | status: 401, |
59 | }); | 74 | }); |
60 | } | 75 | } |
61 | 76 | ||
62 | const data = request.only(['firstname', 'lastname', 'email', 'password']); | ||
63 | |||
64 | // Create user in DB | 77 | // Create user in DB |
65 | let user; | 78 | let user; |
66 | try { | 79 | try { |
@@ -70,24 +83,24 @@ class UserController { | |||
70 | username: data.firstname, | 83 | username: data.firstname, |
71 | lastname: data.lastname, | 84 | lastname: data.lastname, |
72 | }); | 85 | }); |
73 | } catch (e) { | 86 | } catch { |
74 | return response.status(401).send({ | 87 | return response.status(401).send({ |
75 | message: 'E-Mail Address already in use', | 88 | message: 'E-Mail address already in use', |
76 | status: 401, | 89 | status: 401, |
77 | }); | 90 | }); |
78 | } | 91 | } |
79 | 92 | ||
80 | // Generate new auth token | 93 | // Generate new auth token |
81 | const token = await auth.generate(user); | 94 | const token = await auth.use('jwt').login(user, { payload: {} }); |
82 | 95 | ||
83 | return response.send({ | 96 | return response.send({ |
84 | message: 'Successfully created account', | 97 | message: 'Successfully created account', |
85 | token: token.token, | 98 | token: token.accessToken, |
86 | }); | 99 | }); |
87 | } | 100 | } |
88 | 101 | ||
89 | // Login using an existing user | 102 | // Login using an existing user |
90 | async login({ request, response, auth }) { | 103 | public async login({ request, response, auth }: HttpContextContract) { |
91 | if (!request.header('Authorization')) { | 104 | if (!request.header('Authorization')) { |
92 | return response.status(401).send({ | 105 | return response.status(401).send({ |
93 | message: 'Please provide authorization', | 106 | message: 'Please provide authorization', |
@@ -97,24 +110,28 @@ class UserController { | |||
97 | 110 | ||
98 | // Get auth data from auth token | 111 | // Get auth data from auth token |
99 | const authHeader = atob( | 112 | const authHeader = atob( |
100 | request.header('Authorization').replace('Basic ', ''), | 113 | request.header('Authorization')!.replace('Basic ', ''), |
101 | ).split(':'); | 114 | ).split(':'); |
102 | 115 | ||
103 | // Check if user with email exists | 116 | // Check if user with email exists |
104 | const user = await User.query().where('email', authHeader[0]).first(); | 117 | const user = await User.query().where('email', authHeader[0]).first(); |
105 | if (!user || !user.email) { | 118 | if (!user?.email) { |
106 | return response.status(401).send({ | 119 | return response.status(401).send({ |
107 | message: 'User credentials not valid (Invalid mail)', | 120 | message: 'User credentials not valid', |
108 | code: 'invalid-credentials', | 121 | code: 'invalid-credentials', |
109 | status: 401, | 122 | status: 401, |
110 | }); | 123 | }); |
111 | } | 124 | } |
112 | 125 | ||
113 | // Try to login | 126 | // Verify password |
114 | let token; | 127 | let isMatchedPassword = false; |
115 | try { | 128 | try { |
116 | token = await auth.attempt(user.email, authHeader[1]); | 129 | isMatchedPassword = await handleVerifyAndReHash(user, authHeader[1]); |
117 | } catch (e) { | 130 | } catch (error) { |
131 | return response.internalServerError({ message: error.message }); | ||
132 | } | ||
133 | |||
134 | if (!isMatchedPassword) { | ||
118 | return response.status(401).send({ | 135 | return response.status(401).send({ |
119 | message: 'User credentials not valid', | 136 | message: 'User credentials not valid', |
120 | code: 'invalid-credentials', | 137 | code: 'invalid-credentials', |
@@ -122,44 +139,55 @@ class UserController { | |||
122 | }); | 139 | }); |
123 | } | 140 | } |
124 | 141 | ||
142 | // Generate token | ||
143 | const token = await auth.use('jwt').login(user, { payload: {} }); | ||
144 | |||
125 | return response.send({ | 145 | return response.send({ |
126 | message: 'Successfully logged in', | 146 | message: 'Successfully logged in', |
127 | token: token.token, | 147 | token: token.accessToken, |
128 | }); | 148 | }); |
129 | } | 149 | } |
130 | 150 | ||
131 | // Return information about the current user | 151 | // Return information about the current user |
132 | async me({ response, auth }) { | 152 | public async me({ request, response, auth }: HttpContextContract) { |
133 | try { | 153 | // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. |
134 | await auth.getUser(); | 154 | const user = auth.user ?? request.user; |
135 | } catch (error) { | 155 | |
136 | response.send('Missing or invalid api token'); | 156 | if (!user) { |
157 | return response.send('Missing or invalid api token'); | ||
137 | } | 158 | } |
138 | 159 | ||
139 | const settings = | 160 | const settings = |
140 | typeof auth.user.settings === 'string' | 161 | typeof user.settings === 'string' |
141 | ? JSON.parse(auth.user.settings) | 162 | ? JSON.parse(user.settings) |
142 | : auth.user.settings; | 163 | : user.settings; |
143 | 164 | ||
144 | return response.send({ | 165 | return response.send({ |
145 | accountType: 'individual', | 166 | accountType: 'individual', |
146 | beta: false, | 167 | beta: false, |
147 | donor: {}, | 168 | donor: {}, |
148 | email: auth.user.email, | 169 | email: user.email, |
149 | emailValidated: true, | 170 | emailValidated: true, |
150 | features: {}, | 171 | features: {}, |
151 | firstname: auth.user.username, | 172 | firstname: user.username, |
152 | id: '82c1cf9d-ab58-4da2-b55e-aaa41d2142d8', | 173 | id: '82c1cf9d-ab58-4da2-b55e-aaa41d2142d8', |
153 | isPremium: true, | 174 | isPremium: true, |
154 | isSubscriptionOwner: true, | 175 | isSubscriptionOwner: true, |
155 | lastname: auth.user.lastname, | 176 | lastname: user.lastname, |
156 | locale: 'en-US', | 177 | locale: 'en-US', |
157 | ...(settings || {}), | 178 | ...settings, |
158 | }); | 179 | }); |
159 | } | 180 | } |
160 | 181 | ||
161 | async updateMe({ request, response, auth }) { | 182 | public async updateMe({ request, response, auth }: HttpContextContract) { |
162 | let settings = auth.user.settings || {}; | 183 | // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. |
184 | const user = auth.user ?? request.user; | ||
185 | |||
186 | if (!user) { | ||
187 | return response.send('Missing or invalid api token'); | ||
188 | } | ||
189 | |||
190 | let settings = user.settings || {}; | ||
163 | if (typeof settings === 'string') { | 191 | if (typeof settings === 'string') { |
164 | settings = JSON.parse(settings); | 192 | settings = JSON.parse(settings); |
165 | } | 193 | } |
@@ -169,83 +197,76 @@ class UserController { | |||
169 | ...request.all(), | 197 | ...request.all(), |
170 | }; | 198 | }; |
171 | 199 | ||
172 | // eslint-disable-next-line no-param-reassign | 200 | user.settings = JSON.stringify(newSettings); |
173 | auth.user.settings = JSON.stringify(newSettings); | 201 | await user.save(); |
174 | await auth.user.save(); | ||
175 | 202 | ||
176 | return response.send({ | 203 | return response.send({ |
177 | data: { | 204 | data: { |
178 | accountType: 'individual', | 205 | accountType: 'individual', |
179 | beta: false, | 206 | beta: false, |
180 | donor: {}, | 207 | donor: {}, |
181 | email: auth.user.email, | 208 | email: user.email, |
182 | emailValidated: true, | 209 | emailValidated: true, |
183 | features: {}, | 210 | features: {}, |
184 | firstname: auth.user.username, | 211 | firstname: user.username, |
185 | id: '82c1cf9d-ab58-4da2-b55e-aaa41d2142d8', | 212 | id: '82c1cf9d-ab58-4da2-b55e-aaa41d2142d8', |
186 | isPremium: true, | 213 | isPremium: true, |
187 | isSubscriptionOwner: true, | 214 | isSubscriptionOwner: true, |
188 | lastname: auth.user.lastname, | 215 | lastname: user.lastname, |
189 | locale: 'en-US', | 216 | locale: 'en-US', |
190 | ...(newSettings || {}), | 217 | ...newSettings, |
191 | }, | 218 | }, |
192 | status: ['data-updated'], | 219 | status: ['data-updated'], |
193 | }); | 220 | }); |
194 | } | 221 | } |
195 | 222 | ||
196 | async import({ request, response, view }) { | 223 | public async newToken({ request, response, auth }: HttpContextContract) { |
197 | if (Env.get('IS_REGISTRATION_ENABLED') == 'false') { | 224 | // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. |
198 | // eslint-disable-line eqeqeq | 225 | const user = auth.user ?? request.user; |
226 | |||
227 | if (!user) { | ||
228 | return response.send('Missing or invalid api token'); | ||
229 | } | ||
230 | |||
231 | const token = await auth.use('jwt').generate(user, { payload: {} }); | ||
232 | |||
233 | return response.send({ | ||
234 | token: token.accessToken, | ||
235 | }); | ||
236 | } | ||
237 | |||
238 | public async import({ request, response, view }: HttpContextContract) { | ||
239 | if (isRegistrationEnabled === 'false') { | ||
199 | return response.status(401).send({ | 240 | return response.status(401).send({ |
200 | message: 'Registration is disabled on this server', | 241 | message: 'Registration is disabled on this server', |
201 | status: 401, | 242 | status: 401, |
202 | }); | 243 | }); |
203 | } | 244 | } |
204 | 245 | ||
246 | if (connectWithFranz === 'false') { | ||
247 | return response.send( | ||
248 | 'We could not import your Franz account data.\n\nIf you are the server owner, please set CONNECT_WITH_FRANZ to true to enable account imports.', | ||
249 | ); | ||
250 | } | ||
251 | |||
205 | // Validate user input | 252 | // Validate user input |
206 | const validation = await validateAll(request.all(), { | 253 | let data; |
207 | email: 'required|email|unique:users,email', | 254 | try { |
208 | password: 'required', | 255 | data = await request.validate({ schema: franzImportSchema }); |
209 | }); | 256 | } catch (error) { |
210 | if (validation.fails()) { | ||
211 | let errorMessage = | ||
212 | 'There was an error while trying to import your account:\n'; | ||
213 | for (const message of validation.messages()) { | ||
214 | if (message.validation === 'required') { | ||
215 | errorMessage += `- Please make sure to supply your ${message.field}\n`; | ||
216 | } else if (message.validation === 'unique') { | ||
217 | errorMessage += '- There is already a user with this email.\n'; | ||
218 | } else { | ||
219 | errorMessage += `${message.message}\n`; | ||
220 | } | ||
221 | } | ||
222 | return view.render('others.message', { | 257 | return view.render('others.message', { |
223 | heading: 'Error while importing', | 258 | heading: 'Error while importing', |
224 | text: errorMessage, | 259 | text: error.messages, |
225 | }); | 260 | }); |
226 | } | 261 | } |
227 | 262 | ||
228 | const { email, password } = request.all(); | 263 | const { email, password } = data; |
229 | 264 | ||
230 | const hashedPassword = crypto | 265 | const hashedPassword = crypto |
231 | .createHash('sha256') | 266 | .createHash('sha256') |
232 | .update(password) | 267 | .update(password) |
233 | .digest('base64'); | 268 | .digest('base64'); |
234 | 269 | ||
235 | if (Env.get('CONNECT_WITH_FRANZ') == 'false') { | ||
236 | // eslint-disable-line eqeqeq | ||
237 | await User.create({ | ||
238 | email, | ||
239 | password: hashedPassword, | ||
240 | username: 'Franz', | ||
241 | lastname: 'Franz', | ||
242 | }); | ||
243 | |||
244 | return response.send( | ||
245 | "Your account has been created but due to this server's configuration, we could not import your Franz account data.\n\nIf you are the server owner, please set CONNECT_WITH_FRANZ to true to enable account imports.", | ||
246 | ); | ||
247 | } | ||
248 | |||
249 | const base = 'https://api.franzinfra.com/v1/'; | 270 | const base = 'https://api.franzinfra.com/v1/'; |
250 | const userAgent = | 271 | const userAgent = |
251 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Franz/5.3.0-beta.1 Chrome/69.0.3497.128 Electron/4.2.4 Safari/537.36'; | 272 | 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Franz/5.3.0-beta.1 Chrome/69.0.3497.128 Electron/4.2.4 Safari/537.36'; |
@@ -278,19 +299,20 @@ class UserController { | |||
278 | } | 299 | } |
279 | 300 | ||
280 | token = content.token; | 301 | token = content.token; |
281 | } catch (e) { | 302 | } catch (error) { |
282 | return response.status(401).send({ | 303 | return response.status(401).send({ |
283 | message: 'Cannot login to Franz', | 304 | message: 'Cannot login to Franz', |
284 | error: e, | 305 | error: error, |
285 | }); | 306 | }); |
286 | } | 307 | } |
287 | 308 | ||
288 | // Get user information | 309 | // Get user information |
289 | let userInf = false; | 310 | // eslint-disable-next-line @typescript-eslint/no-explicit-any |
311 | let userInf: any = false; | ||
290 | try { | 312 | try { |
291 | userInf = await franzRequest('me', 'GET', token); | 313 | userInf = await franzRequest('me', 'GET', token); |
292 | } catch (e) { | 314 | } catch (error) { |
293 | const errorMessage = `Could not get your user info from Franz. Please check your credentials or try again later.\nError: ${e}`; | 315 | const errorMessage = `Could not get your user info from Franz. Please check your credentials or try again later.\nError: ${error}`; |
294 | return response.status(401).send(errorMessage); | 316 | return response.status(401).send(errorMessage); |
295 | } | 317 | } |
296 | if (!userInf) { | 318 | if (!userInf) { |
@@ -308,8 +330,8 @@ class UserController { | |||
308 | username: userInf.firstname, | 330 | username: userInf.firstname, |
309 | lastname: userInf.lastname, | 331 | lastname: userInf.lastname, |
310 | }); | 332 | }); |
311 | } catch (e) { | 333 | } catch (error) { |
312 | const errorMessage = `Could not create your user in our system.\nError: ${e}`; | 334 | const errorMessage = `Could not create your user in our system.\nError: ${error}`; |
313 | return response.status(401).send(errorMessage); | 335 | return response.status(401).send(errorMessage); |
314 | } | 336 | } |
315 | 337 | ||
@@ -319,18 +341,19 @@ class UserController { | |||
319 | try { | 341 | try { |
320 | const services = await franzRequest('me/services', 'GET', token); | 342 | const services = await franzRequest('me/services', 'GET', token); |
321 | 343 | ||
344 | // @ts-expect-error | ||
322 | for (const service of services) { | 345 | for (const service of services) { |
323 | // Get new, unused uuid | 346 | // Get new, unused uuid |
324 | let serviceId; | 347 | let serviceId; |
325 | do { | 348 | do { |
326 | serviceId = uuid(); | 349 | serviceId = uuid(); |
327 | } while ( | 350 | } while ( |
328 | (await Service.query().where('serviceId', serviceId).fetch()).rows | 351 | // eslint-disable-next-line no-await-in-loop, unicorn/no-await-expression-member |
329 | .length > 0 | 352 | (await Service.query().where('serviceId', serviceId)).length > 0 |
330 | ); // eslint-disable-line no-await-in-loop | 353 | ); |
331 | 354 | ||
355 | // eslint-disable-next-line no-await-in-loop | ||
332 | await Service.create({ | 356 | await Service.create({ |
333 | // eslint-disable-line no-await-in-loop | ||
334 | userId: user.id, | 357 | userId: user.id, |
335 | serviceId, | 358 | serviceId, |
336 | name: service.name, | 359 | name: service.name, |
@@ -338,10 +361,11 @@ class UserController { | |||
338 | settings: JSON.stringify(service), | 361 | settings: JSON.stringify(service), |
339 | }); | 362 | }); |
340 | 363 | ||
364 | // @ts-expect-error | ||
341 | serviceIdTranslation[service.id] = serviceId; | 365 | serviceIdTranslation[service.id] = serviceId; |
342 | } | 366 | } |
343 | } catch (e) { | 367 | } catch (error) { |
344 | const errorMessage = `Could not import your services into our system.\nError: ${e}`; | 368 | const errorMessage = `Could not import your services into our system.\nError: ${error}`; |
345 | return response.status(401).send(errorMessage); | 369 | return response.status(401).send(errorMessage); |
346 | } | 370 | } |
347 | 371 | ||
@@ -349,21 +373,23 @@ class UserController { | |||
349 | try { | 373 | try { |
350 | const workspaces = await franzRequest('workspace', 'GET', token); | 374 | const workspaces = await franzRequest('workspace', 'GET', token); |
351 | 375 | ||
376 | // @ts-expect-error | ||
352 | for (const workspace of workspaces) { | 377 | for (const workspace of workspaces) { |
353 | let workspaceId; | 378 | let workspaceId; |
354 | do { | 379 | do { |
355 | workspaceId = uuid(); | 380 | workspaceId = uuid(); |
356 | } while ( | 381 | } while ( |
357 | (await Workspace.query().where('workspaceId', workspaceId).fetch()) | 382 | // eslint-disable-next-line unicorn/no-await-expression-member, no-await-in-loop |
358 | .rows.length > 0 | 383 | (await Workspace.query().where('workspaceId', workspaceId)).length > 0 |
359 | ); // eslint-disable-line no-await-in-loop | 384 | ); |
360 | 385 | ||
361 | const services = workspace.services.map( | 386 | const services = workspace.services.map( |
387 | // @ts-expect-error | ||
362 | service => serviceIdTranslation[service], | 388 | service => serviceIdTranslation[service], |
363 | ); | 389 | ); |
364 | 390 | ||
391 | // eslint-disable-next-line no-await-in-loop | ||
365 | await Workspace.create({ | 392 | await Workspace.create({ |
366 | // eslint-disable-line no-await-in-loop | ||
367 | userId: user.id, | 393 | userId: user.id, |
368 | workspaceId, | 394 | workspaceId, |
369 | name: workspace.name, | 395 | name: workspace.name, |
@@ -372,8 +398,8 @@ class UserController { | |||
372 | data: JSON.stringify({}), | 398 | data: JSON.stringify({}), |
373 | }); | 399 | }); |
374 | } | 400 | } |
375 | } catch (e) { | 401 | } catch (error) { |
376 | const errorMessage = `Could not import your workspaces into our system.\nError: ${e}`; | 402 | const errorMessage = `Could not import your workspaces into our system.\nError: ${error}`; |
377 | return response.status(401).send(errorMessage); | 403 | return response.status(401).send(errorMessage); |
378 | } | 404 | } |
379 | 405 | ||
@@ -382,5 +408,3 @@ class UserController { | |||
382 | ); | 408 | ); |
383 | } | 409 | } |
384 | } | 410 | } |
385 | |||
386 | module.exports = UserController; | ||
diff --git a/app/Controllers/Http/WorkspaceController.js b/app/Controllers/Http/WorkspaceController.js deleted file mode 100644 index a9c2872..0000000 --- a/app/Controllers/Http/WorkspaceController.js +++ /dev/null | |||
@@ -1,172 +0,0 @@ | |||
1 | const Workspace = use('App/Models/Workspace'); | ||
2 | const { validateAll } = use('Validator'); | ||
3 | |||
4 | const { v4: uuid } = require('uuid'); | ||
5 | |||
6 | class WorkspaceController { | ||
7 | // Create a new workspace for user | ||
8 | async create({ request, response, auth }) { | ||
9 | try { | ||
10 | await auth.getUser(); | ||
11 | } catch (error) { | ||
12 | return response.send('Missing or invalid api token'); | ||
13 | } | ||
14 | |||
15 | // Validate user input | ||
16 | const validation = await validateAll(request.all(), { | ||
17 | name: 'required', | ||
18 | }); | ||
19 | if (validation.fails()) { | ||
20 | return response.status(401).send({ | ||
21 | message: 'Invalid POST arguments', | ||
22 | messages: validation.messages(), | ||
23 | status: 401, | ||
24 | }); | ||
25 | } | ||
26 | |||
27 | const data = request.all(); | ||
28 | |||
29 | // Get new, unused uuid | ||
30 | let workspaceId; | ||
31 | do { | ||
32 | workspaceId = uuid(); | ||
33 | } while ( | ||
34 | (await Workspace.query().where('workspaceId', workspaceId).fetch()).rows | ||
35 | .length > 0 | ||
36 | ); // eslint-disable-line no-await-in-loop | ||
37 | |||
38 | const order = (await auth.user.workspaces().fetch()).rows.length; | ||
39 | |||
40 | await Workspace.create({ | ||
41 | userId: auth.user.id, | ||
42 | workspaceId, | ||
43 | name: data.name, | ||
44 | order, | ||
45 | services: JSON.stringify([]), | ||
46 | data: JSON.stringify(data), | ||
47 | }); | ||
48 | |||
49 | return response.send({ | ||
50 | userId: auth.user.id, | ||
51 | name: data.name, | ||
52 | id: workspaceId, | ||
53 | order, | ||
54 | workspaces: [], | ||
55 | }); | ||
56 | } | ||
57 | |||
58 | async edit({ request, response, auth, params }) { | ||
59 | try { | ||
60 | await auth.getUser(); | ||
61 | } catch (error) { | ||
62 | return response.send('Missing or invalid api token'); | ||
63 | } | ||
64 | |||
65 | // Validate user input | ||
66 | const validation = await validateAll(request.all(), { | ||
67 | name: 'required', | ||
68 | }); | ||
69 | if (validation.fails()) { | ||
70 | return response.status(401).send({ | ||
71 | message: 'Invalid POST arguments', | ||
72 | messages: validation.messages(), | ||
73 | status: 401, | ||
74 | }); | ||
75 | } | ||
76 | |||
77 | const data = request.all(); | ||
78 | const { id } = params; | ||
79 | |||
80 | // Update data in database | ||
81 | await Workspace.query() | ||
82 | .where('workspaceId', id) | ||
83 | .where('userId', auth.user.id) | ||
84 | .update({ | ||
85 | name: data.name, | ||
86 | services: JSON.stringify(data.services), | ||
87 | }); | ||
88 | |||
89 | // Get updated row | ||
90 | const workspace = ( | ||
91 | await Workspace.query() | ||
92 | .where('workspaceId', id) | ||
93 | .where('userId', auth.user.id) | ||
94 | .fetch() | ||
95 | ).rows[0]; | ||
96 | |||
97 | return response.send({ | ||
98 | id: workspace.workspaceId, | ||
99 | name: data.name, | ||
100 | order: workspace.order, | ||
101 | services: data.services, | ||
102 | userId: auth.user.id, | ||
103 | }); | ||
104 | } | ||
105 | |||
106 | async delete({ | ||
107 | // eslint-disable-next-line no-unused-vars | ||
108 | _request, | ||
109 | response, | ||
110 | auth, | ||
111 | params, | ||
112 | }) { | ||
113 | try { | ||
114 | await auth.getUser(); | ||
115 | } catch (error) { | ||
116 | return response.send('Missing or invalid api token'); | ||
117 | } | ||
118 | |||
119 | // Validate user input | ||
120 | const validation = await validateAll(params, { | ||
121 | id: 'required', | ||
122 | }); | ||
123 | if (validation.fails()) { | ||
124 | return response.status(401).send({ | ||
125 | message: 'Invalid arguments', | ||
126 | messages: validation.messages(), | ||
127 | status: 401, | ||
128 | }); | ||
129 | } | ||
130 | |||
131 | const { id } = params; | ||
132 | |||
133 | // Update data in database | ||
134 | await Workspace.query() | ||
135 | .where('workspaceId', id) | ||
136 | .where('userId', auth.user.id) | ||
137 | .delete(); | ||
138 | |||
139 | return response.send({ | ||
140 | message: 'Successfully deleted workspace', | ||
141 | }); | ||
142 | } | ||
143 | |||
144 | // List all workspaces a user has created | ||
145 | async list({ response, auth }) { | ||
146 | try { | ||
147 | await auth.getUser(); | ||
148 | } catch (error) { | ||
149 | return response.send('Missing or invalid api token'); | ||
150 | } | ||
151 | |||
152 | const workspaces = (await auth.user.workspaces().fetch()).rows; | ||
153 | // Convert to array with all data Franz wants | ||
154 | let workspacesArray = []; | ||
155 | if (workspaces) { | ||
156 | workspacesArray = workspaces.map(workspace => ({ | ||
157 | id: workspace.workspaceId, | ||
158 | name: workspace.name, | ||
159 | order: workspace.order, | ||
160 | services: | ||
161 | typeof workspace.services === 'string' | ||
162 | ? JSON.parse(workspace.services) | ||
163 | : workspace.services, | ||
164 | userId: auth.user.id, | ||
165 | })); | ||
166 | } | ||
167 | |||
168 | return response.send(workspacesArray); | ||
169 | } | ||
170 | } | ||
171 | |||
172 | module.exports = WorkspaceController; | ||
diff --git a/app/Controllers/Http/WorkspaceController.ts b/app/Controllers/Http/WorkspaceController.ts new file mode 100644 index 0000000..4dff4df --- /dev/null +++ b/app/Controllers/Http/WorkspaceController.ts | |||
@@ -0,0 +1,180 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | import { validator, schema } from '@ioc:Adonis/Core/Validator'; | ||
3 | import Workspace from 'App/Models/Workspace'; | ||
4 | import { v4 as uuid } from 'uuid'; | ||
5 | |||
6 | const createSchema = schema.create({ | ||
7 | name: schema.string(), | ||
8 | }); | ||
9 | |||
10 | const editSchema = schema.create({ | ||
11 | name: schema.string(), | ||
12 | }); | ||
13 | |||
14 | const deleteSchema = schema.create({ | ||
15 | id: schema.string(), | ||
16 | }); | ||
17 | |||
18 | export default class WorkspacesController { | ||
19 | // Create a new workspace for user | ||
20 | public async create({ request, response, auth }: HttpContextContract) { | ||
21 | // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. | ||
22 | const user = auth.user ?? request.user; | ||
23 | |||
24 | if (!user) { | ||
25 | return response.unauthorized('Missing or invalid api token'); | ||
26 | } | ||
27 | |||
28 | // Validate user input | ||
29 | let data; | ||
30 | try { | ||
31 | data = await request.validate({ schema: createSchema }); | ||
32 | } catch (error) { | ||
33 | return response.status(401).send({ | ||
34 | message: 'Invalid POST arguments', | ||
35 | messages: error.messages, | ||
36 | status: 401, | ||
37 | }); | ||
38 | } | ||
39 | |||
40 | // Get new, unused uuid | ||
41 | let workspaceId; | ||
42 | do { | ||
43 | workspaceId = uuid(); | ||
44 | } while ( | ||
45 | // eslint-disable-next-line unicorn/no-await-expression-member, no-await-in-loop | ||
46 | (await Workspace.query().where('workspaceId', workspaceId)).length > 0 | ||
47 | ); | ||
48 | |||
49 | // eslint-disable-next-line unicorn/no-await-expression-member | ||
50 | const order = (await user.related('workspaces').query()).length; | ||
51 | |||
52 | await Workspace.create({ | ||
53 | userId: user.id, | ||
54 | workspaceId, | ||
55 | name: data.name, | ||
56 | order, | ||
57 | services: JSON.stringify([]), | ||
58 | data: JSON.stringify(data), | ||
59 | }); | ||
60 | |||
61 | return response.send({ | ||
62 | userId: user.id, | ||
63 | name: data.name, | ||
64 | id: workspaceId, | ||
65 | order, | ||
66 | workspaces: [], | ||
67 | }); | ||
68 | } | ||
69 | |||
70 | public async edit({ request, response, auth, params }: HttpContextContract) { | ||
71 | // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. | ||
72 | const user = auth.user ?? request.user; | ||
73 | |||
74 | if (!user) { | ||
75 | return response.unauthorized('Missing or invalid api token'); | ||
76 | } | ||
77 | |||
78 | // Validate user input | ||
79 | try { | ||
80 | await request.validate({ schema: editSchema }); | ||
81 | } catch (error) { | ||
82 | return response.status(401).send({ | ||
83 | message: 'Invalid POST arguments', | ||
84 | messages: error.messages, | ||
85 | status: 401, | ||
86 | }); | ||
87 | } | ||
88 | |||
89 | const data = request.all(); | ||
90 | const { id } = params; | ||
91 | |||
92 | // Update data in database | ||
93 | await Workspace.query() | ||
94 | .where('workspaceId', id) | ||
95 | .where('userId', user.id) | ||
96 | .update({ | ||
97 | name: data.name, | ||
98 | services: JSON.stringify(data.services), | ||
99 | }); | ||
100 | |||
101 | // Get updated row | ||
102 | const workspace = await Workspace.query() | ||
103 | .where('workspaceId', id) | ||
104 | .where('userId', user.id) | ||
105 | .firstOrFail(); | ||
106 | |||
107 | return response.send({ | ||
108 | id: workspace.workspaceId, | ||
109 | name: data.name, | ||
110 | order: workspace.order, | ||
111 | services: data.services, | ||
112 | userId: user.id, | ||
113 | }); | ||
114 | } | ||
115 | |||
116 | public async delete({ response, auth, params }: HttpContextContract) { | ||
117 | // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. | ||
118 | const user = auth.user ?? request.user; | ||
119 | |||
120 | if (!user) { | ||
121 | return response.unauthorized('Missing or invalid api token'); | ||
122 | } | ||
123 | |||
124 | // Validate user input | ||
125 | let data; | ||
126 | try { | ||
127 | data = await validator.validate({ | ||
128 | data: params, | ||
129 | schema: deleteSchema, | ||
130 | }); | ||
131 | } catch (error) { | ||
132 | return response.status(401).send({ | ||
133 | message: 'Invalid arguments', | ||
134 | messages: error.messages, | ||
135 | status: 401, | ||
136 | }); | ||
137 | } | ||
138 | |||
139 | const { id } = data; | ||
140 | |||
141 | // Update data in database | ||
142 | await Workspace.query() | ||
143 | .where('workspaceId', id) | ||
144 | .where('userId', user.id) | ||
145 | .delete(); | ||
146 | |||
147 | return response.send({ | ||
148 | message: 'Successfully deleted workspace', | ||
149 | }); | ||
150 | } | ||
151 | |||
152 | // List all workspaces a user has created | ||
153 | public async list({ request, response, auth }: HttpContextContract) { | ||
154 | // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. | ||
155 | const user = auth.user ?? request.user; | ||
156 | |||
157 | if (!user) { | ||
158 | return response.unauthorized('Missing or invalid api token'); | ||
159 | } | ||
160 | |||
161 | const workspaces = await user.related('workspaces').query(); | ||
162 | // Convert to array with all data Franz wants | ||
163 | let workspacesArray: object[] = []; | ||
164 | if (workspaces) { | ||
165 | // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
166 | workspacesArray = workspaces.map((workspace: any) => ({ | ||
167 | id: workspace.workspaceId, | ||
168 | name: workspace.name, | ||
169 | order: workspace.order, | ||
170 | services: | ||
171 | typeof workspace.services === 'string' | ||
172 | ? JSON.parse(workspace.services) | ||
173 | : workspace.services, | ||
174 | userId: user.id, | ||
175 | })); | ||
176 | } | ||
177 | |||
178 | return response.send(workspacesArray); | ||
179 | } | ||
180 | } | ||
diff --git a/app/Exceptions/Handler.js b/app/Exceptions/Handler.js deleted file mode 100644 index 43c3ef1..0000000 --- a/app/Exceptions/Handler.js +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | const BaseExceptionHandler = use('BaseExceptionHandler'); | ||
2 | const Sentry = require('@sentry/node'); | ||
3 | |||
4 | /** | ||
5 | * This class handles all exceptions thrown during | ||
6 | * the HTTP request lifecycle. | ||
7 | * | ||
8 | * @class ExceptionHandler | ||
9 | */ | ||
10 | class ExceptionHandler extends BaseExceptionHandler { | ||
11 | /** | ||
12 | * Handle exception thrown during the HTTP lifecycle | ||
13 | * | ||
14 | * @method handle | ||
15 | * | ||
16 | * @param {Object} error | ||
17 | * @param {Object} options.request | ||
18 | * @param {Object} options.response | ||
19 | * | ||
20 | * @return {void} | ||
21 | */ | ||
22 | async handle(error, { response }) { | ||
23 | if (error.name === 'ValidationException') { | ||
24 | return response.status(400).send('Invalid arguments'); | ||
25 | } if (error.name === 'InvalidSessionException') { | ||
26 | return response.status(401).redirect('/user/login'); | ||
27 | } | ||
28 | |||
29 | return response.status(error.status).send(error.message); | ||
30 | } | ||
31 | |||
32 | /** | ||
33 | * Report exception for logging or debugging. | ||
34 | * | ||
35 | * @method report | ||
36 | * | ||
37 | * @param {Object} error | ||
38 | * @param {Object} options.request | ||
39 | * | ||
40 | * @return {void} | ||
41 | */ | ||
42 | async report(error) { | ||
43 | Sentry.captureException(error); | ||
44 | return true; | ||
45 | } | ||
46 | } | ||
47 | |||
48 | module.exports = ExceptionHandler; | ||
diff --git a/app/Exceptions/Handler.ts b/app/Exceptions/Handler.ts new file mode 100644 index 0000000..35c77d0 --- /dev/null +++ b/app/Exceptions/Handler.ts | |||
@@ -0,0 +1,23 @@ | |||
1 | /* | ||
2 | |-------------------------------------------------------------------------- | ||
3 | | Http Exception Handler | ||
4 | |-------------------------------------------------------------------------- | ||
5 | | | ||
6 | | AdonisJs will forward all exceptions occurred during an HTTP request to | ||
7 | | the following class. You can learn more about exception handling by | ||
8 | | reading docs. | ||
9 | | | ||
10 | | The exception handler extends a base `HttpExceptionHandler` which is not | ||
11 | | mandatory, however it can do lot of heavy lifting to handle the errors | ||
12 | | properly. | ||
13 | | | ||
14 | */ | ||
15 | |||
16 | import Logger from '@ioc:Adonis/Core/Logger'; | ||
17 | import HttpExceptionHandler from '@ioc:Adonis/Core/HttpExceptionHandler'; | ||
18 | |||
19 | export default class ExceptionHandler extends HttpExceptionHandler { | ||
20 | constructor() { | ||
21 | super(Logger); | ||
22 | } | ||
23 | } | ||
diff --git a/app/Middleware/AllowGuestOnly.ts b/app/Middleware/AllowGuestOnly.ts new file mode 100644 index 0000000..ee43571 --- /dev/null +++ b/app/Middleware/AllowGuestOnly.ts | |||
@@ -0,0 +1,56 @@ | |||
1 | import { GuardsList } from '@ioc:Adonis/Addons/Auth'; | ||
2 | import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
3 | import { AuthenticationException } from '@adonisjs/auth/build/standalone'; | ||
4 | |||
5 | /** | ||
6 | * This is actually a reverted a reverted auth middleware available in ./Auth.ts | ||
7 | * provided by the AdonisJS project iself. | ||
8 | */ | ||
9 | export default class GuestMiddleware { | ||
10 | /** | ||
11 | * The URL to redirect to when request is authorized | ||
12 | */ | ||
13 | protected redirectTo = '/dashboard'; | ||
14 | |||
15 | protected async authenticate( | ||
16 | auth: HttpContextContract['auth'], | ||
17 | guards: (keyof GuardsList)[], | ||
18 | ) { | ||
19 | let guardLastAttempted: string | undefined; | ||
20 | |||
21 | for (const guard of guards) { | ||
22 | guardLastAttempted = guard; | ||
23 | |||
24 | // eslint-disable-next-line no-await-in-loop | ||
25 | if (await auth.use(guard).check()) { | ||
26 | auth.defaultGuard = guard; | ||
27 | |||
28 | throw new AuthenticationException( | ||
29 | 'Unauthorized access', | ||
30 | 'E_UNAUTHORIZED_ACCESS', | ||
31 | guardLastAttempted, | ||
32 | this.redirectTo, | ||
33 | ); | ||
34 | } | ||
35 | } | ||
36 | } | ||
37 | |||
38 | /** | ||
39 | * Handle request | ||
40 | */ | ||
41 | public async handle( | ||
42 | { auth }: HttpContextContract, | ||
43 | next: () => Promise<void>, | ||
44 | customGuards: (keyof GuardsList)[], | ||
45 | ) { | ||
46 | /** | ||
47 | * Uses the user defined guards or the default guard mentioned in | ||
48 | * the config file | ||
49 | */ | ||
50 | const guards = customGuards.length > 0 ? customGuards : [auth.name]; | ||
51 | |||
52 | await this.authenticate(auth, guards); | ||
53 | |||
54 | await next(); | ||
55 | } | ||
56 | } | ||
diff --git a/app/Middleware/Auth.ts b/app/Middleware/Auth.ts new file mode 100644 index 0000000..d0b212c --- /dev/null +++ b/app/Middleware/Auth.ts | |||
@@ -0,0 +1,118 @@ | |||
1 | import { GuardsList } from '@ioc:Adonis/Addons/Auth'; | ||
2 | import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
3 | import { AuthenticationException } from '@adonisjs/auth/build/standalone'; | ||
4 | import * as jose from 'jose'; | ||
5 | import { appKey } from 'Config/app'; | ||
6 | import User from 'App/Models/User'; | ||
7 | |||
8 | /** | ||
9 | * Auth middleware is meant to restrict un-authenticated access to a given route | ||
10 | * or a group of routes. | ||
11 | * | ||
12 | * You must register this middleware inside `start/kernel.ts` file under the list | ||
13 | * of named middleware. | ||
14 | */ | ||
15 | export default class AuthMiddleware { | ||
16 | /** | ||
17 | * The URL to redirect to when request is Unauthorized | ||
18 | */ | ||
19 | protected redirectTo = '/user/login'; | ||
20 | |||
21 | /** | ||
22 | * Authenticates the current HTTP request against a custom set of defined | ||
23 | * guards. | ||
24 | * | ||
25 | * The authentication loop stops as soon as the user is authenticated using any | ||
26 | * of the mentioned guards and that guard will be used by the rest of the code | ||
27 | * during the current request. | ||
28 | */ | ||
29 | protected async authenticate( | ||
30 | auth: HttpContextContract['auth'], | ||
31 | guards: (keyof GuardsList)[], | ||
32 | request: HttpContextContract['request'], | ||
33 | ) { | ||
34 | /** | ||
35 | * Hold reference to the guard last attempted within the for loop. We pass | ||
36 | * the reference of the guard to the "AuthenticationException", so that | ||
37 | * it can decide the correct response behavior based upon the guard | ||
38 | * driver | ||
39 | */ | ||
40 | let guardLastAttempted: string | undefined; | ||
41 | |||
42 | for (const guard of guards) { | ||
43 | guardLastAttempted = guard; | ||
44 | |||
45 | let isLoggedIn = false; | ||
46 | try { | ||
47 | // eslint-disable-next-line no-await-in-loop | ||
48 | isLoggedIn = await auth.use(guard).check(); | ||
49 | } catch { | ||
50 | // Silent fail to allow the rest of the code to handle the error | ||
51 | } | ||
52 | |||
53 | if (isLoggedIn) { | ||
54 | /** | ||
55 | * Instruct auth to use the given guard as the default guard for | ||
56 | * the rest of the request, since the user authenticated | ||
57 | * succeeded here | ||
58 | */ | ||
59 | auth.defaultGuard = guard; | ||
60 | return; | ||
61 | } | ||
62 | } | ||
63 | |||
64 | // Manually try authenticating using the JWT (verfiy signature required) | ||
65 | // Legacy support for JWTs so that the client still works (older than 2.0.0) | ||
66 | const authToken = request.headers().authorization?.split(' ')[1]; | ||
67 | if (authToken) { | ||
68 | try { | ||
69 | const jwt = await jose.jwtVerify( | ||
70 | authToken, | ||
71 | new TextEncoder().encode(appKey), | ||
72 | ); | ||
73 | const { uid } = jwt.payload; | ||
74 | |||
75 | // @ts-expect-error | ||
76 | request.user = await User.findOrFail(uid); | ||
77 | return; | ||
78 | } catch { | ||
79 | // Silent fail to allow the rest of the code to handle the error | ||
80 | } | ||
81 | } | ||
82 | |||
83 | /** | ||
84 | * Unable to authenticate using any guard | ||
85 | */ | ||
86 | throw new AuthenticationException( | ||
87 | 'Unauthorized access', | ||
88 | 'E_UNAUTHORIZED_ACCESS', | ||
89 | guardLastAttempted, | ||
90 | this.redirectTo, | ||
91 | ); | ||
92 | } | ||
93 | |||
94 | /** | ||
95 | * Handle request | ||
96 | */ | ||
97 | public async handle( | ||
98 | { request, auth, response }: HttpContextContract, | ||
99 | next: () => Promise<void>, | ||
100 | customGuards: (keyof GuardsList)[], | ||
101 | ) { | ||
102 | /** | ||
103 | * Uses the user defined guards or the default guard mentioned in | ||
104 | * the config file | ||
105 | */ | ||
106 | const guards = customGuards.length > 0 ? customGuards : [auth.name]; | ||
107 | try { | ||
108 | await this.authenticate(auth, guards, request); | ||
109 | } catch (error) { | ||
110 | // If the user is not authenticated and it is a web endpoint, redirect to the login page | ||
111 | if (guards.includes('web')) { | ||
112 | return response.redirect(error.redirectTo); | ||
113 | } | ||
114 | throw error; | ||
115 | } | ||
116 | await next(); | ||
117 | } | ||
118 | } | ||
diff --git a/app/Middleware/ConvertEmptyStringsToNull.js b/app/Middleware/ConvertEmptyStringsToNull.js deleted file mode 100644 index af6379a..0000000 --- a/app/Middleware/ConvertEmptyStringsToNull.js +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | class ConvertEmptyStringsToNull { | ||
2 | async handle({ request }, next) { | ||
3 | if (Object.keys(request.body).length) { | ||
4 | request.body = Object.assign( | ||
5 | ...Object.keys(request.body).map((key) => ({ | ||
6 | [key]: request.body[key] !== '' ? request.body[key] : null, | ||
7 | })), | ||
8 | ); | ||
9 | } | ||
10 | |||
11 | await next(); | ||
12 | } | ||
13 | } | ||
14 | |||
15 | module.exports = ConvertEmptyStringsToNull; | ||
diff --git a/app/Middleware/Dashboard.ts b/app/Middleware/Dashboard.ts new file mode 100644 index 0000000..62deea0 --- /dev/null +++ b/app/Middleware/Dashboard.ts | |||
@@ -0,0 +1,17 @@ | |||
1 | import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | import Config from '@ioc:Adonis/Core/Config'; | ||
3 | |||
4 | export default class Dashboard { | ||
5 | public async handle( | ||
6 | { response }: HttpContextContract, | ||
7 | next: () => Promise<void>, | ||
8 | ) { | ||
9 | if (Config.get('dashboard.enabled') === false) { | ||
10 | response.send( | ||
11 | 'The user dashboard is disabled on this server\n\nIf you are the server owner, please set IS_DASHBOARD_ENABLED to true to enable the dashboard.', | ||
12 | ); | ||
13 | } else { | ||
14 | await next(); | ||
15 | } | ||
16 | } | ||
17 | } | ||
diff --git a/app/Middleware/HandleDoubleSlash.js b/app/Middleware/HandleDoubleSlash.js deleted file mode 100644 index c4bc053..0000000 --- a/app/Middleware/HandleDoubleSlash.js +++ /dev/null | |||
@@ -1,24 +0,0 @@ | |||
1 | /** @typedef {import('@adonisjs/framework/src/Request')} Request */ | ||
2 | /** @typedef {import('@adonisjs/framework/src/Response')} Response */ | ||
3 | /** @typedef {import('@adonisjs/framework/src/View')} View */ | ||
4 | |||
5 | class HandleDoubleSlash { | ||
6 | /** | ||
7 | * @param {object} ctx | ||
8 | * @param {Request} ctx.request | ||
9 | * @param {Function} next | ||
10 | */ | ||
11 | // eslint-disable-next-line consistent-return | ||
12 | async handle({ request, response }, next) { | ||
13 | // Redirect requests that contain duplicate slashes to the right path | ||
14 | if (request.url().includes('//')) { | ||
15 | return response.redirect( | ||
16 | request.url().replace(/\/{2,}/g, '/'), | ||
17 | ); | ||
18 | } | ||
19 | |||
20 | await next(); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | module.exports = HandleDoubleSlash; | ||
diff --git a/app/Middleware/SilentAuth.ts b/app/Middleware/SilentAuth.ts new file mode 100644 index 0000000..ee73ec4 --- /dev/null +++ b/app/Middleware/SilentAuth.ts | |||
@@ -0,0 +1,24 @@ | |||
1 | import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; | ||
2 | |||
3 | /** | ||
4 | * Silent auth middleware can be used as a global middleware to silent check | ||
5 | * if the user is logged-in or not. | ||
6 | * | ||
7 | * The request continues as usual, even when the user is not logged-in. | ||
8 | */ | ||
9 | export default class SilentAuthMiddleware { | ||
10 | /** | ||
11 | * Handle request | ||
12 | */ | ||
13 | public async handle( | ||
14 | { auth }: HttpContextContract, | ||
15 | next: () => Promise<void>, | ||
16 | ) { | ||
17 | /** | ||
18 | * Check if user is logged-in or not. If yes, then `ctx.auth.user` will be | ||
19 | * set to the instance of the currently logged in user. | ||
20 | */ | ||
21 | await auth.check(); | ||
22 | await next(); | ||
23 | } | ||
24 | } | ||
diff --git a/app/Models/Recipe.js b/app/Models/Recipe.js deleted file mode 100644 index bd97411..0000000 --- a/app/Models/Recipe.js +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | /** @type {typeof import('@adonisjs/lucid/src/Lucid/Model')} */ | ||
2 | const Model = use('Model'); | ||
3 | |||
4 | class Recipe extends Model { | ||
5 | } | ||
6 | |||
7 | module.exports = Recipe; | ||
diff --git a/app/Models/Recipe.ts b/app/Models/Recipe.ts new file mode 100644 index 0000000..fce5f3d --- /dev/null +++ b/app/Models/Recipe.ts | |||
@@ -0,0 +1,23 @@ | |||
1 | import { DateTime } from 'luxon'; | ||
2 | import { BaseModel, column } from '@ioc:Adonis/Lucid/Orm'; | ||
3 | |||
4 | export default class Recipe extends BaseModel { | ||
5 | @column({ isPrimary: true }) | ||
6 | public id: number; | ||
7 | |||
8 | @column() | ||
9 | public name: string; | ||
10 | |||
11 | @column() | ||
12 | public recipeId: string; | ||
13 | |||
14 | // TODO: Type the data object. | ||
15 | @column() | ||
16 | public data: object; | ||
17 | |||
18 | @column.dateTime({ autoCreate: true }) | ||
19 | public createdAt: DateTime; | ||
20 | |||
21 | @column.dateTime({ autoCreate: true, autoUpdate: true }) | ||
22 | public updatedAt: DateTime; | ||
23 | } | ||
diff --git a/app/Models/Service.js b/app/Models/Service.js deleted file mode 100644 index cf3e6f4..0000000 --- a/app/Models/Service.js +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | /** @type {typeof import('@adonisjs/lucid/src/Lucid/Model')} */ | ||
2 | const Model = use('Model'); | ||
3 | |||
4 | class Service extends Model { | ||
5 | user() { | ||
6 | return this.belongsTo('App/Models/User', 'userId', 'id'); | ||
7 | } | ||
8 | } | ||
9 | |||
10 | module.exports = Service; | ||
diff --git a/app/Models/Service.ts b/app/Models/Service.ts new file mode 100644 index 0000000..af1a8e1 --- /dev/null +++ b/app/Models/Service.ts | |||
@@ -0,0 +1,40 @@ | |||
1 | import { DateTime } from 'luxon'; | ||
2 | import { BaseModel, column, HasOne, hasOne } from '@ioc:Adonis/Lucid/Orm'; | ||
3 | import User from './User'; | ||
4 | |||
5 | export default class Service extends BaseModel { | ||
6 | @column({ isPrimary: true }) | ||
7 | public id: number; | ||
8 | |||
9 | @hasOne(() => User, { | ||
10 | foreignKey: 'userId', | ||
11 | }) | ||
12 | public user: HasOne<typeof User>; | ||
13 | |||
14 | @column({ | ||
15 | columnName: 'userId', | ||
16 | }) | ||
17 | public userId: number; | ||
18 | |||
19 | @column({ | ||
20 | columnName: 'serviceId', | ||
21 | }) | ||
22 | public serviceId: string; | ||
23 | |||
24 | @column() | ||
25 | public name: string; | ||
26 | |||
27 | @column({ | ||
28 | columnName: 'recipeId', | ||
29 | }) | ||
30 | public recipeId: string; | ||
31 | |||
32 | @column() | ||
33 | public settings: string; | ||
34 | |||
35 | @column.dateTime({ autoCreate: true }) | ||
36 | public createdAt: DateTime; | ||
37 | |||
38 | @column.dateTime({ autoCreate: true, autoUpdate: true }) | ||
39 | public updatedAt: DateTime; | ||
40 | } | ||
diff --git a/app/Models/Token.js b/app/Models/Token.js deleted file mode 100644 index 7965a7a..0000000 --- a/app/Models/Token.js +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | /** @type {typeof import('@adonisjs/lucid/src/Lucid/Model')} */ | ||
2 | const Model = use('Model'); | ||
3 | |||
4 | class Token extends Model { | ||
5 | user() { | ||
6 | return this.belongsTo('App/Models/User'); | ||
7 | } | ||
8 | } | ||
9 | |||
10 | module.exports = Token; | ||
diff --git a/app/Models/Token.ts b/app/Models/Token.ts new file mode 100644 index 0000000..4f85ebc --- /dev/null +++ b/app/Models/Token.ts | |||
@@ -0,0 +1,38 @@ | |||
1 | import { DateTime } from 'luxon'; | ||
2 | import { BaseModel, column, HasOne, hasOne } from '@ioc:Adonis/Lucid/Orm'; | ||
3 | import User from './User'; | ||
4 | |||
5 | export default class Token extends BaseModel { | ||
6 | @column({ isPrimary: true }) | ||
7 | public id: number; | ||
8 | |||
9 | @hasOne(() => User, { | ||
10 | localKey: 'user_id', | ||
11 | foreignKey: 'id', | ||
12 | }) | ||
13 | public user: HasOne<typeof User>; | ||
14 | |||
15 | @column() | ||
16 | public user_id: number; | ||
17 | |||
18 | @column() | ||
19 | public token: string; | ||
20 | |||
21 | @column() | ||
22 | public type: string; | ||
23 | |||
24 | @column() | ||
25 | public is_revoked: boolean; | ||
26 | |||
27 | @column() | ||
28 | public name: string; | ||
29 | |||
30 | @column.dateTime() | ||
31 | public expires_at: DateTime; | ||
32 | |||
33 | @column.dateTime({ autoCreate: true }) | ||
34 | public created_at: DateTime; | ||
35 | |||
36 | @column.dateTime({ autoCreate: true, autoUpdate: true }) | ||
37 | public updated_at: DateTime; | ||
38 | } | ||
diff --git a/app/Models/Traits/NoTimestamp.js b/app/Models/Traits/NoTimestamp.js deleted file mode 100644 index 914f542..0000000 --- a/app/Models/Traits/NoTimestamp.js +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | class NoTimestamp { | ||
2 | register(Model) { | ||
3 | Object.defineProperties(Model, { | ||
4 | createdAtColumn: { | ||
5 | get: () => null, | ||
6 | }, | ||
7 | updatedAtColumn: { | ||
8 | get: () => null, | ||
9 | }, | ||
10 | }); | ||
11 | } | ||
12 | } | ||
13 | |||
14 | module.exports = NoTimestamp; | ||
diff --git a/app/Models/User.js b/app/Models/User.js deleted file mode 100644 index 4472017..0000000 --- a/app/Models/User.js +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | /** @type {typeof import('@adonisjs/lucid/src/Lucid/Model')} */ | ||
2 | const Model = use('Model'); | ||
3 | |||
4 | /** @type {import('@adonisjs/framework/src/Hash')} */ | ||
5 | const Hash = use('Hash'); | ||
6 | |||
7 | class User extends Model { | ||
8 | static boot() { | ||
9 | super.boot(); | ||
10 | |||
11 | /** | ||
12 | * A hook to hash the user password before saving | ||
13 | * it to the database. | ||
14 | */ | ||
15 | this.addHook('beforeSave', async (userInstance) => { | ||
16 | if (userInstance.dirty.password) { | ||
17 | // eslint-disable-next-line no-param-reassign | ||
18 | userInstance.password = await Hash.make(userInstance.password); | ||
19 | } | ||
20 | }); | ||
21 | } | ||
22 | |||
23 | /** | ||
24 | * A relationship on tokens is required for auth to | ||
25 | * work. Since features like `refreshTokens` or | ||
26 | * `rememberToken` will be saved inside the | ||
27 | * tokens table. | ||
28 | * | ||
29 | * @method tokens | ||
30 | * | ||
31 | * @return {Object} | ||
32 | */ | ||
33 | tokens() { | ||
34 | return this.hasMany('App/Models/Token'); | ||
35 | } | ||
36 | |||
37 | services() { | ||
38 | return this.hasMany('App/Models/Service', 'id', 'userId'); | ||
39 | } | ||
40 | |||
41 | workspaces() { | ||
42 | return this.hasMany('App/Models/Workspace', 'id', 'userId'); | ||
43 | } | ||
44 | } | ||
45 | |||
46 | module.exports = User; | ||
diff --git a/app/Models/User.ts b/app/Models/User.ts new file mode 100644 index 0000000..0ed4627 --- /dev/null +++ b/app/Models/User.ts | |||
@@ -0,0 +1,98 @@ | |||
1 | import { DateTime } from 'luxon'; | ||
2 | import { | ||
3 | BaseModel, | ||
4 | beforeSave, | ||
5 | column, | ||
6 | HasMany, | ||
7 | hasMany, | ||
8 | } from '@ioc:Adonis/Lucid/Orm'; | ||
9 | import Hash from '@ioc:Adonis/Core/Hash'; | ||
10 | import Event from '@ioc:Adonis/Core/Event'; | ||
11 | import moment from 'moment'; | ||
12 | import Encryption from '@ioc:Adonis/Core/Encryption'; | ||
13 | import randtoken from 'rand-token'; | ||
14 | import Token from './Token'; | ||
15 | import Workspace from './Workspace'; | ||
16 | import Service from './Service'; | ||
17 | |||
18 | export default class User extends BaseModel { | ||
19 | @column({ isPrimary: true }) | ||
20 | public id: number; | ||
21 | |||
22 | @column() | ||
23 | public email: string; | ||
24 | |||
25 | @column() | ||
26 | public username: string; | ||
27 | |||
28 | @column() | ||
29 | public password: string; | ||
30 | |||
31 | @column() | ||
32 | public lastname: string; | ||
33 | |||
34 | // TODO: Type the settings object. | ||
35 | @column() | ||
36 | public settings: object; | ||
37 | |||
38 | @column.dateTime({ autoCreate: true }) | ||
39 | public created_at: DateTime; | ||
40 | |||
41 | @column.dateTime({ autoCreate: true, autoUpdate: true }) | ||
42 | public updated_at: DateTime; | ||
43 | |||
44 | @beforeSave() | ||
45 | public static async hashPassword(user: User) { | ||
46 | if (user.$dirty.password) { | ||
47 | user.password = await Hash.make(user.password); | ||
48 | } | ||
49 | } | ||
50 | |||
51 | @hasMany(() => Token, { | ||
52 | foreignKey: 'user_id', | ||
53 | }) | ||
54 | public tokens: HasMany<typeof Token>; | ||
55 | |||
56 | @hasMany(() => Service, { | ||
57 | foreignKey: 'userId', | ||
58 | }) | ||
59 | public services: HasMany<typeof Service>; | ||
60 | |||
61 | @hasMany(() => Workspace, { | ||
62 | foreignKey: 'userId', | ||
63 | }) | ||
64 | public workspaces: HasMany<typeof Workspace>; | ||
65 | |||
66 | public async forgotPassword(): Promise<void> { | ||
67 | const token = await this.generateToken(this, 'forgot_password'); | ||
68 | |||
69 | await Event.emit('forgot:password', { | ||
70 | user: this, | ||
71 | token, | ||
72 | }); | ||
73 | } | ||
74 | |||
75 | private async generateToken(user: User, type: string): Promise<string> { | ||
76 | const query = user | ||
77 | .related('tokens') | ||
78 | .query() | ||
79 | .where('type', type) | ||
80 | .where('is_revoked', false) | ||
81 | .where( | ||
82 | 'updated_at', | ||
83 | '>=', | ||
84 | moment().subtract(24, 'hours').format('YYYY-MM-DD HH:mm:ss'), | ||
85 | ); | ||
86 | |||
87 | const row = await query.first(); | ||
88 | if (row) { | ||
89 | return row.token; | ||
90 | } | ||
91 | |||
92 | const token = Encryption.encrypt(randtoken.generate(16)); | ||
93 | |||
94 | await user.related('tokens').create({ type, token }); | ||
95 | |||
96 | return token; | ||
97 | } | ||
98 | } | ||
diff --git a/app/Models/Workspace.js b/app/Models/Workspace.js deleted file mode 100644 index e3a3285..0000000 --- a/app/Models/Workspace.js +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | /** @type {typeof import('@adonisjs/lucid/src/Lucid/Model')} */ | ||
2 | const Model = use('Model'); | ||
3 | |||
4 | class Workspace extends Model { | ||
5 | user() { | ||
6 | return this.belongsTo('App/Models/User', 'userId', 'id'); | ||
7 | } | ||
8 | } | ||
9 | |||
10 | module.exports = Workspace; | ||
diff --git a/app/Models/Workspace.ts b/app/Models/Workspace.ts new file mode 100644 index 0000000..8648e02 --- /dev/null +++ b/app/Models/Workspace.ts | |||
@@ -0,0 +1,41 @@ | |||
1 | import { DateTime } from 'luxon'; | ||
2 | import { BaseModel, column, HasOne, hasOne } from '@ioc:Adonis/Lucid/Orm'; | ||
3 | import User from './User'; | ||
4 | |||
5 | export default class Workspace extends BaseModel { | ||
6 | @column({ isPrimary: true }) | ||
7 | public id: number; | ||
8 | |||
9 | @column({ | ||
10 | columnName: 'workspaceId', | ||
11 | }) | ||
12 | public workspaceId: string; | ||
13 | |||
14 | @hasOne(() => User, { | ||
15 | foreignKey: 'userId', | ||
16 | }) | ||
17 | public user: HasOne<typeof User>; | ||
18 | |||
19 | @column({ | ||
20 | columnName: 'userId', | ||
21 | }) | ||
22 | public userId: number; | ||
23 | |||
24 | @column() | ||
25 | public name: string; | ||
26 | |||
27 | @column() | ||
28 | public order: number; | ||
29 | |||
30 | @column() | ||
31 | public services: string; | ||
32 | |||
33 | @column() | ||
34 | public data: string; | ||
35 | |||
36 | @column.dateTime({ autoCreate: true }) | ||
37 | public createdAt: DateTime; | ||
38 | |||
39 | @column.dateTime({ autoCreate: true, autoUpdate: true }) | ||
40 | public updatedAt: DateTime; | ||
41 | } | ||
diff --git a/commands/index.ts b/commands/index.ts new file mode 100644 index 0000000..d2ad5fb --- /dev/null +++ b/commands/index.ts | |||
@@ -0,0 +1,21 @@ | |||
1 | import { listDirectoryFiles } from '@adonisjs/core/build/standalone'; | ||
2 | import Application from '@ioc:Adonis/Core/Application'; | ||
3 | |||
4 | /* | ||
5 | |-------------------------------------------------------------------------- | ||
6 | | Exporting an array of commands | ||
7 | |-------------------------------------------------------------------------- | ||
8 | | | ||
9 | | Instead of manually exporting each file from this directory, we use the | ||
10 | | helper `listDirectoryFiles` to recursively collect and export an array | ||
11 | | of filenames. | ||
12 | | | ||
13 | | Couple of things to note: | ||
14 | | | ||
15 | | 1. The file path must be relative from the project root and not this directory. | ||
16 | | 2. We must ignore this file to avoid getting into an infinite loop | ||
17 | | | ||
18 | */ | ||
19 | export default listDirectoryFiles(__dirname, Application.appRoot, [ | ||
20 | './commands/index', | ||
21 | ]); | ||
diff --git a/config/app.js b/config/app.js deleted file mode 100644 index 1951e68..0000000 --- a/config/app.js +++ /dev/null | |||
@@ -1,242 +0,0 @@ | |||
1 | |||
2 | /** @type {import('@adonisjs/framework/src/Env')} */ | ||
3 | const Env = use('Env'); | ||
4 | |||
5 | module.exports = { | ||
6 | |||
7 | /* | ||
8 | |-------------------------------------------------------------------------- | ||
9 | | Application Name | ||
10 | |-------------------------------------------------------------------------- | ||
11 | | | ||
12 | | This value is the name of your application and can used when you | ||
13 | | need to place the application's name in a email, view or | ||
14 | | other location. | ||
15 | | | ||
16 | */ | ||
17 | |||
18 | name: Env.get('APP_NAME', 'Ferdium-server'), | ||
19 | |||
20 | /* | ||
21 | |-------------------------------------------------------------------------- | ||
22 | | App Key | ||
23 | |-------------------------------------------------------------------------- | ||
24 | | | ||
25 | | App key is a randomly generated 16 or 32 characters long string required | ||
26 | | to encrypt cookies, sessions and other sensitive data. | ||
27 | | | ||
28 | */ | ||
29 | appKey: Env.getOrFail('APP_KEY'), | ||
30 | |||
31 | http: { | ||
32 | /* | ||
33 | |-------------------------------------------------------------------------- | ||
34 | | Allow Method Spoofing | ||
35 | |-------------------------------------------------------------------------- | ||
36 | | | ||
37 | | Method spoofing allows to make requests by spoofing the http verb. | ||
38 | | Which means you can make a GET request but instruct the server to | ||
39 | | treat as a POST or PUT request. If you want this feature, set the | ||
40 | | below value to true. | ||
41 | | | ||
42 | */ | ||
43 | allowMethodSpoofing: true, | ||
44 | |||
45 | /* | ||
46 | |-------------------------------------------------------------------------- | ||
47 | | Trust Proxy | ||
48 | |-------------------------------------------------------------------------- | ||
49 | | | ||
50 | | Trust proxy defines whether X-Forwarded-* headers should be trusted or not. | ||
51 | | When your application is behind a proxy server like nginx, these values | ||
52 | | are set automatically and should be trusted. Apart from setting it | ||
53 | | to true or false Adonis supports handful or ways to allow proxy | ||
54 | | values. Read documentation for that. | ||
55 | | | ||
56 | */ | ||
57 | trustProxy: false, | ||
58 | |||
59 | /* | ||
60 | |-------------------------------------------------------------------------- | ||
61 | | Subdomains | ||
62 | |-------------------------------------------------------------------------- | ||
63 | | | ||
64 | | Offset to be used for returning subdomains for a given request.For | ||
65 | | majority of applications it will be 2, until you have nested | ||
66 | | sudomains. | ||
67 | | cheatsheet.adonisjs.com - offset - 2 | ||
68 | | virk.cheatsheet.adonisjs.com - offset - 3 | ||
69 | | | ||
70 | */ | ||
71 | subdomainOffset: 2, | ||
72 | |||
73 | /* | ||
74 | |-------------------------------------------------------------------------- | ||
75 | | JSONP Callback | ||
76 | |-------------------------------------------------------------------------- | ||
77 | | | ||
78 | | Default jsonp callback to be used when callback query string is missing | ||
79 | | in request url. | ||
80 | | | ||
81 | */ | ||
82 | jsonpCallback: 'callback', | ||
83 | |||
84 | |||
85 | /* | ||
86 | |-------------------------------------------------------------------------- | ||
87 | | Etag | ||
88 | |-------------------------------------------------------------------------- | ||
89 | | | ||
90 | | Set etag on all HTTP response. In order to disable for selected routes, | ||
91 | | you can call the `response.send` with an options object as follows. | ||
92 | | | ||
93 | | response.send('Hello', { ignoreEtag: true }) | ||
94 | | | ||
95 | */ | ||
96 | etag: false, | ||
97 | }, | ||
98 | |||
99 | views: { | ||
100 | /* | ||
101 | |-------------------------------------------------------------------------- | ||
102 | | Cache Views | ||
103 | |-------------------------------------------------------------------------- | ||
104 | | | ||
105 | | Define whether or not to cache the compiled view. Set it to true in | ||
106 | | production to optimize view loading time. | ||
107 | | | ||
108 | */ | ||
109 | cache: Env.get('CACHE_VIEWS', true), | ||
110 | }, | ||
111 | |||
112 | static: { | ||
113 | /* | ||
114 | |-------------------------------------------------------------------------- | ||
115 | | Dot Files | ||
116 | |-------------------------------------------------------------------------- | ||
117 | | | ||
118 | | Define how to treat dot files when trying to server static resources. | ||
119 | | By default it is set to ignore, which will pretend that dotfiles | ||
120 | | does not exists. | ||
121 | | | ||
122 | | Can be one of the following | ||
123 | | ignore, deny, allow | ||
124 | | | ||
125 | */ | ||
126 | dotfiles: 'ignore', | ||
127 | |||
128 | /* | ||
129 | |-------------------------------------------------------------------------- | ||
130 | | ETag | ||
131 | |-------------------------------------------------------------------------- | ||
132 | | | ||
133 | | Enable or disable etag generation | ||
134 | | | ||
135 | */ | ||
136 | etag: true, | ||
137 | |||
138 | /* | ||
139 | |-------------------------------------------------------------------------- | ||
140 | | Extensions | ||
141 | |-------------------------------------------------------------------------- | ||
142 | | | ||
143 | | Set file extension fallbacks. When set, if a file is not found, the given | ||
144 | | extensions will be added to the file name and search for. The first | ||
145 | | that exists will be served. Example: ['html', 'htm']. | ||
146 | | | ||
147 | */ | ||
148 | extensions: false, | ||
149 | }, | ||
150 | |||
151 | locales: { | ||
152 | /* | ||
153 | |-------------------------------------------------------------------------- | ||
154 | | Loader | ||
155 | |-------------------------------------------------------------------------- | ||
156 | | | ||
157 | | The loader to be used for fetching and updating locales. Below is the | ||
158 | | list of available options. | ||
159 | | | ||
160 | | file, database | ||
161 | | | ||
162 | */ | ||
163 | loader: 'file', | ||
164 | |||
165 | /* | ||
166 | |-------------------------------------------------------------------------- | ||
167 | | Default Locale | ||
168 | |-------------------------------------------------------------------------- | ||
169 | | | ||
170 | | Default locale to be used by Antl provider. You can always switch drivers | ||
171 | | in runtime or use the official Antl middleware to detect the driver | ||
172 | | based on HTTP headers/query string. | ||
173 | | | ||
174 | */ | ||
175 | locale: 'en', | ||
176 | }, | ||
177 | |||
178 | logger: { | ||
179 | /* | ||
180 | |-------------------------------------------------------------------------- | ||
181 | | Transport | ||
182 | |-------------------------------------------------------------------------- | ||
183 | | | ||
184 | | Transport to be used for logging messages. You can have multiple | ||
185 | | transports using same driver. | ||
186 | | | ||
187 | | Available drivers are: `file` and `console`. | ||
188 | | | ||
189 | */ | ||
190 | transport: 'console', | ||
191 | |||
192 | /* | ||
193 | |-------------------------------------------------------------------------- | ||
194 | | Console Transport | ||
195 | |-------------------------------------------------------------------------- | ||
196 | | | ||
197 | | Using `console` driver for logging. This driver writes to `stdout` | ||
198 | | and `stderr` | ||
199 | | | ||
200 | */ | ||
201 | console: { | ||
202 | driver: 'console', | ||
203 | name: 'adonis-app', | ||
204 | level: 'info', | ||
205 | }, | ||
206 | |||
207 | /* | ||
208 | |-------------------------------------------------------------------------- | ||
209 | | File Transport | ||
210 | |-------------------------------------------------------------------------- | ||
211 | | | ||
212 | | File transport uses file driver and writes log messages for a given | ||
213 | | file inside `tmp` directory for your app. | ||
214 | | | ||
215 | | For a different directory, set an absolute path for the filename. | ||
216 | | | ||
217 | */ | ||
218 | file: { | ||
219 | driver: 'file', | ||
220 | name: 'adonis-app', | ||
221 | filename: 'adonis.log', | ||
222 | level: 'info', | ||
223 | }, | ||
224 | }, | ||
225 | |||
226 | /* | ||
227 | |-------------------------------------------------------------------------- | ||
228 | | Generic Cookie Options | ||
229 | |-------------------------------------------------------------------------- | ||
230 | | | ||
231 | | The following cookie options are generic settings used by AdonisJs to create | ||
232 | | cookies. However, some parts of the application like `sessions` can have | ||
233 | | separate settings for cookies inside `config/session.js`. | ||
234 | | | ||
235 | */ | ||
236 | cookie: { | ||
237 | httpOnly: true, | ||
238 | sameSite: true, | ||
239 | path: '/', | ||
240 | maxAge: 7200, | ||
241 | }, | ||
242 | }; | ||
diff --git a/config/app.ts b/config/app.ts new file mode 100644 index 0000000..fb3c0be --- /dev/null +++ b/config/app.ts | |||
@@ -0,0 +1,244 @@ | |||
1 | /** | ||
2 | * Config source: https://git.io/JfefZ | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this config | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import proxyAddr from 'proxy-addr'; | ||
9 | import Env from '@ioc:Adonis/Core/Env'; | ||
10 | import { ServerConfig } from '@ioc:Adonis/Core/Server'; | ||
11 | import { LoggerConfig } from '@ioc:Adonis/Core/Logger'; | ||
12 | import { ProfilerConfig } from '@ioc:Adonis/Core/Profiler'; | ||
13 | import { ValidatorConfig } from '@ioc:Adonis/Core/Validator'; | ||
14 | |||
15 | /* | ||
16 | |-------------------------------------------------------------------------- | ||
17 | | Application secret key | ||
18 | |-------------------------------------------------------------------------- | ||
19 | | | ||
20 | | The secret to encrypt and sign different values in your application. | ||
21 | | Make sure to keep the `APP_KEY` as an environment variable and secure. | ||
22 | | | ||
23 | | Note: Changing the application key for an existing app will make all | ||
24 | | the cookies invalid and also the existing encrypted data will not | ||
25 | | be decrypted. | ||
26 | | | ||
27 | */ | ||
28 | export const appKey: string = Env.get('APP_KEY'); | ||
29 | |||
30 | export const url: string = Env.get('APP_URL'); | ||
31 | |||
32 | // TODO: this is parsed as string to be coherent with the previous version of the code we add (before migrating to AdonisJS 5) | ||
33 | export const isRegistrationEnabled: string = Env.get('IS_REGISTRATION_ENABLED'); | ||
34 | export const connectWithFranz: string = Env.get('CONNECT_WITH_FRANZ'); | ||
35 | export const isCreationEnabled: string = Env.get('IS_CREATION_ENABLED'); | ||
36 | export const jwtUsePEM: boolean = | ||
37 | Env.get('JWT_USE_PEM', false) || | ||
38 | (Env.get('JWT_PUBLIC_KEY', '') !== '' && | ||
39 | Env.get('JWT_PRIVATE_KEY', '') !== ''); | ||
40 | /* | ||
41 | |-------------------------------------------------------------------------- | ||
42 | | Http server configuration | ||
43 | |-------------------------------------------------------------------------- | ||
44 | | | ||
45 | | The configuration for the HTTP(s) server. Make sure to go through all | ||
46 | | the config properties to make keep server secure. | ||
47 | | | ||
48 | */ | ||
49 | export const http: ServerConfig = { | ||
50 | /* | ||
51 | |-------------------------------------------------------------------------- | ||
52 | | Allow method spoofing | ||
53 | |-------------------------------------------------------------------------- | ||
54 | | | ||
55 | | Method spoofing enables defining custom HTTP methods using a query string | ||
56 | | `_method`. This is usually required when you are making traditional | ||
57 | | form requests and wants to use HTTP verbs like `PUT`, `DELETE` and | ||
58 | | so on. | ||
59 | | | ||
60 | */ | ||
61 | allowMethodSpoofing: false, | ||
62 | |||
63 | /* | ||
64 | |-------------------------------------------------------------------------- | ||
65 | | Subdomain offset | ||
66 | |-------------------------------------------------------------------------- | ||
67 | */ | ||
68 | subdomainOffset: 2, | ||
69 | |||
70 | /* | ||
71 | |-------------------------------------------------------------------------- | ||
72 | | Request Ids | ||
73 | |-------------------------------------------------------------------------- | ||
74 | | | ||
75 | | Setting this value to `true` will generate a unique request id for each | ||
76 | | HTTP request and set it as `x-request-id` header. | ||
77 | | | ||
78 | */ | ||
79 | generateRequestId: false, | ||
80 | |||
81 | /* | ||
82 | |-------------------------------------------------------------------------- | ||
83 | | Trusting proxy servers | ||
84 | |-------------------------------------------------------------------------- | ||
85 | | | ||
86 | | Define the proxy servers that AdonisJs must trust for reading `X-Forwarded` | ||
87 | | headers. | ||
88 | | | ||
89 | */ | ||
90 | trustProxy: proxyAddr.compile('loopback'), | ||
91 | |||
92 | /* | ||
93 | |-------------------------------------------------------------------------- | ||
94 | | Generating Etag | ||
95 | |-------------------------------------------------------------------------- | ||
96 | | | ||
97 | | Whether or not to generate an etag for every response. | ||
98 | | | ||
99 | */ | ||
100 | etag: false, | ||
101 | |||
102 | /* | ||
103 | |-------------------------------------------------------------------------- | ||
104 | | JSONP Callback | ||
105 | |-------------------------------------------------------------------------- | ||
106 | */ | ||
107 | jsonpCallbackName: 'callback', | ||
108 | |||
109 | /* | ||
110 | |-------------------------------------------------------------------------- | ||
111 | | Cookie settings | ||
112 | |-------------------------------------------------------------------------- | ||
113 | */ | ||
114 | cookie: { | ||
115 | domain: '', | ||
116 | path: '/', | ||
117 | maxAge: '2h', | ||
118 | httpOnly: true, | ||
119 | secure: false, | ||
120 | sameSite: false, | ||
121 | }, | ||
122 | |||
123 | /* | ||
124 | |-------------------------------------------------------------------------- | ||
125 | | Force Content Negotiation | ||
126 | |-------------------------------------------------------------------------- | ||
127 | | | ||
128 | | The internals of the framework relies on the content negotiation to | ||
129 | | detect the best possible response type for a given HTTP request. | ||
130 | | | ||
131 | | However, it is a very common these days that API servers always wants to | ||
132 | | make response in JSON regardless of the existence of the `Accept` header. | ||
133 | | | ||
134 | | By setting `forceContentNegotiationTo = 'application/json'`, you negotiate | ||
135 | | with the server in advance to always return JSON without relying on the | ||
136 | | client to set the header explicitly. | ||
137 | | | ||
138 | */ | ||
139 | forceContentNegotiationTo: 'application/json', | ||
140 | }; | ||
141 | |||
142 | /* | ||
143 | |-------------------------------------------------------------------------- | ||
144 | | Logger | ||
145 | |-------------------------------------------------------------------------- | ||
146 | */ | ||
147 | export const logger: LoggerConfig = { | ||
148 | /* | ||
149 | |-------------------------------------------------------------------------- | ||
150 | | Application name | ||
151 | |-------------------------------------------------------------------------- | ||
152 | | | ||
153 | | The name of the application you want to add to the log. It is recommended | ||
154 | | to always have app name in every log line. | ||
155 | | | ||
156 | | The `APP_NAME` environment variable is automatically set by AdonisJS by | ||
157 | | reading the `name` property from the `package.json` file. | ||
158 | | | ||
159 | */ | ||
160 | name: Env.get('APP_NAME', 'Ferdium-server'), | ||
161 | |||
162 | /* | ||
163 | |-------------------------------------------------------------------------- | ||
164 | | Toggle logger | ||
165 | |-------------------------------------------------------------------------- | ||
166 | | | ||
167 | | Enable or disable logger application wide | ||
168 | | | ||
169 | */ | ||
170 | enabled: true, | ||
171 | |||
172 | /* | ||
173 | |-------------------------------------------------------------------------- | ||
174 | | Logging level | ||
175 | |-------------------------------------------------------------------------- | ||
176 | | | ||
177 | | The level from which you want the logger to flush logs. It is recommended | ||
178 | | to make use of the environment variable, so that you can define log levels | ||
179 | | at deployment level and not code level. | ||
180 | | | ||
181 | */ | ||
182 | level: Env.get('LOG_LEVEL', 'info'), | ||
183 | |||
184 | /* | ||
185 | |-------------------------------------------------------------------------- | ||
186 | | Pretty print | ||
187 | |-------------------------------------------------------------------------- | ||
188 | | | ||
189 | | It is highly advised NOT to use `prettyPrint` in production, since it | ||
190 | | can have huge impact on performance. | ||
191 | | | ||
192 | */ | ||
193 | prettyPrint: Env.get('NODE_ENV') === 'development', | ||
194 | }; | ||
195 | |||
196 | /* | ||
197 | |-------------------------------------------------------------------------- | ||
198 | | Profiler | ||
199 | |-------------------------------------------------------------------------- | ||
200 | */ | ||
201 | export const profiler: ProfilerConfig = { | ||
202 | /* | ||
203 | |-------------------------------------------------------------------------- | ||
204 | | Toggle profiler | ||
205 | |-------------------------------------------------------------------------- | ||
206 | | | ||
207 | | Enable or disable profiler | ||
208 | | | ||
209 | */ | ||
210 | enabled: true, | ||
211 | |||
212 | /* | ||
213 | |-------------------------------------------------------------------------- | ||
214 | | Blacklist actions/row labels | ||
215 | |-------------------------------------------------------------------------- | ||
216 | | | ||
217 | | Define an array of actions or row labels that you want to disable from | ||
218 | | getting profiled. | ||
219 | | | ||
220 | */ | ||
221 | blacklist: [], | ||
222 | |||
223 | /* | ||
224 | |-------------------------------------------------------------------------- | ||
225 | | Whitelist actions/row labels | ||
226 | |-------------------------------------------------------------------------- | ||
227 | | | ||
228 | | Define an array of actions or row labels that you want to whitelist for | ||
229 | | the profiler. When whitelist is defined, then `blacklist` is ignored. | ||
230 | | | ||
231 | */ | ||
232 | whitelist: [], | ||
233 | }; | ||
234 | |||
235 | /* | ||
236 | |-------------------------------------------------------------------------- | ||
237 | | Validator | ||
238 | |-------------------------------------------------------------------------- | ||
239 | | | ||
240 | | Configure the global configuration for the validator. Here's the reference | ||
241 | | to the default config https://git.io/JT0WE | ||
242 | | | ||
243 | */ | ||
244 | export const validator: ValidatorConfig = {}; | ||
diff --git a/config/auth.js b/config/auth.js deleted file mode 100644 index b831b06..0000000 --- a/config/auth.js +++ /dev/null | |||
@@ -1,93 +0,0 @@ | |||
1 | |||
2 | /** @type {import('@adonisjs/framework/src/Env')} */ | ||
3 | const Env = use('Env'); | ||
4 | |||
5 | module.exports = { | ||
6 | /* | ||
7 | |-------------------------------------------------------------------------- | ||
8 | | Authenticator | ||
9 | |-------------------------------------------------------------------------- | ||
10 | | | ||
11 | | Authentication is a combination of serializer and scheme with extra | ||
12 | | config to define on how to authenticate a user. | ||
13 | | | ||
14 | | Available Schemes - basic, session, jwt, api | ||
15 | | Available Serializers - lucid, database | ||
16 | | | ||
17 | */ | ||
18 | authenticator: 'jwt', | ||
19 | |||
20 | /* | ||
21 | |-------------------------------------------------------------------------- | ||
22 | | Session | ||
23 | |-------------------------------------------------------------------------- | ||
24 | | | ||
25 | | Session authenticator makes use of sessions to authenticate a user. | ||
26 | | Session authentication is always persistent. | ||
27 | | | ||
28 | */ | ||
29 | session: { | ||
30 | serializer: 'lucid', | ||
31 | model: 'App/Models/User', | ||
32 | scheme: 'session', | ||
33 | uid: 'email', | ||
34 | password: 'password', | ||
35 | }, | ||
36 | |||
37 | /* | ||
38 | |-------------------------------------------------------------------------- | ||
39 | | Basic Auth | ||
40 | |-------------------------------------------------------------------------- | ||
41 | | | ||
42 | | The basic auth authenticator uses basic auth header to authenticate a | ||
43 | | user. | ||
44 | | | ||
45 | | NOTE: | ||
46 | | This scheme is not persistent and users are supposed to pass | ||
47 | | login credentials on each request. | ||
48 | | | ||
49 | */ | ||
50 | basic: { | ||
51 | serializer: 'lucid', | ||
52 | model: 'App/Models/User', | ||
53 | scheme: 'basic', | ||
54 | uid: 'email', | ||
55 | password: 'password', | ||
56 | }, | ||
57 | |||
58 | /* | ||
59 | |-------------------------------------------------------------------------- | ||
60 | | Jwt | ||
61 | |-------------------------------------------------------------------------- | ||
62 | | | ||
63 | | The jwt authenticator works by passing a jwt token on each HTTP request | ||
64 | | via HTTP `Authorization` header. | ||
65 | | | ||
66 | */ | ||
67 | jwt: { | ||
68 | serializer: 'lucid', | ||
69 | model: 'App/Models/User', | ||
70 | scheme: 'jwt', | ||
71 | uid: 'email', | ||
72 | password: 'password', | ||
73 | options: { | ||
74 | secret: Env.get('APP_KEY'), | ||
75 | }, | ||
76 | }, | ||
77 | |||
78 | /* | ||
79 | |-------------------------------------------------------------------------- | ||
80 | | Api | ||
81 | |-------------------------------------------------------------------------- | ||
82 | | | ||
83 | | The Api scheme makes use of API personal tokens to authenticate a user. | ||
84 | | | ||
85 | */ | ||
86 | api: { | ||
87 | serializer: 'lucid', | ||
88 | model: 'App/Models/User', | ||
89 | scheme: 'api', | ||
90 | uid: 'email', | ||
91 | password: 'password', | ||
92 | }, | ||
93 | }; | ||
diff --git a/config/auth.ts b/config/auth.ts new file mode 100644 index 0000000..28a9b8c --- /dev/null +++ b/config/auth.ts | |||
@@ -0,0 +1,263 @@ | |||
1 | /** | ||
2 | * Config source: https://git.io/JY0mp | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this config | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import { AuthConfig } from '@ioc:Adonis/Addons/Auth'; | ||
9 | import Env from '@ioc:Adonis/Core/Env'; | ||
10 | import { appKey, jwtUsePEM } from './app'; | ||
11 | |||
12 | /* | ||
13 | |-------------------------------------------------------------------------- | ||
14 | | Authentication Mapping | ||
15 | |-------------------------------------------------------------------------- | ||
16 | | | ||
17 | | List of available authentication mapping. You must first define them | ||
18 | | inside the `contracts/auth.ts` file before mentioning them here. | ||
19 | | | ||
20 | */ | ||
21 | const authConfig: AuthConfig = { | ||
22 | guard: 'web', | ||
23 | guards: { | ||
24 | /* | ||
25 | |-------------------------------------------------------------------------- | ||
26 | | Web Guard | ||
27 | |-------------------------------------------------------------------------- | ||
28 | | | ||
29 | | Web guard uses classic old school sessions for authenticating users. | ||
30 | | If you are building a standard web application, it is recommended to | ||
31 | | use web guard with session driver | ||
32 | | | ||
33 | */ | ||
34 | web: { | ||
35 | driver: 'session', | ||
36 | |||
37 | provider: { | ||
38 | /* | ||
39 | |-------------------------------------------------------------------------- | ||
40 | | Driver | ||
41 | |-------------------------------------------------------------------------- | ||
42 | | | ||
43 | | Name of the driver | ||
44 | | | ||
45 | */ | ||
46 | driver: 'lucid', | ||
47 | |||
48 | /* | ||
49 | |-------------------------------------------------------------------------- | ||
50 | | Identifier key | ||
51 | |-------------------------------------------------------------------------- | ||
52 | | | ||
53 | | The identifier key is the unique key on the model. In most cases specifying | ||
54 | | the primary key is the right choice. | ||
55 | | | ||
56 | */ | ||
57 | identifierKey: 'id', | ||
58 | |||
59 | /* | ||
60 | |-------------------------------------------------------------------------- | ||
61 | | Uids | ||
62 | |-------------------------------------------------------------------------- | ||
63 | | | ||
64 | | Uids are used to search a user against one of the mentioned columns. During | ||
65 | | login, the auth module will search the user mentioned value against one | ||
66 | | of the mentioned columns to find their user record. | ||
67 | | | ||
68 | */ | ||
69 | uids: ['email'], | ||
70 | |||
71 | /* | ||
72 | |-------------------------------------------------------------------------- | ||
73 | | Model | ||
74 | |-------------------------------------------------------------------------- | ||
75 | | | ||
76 | | The model to use for fetching or finding users. The model is imported | ||
77 | | lazily since the config files are read way earlier in the lifecycle | ||
78 | | of booting the app and the models may not be in a usable state at | ||
79 | | that time. | ||
80 | | | ||
81 | */ | ||
82 | model: () => import('App/Models/User'), | ||
83 | }, | ||
84 | }, | ||
85 | /* | ||
86 | |-------------------------------------------------------------------------- | ||
87 | | OAT Guard | ||
88 | |-------------------------------------------------------------------------- | ||
89 | | | ||
90 | | OAT (Opaque access tokens) guard uses database backed tokens to authenticate | ||
91 | | HTTP request. This guard DOES NOT rely on sessions or cookies and uses | ||
92 | | Authorization header value for authentication. | ||
93 | | | ||
94 | | Use this guard to authenticate mobile apps or web clients that cannot rely | ||
95 | | on cookies/sessions. | ||
96 | | | ||
97 | */ | ||
98 | api: { | ||
99 | driver: 'oat', | ||
100 | |||
101 | /* | ||
102 | |-------------------------------------------------------------------------- | ||
103 | | Tokens provider | ||
104 | |-------------------------------------------------------------------------- | ||
105 | | | ||
106 | | Uses SQL database for managing tokens. Use the "database" driver, when | ||
107 | | tokens are the secondary mode of authentication. | ||
108 | | For example: The Github personal tokens | ||
109 | | | ||
110 | | The foreignKey column is used to make the relationship between the user | ||
111 | | and the token. You are free to use any column name here. | ||
112 | | | ||
113 | */ | ||
114 | tokenProvider: { | ||
115 | type: 'api', | ||
116 | driver: 'database', | ||
117 | table: 'tokens', | ||
118 | foreignKey: 'user_id', | ||
119 | }, | ||
120 | |||
121 | provider: { | ||
122 | /* | ||
123 | |-------------------------------------------------------------------------- | ||
124 | | Driver | ||
125 | |-------------------------------------------------------------------------- | ||
126 | | | ||
127 | | Name of the driver | ||
128 | | | ||
129 | */ | ||
130 | driver: 'lucid', | ||
131 | |||
132 | /* | ||
133 | |-------------------------------------------------------------------------- | ||
134 | | Identifier key | ||
135 | |-------------------------------------------------------------------------- | ||
136 | | | ||
137 | | The identifier key is the unique key on the model. In most cases specifying | ||
138 | | the primary key is the right choice. | ||
139 | | | ||
140 | */ | ||
141 | identifierKey: 'id', | ||
142 | |||
143 | /* | ||
144 | |-------------------------------------------------------------------------- | ||
145 | | Uids | ||
146 | |-------------------------------------------------------------------------- | ||
147 | | | ||
148 | | Uids are used to search a user against one of the mentioned columns. During | ||
149 | | login, the auth module will search the user mentioned value against one | ||
150 | | of the mentioned columns to find their user record. | ||
151 | | | ||
152 | */ | ||
153 | uids: ['email'], | ||
154 | |||
155 | /* | ||
156 | |-------------------------------------------------------------------------- | ||
157 | | Model | ||
158 | |-------------------------------------------------------------------------- | ||
159 | | | ||
160 | | The model to use for fetching or finding users. The model is imported | ||
161 | | lazily since the config files are read way earlier in the lifecycle | ||
162 | | of booting the app and the models may not be in a usable state at | ||
163 | | that time. | ||
164 | | | ||
165 | */ | ||
166 | model: () => import('App/Models/User'), | ||
167 | }, | ||
168 | }, | ||
169 | /* | ||
170 | |-------------------------------------------------------------------------- | ||
171 | | Basic Auth Guard | ||
172 | |-------------------------------------------------------------------------- | ||
173 | | | ||
174 | | Uses Basic auth to authenticate an HTTP request. There is no concept of | ||
175 | | "login" and "logout" with basic auth. You just authenticate the requests | ||
176 | | using a middleware and browser will prompt the user to enter their login | ||
177 | | details | ||
178 | | | ||
179 | */ | ||
180 | basic: { | ||
181 | driver: 'basic', | ||
182 | realm: 'Login', | ||
183 | |||
184 | provider: { | ||
185 | /* | ||
186 | |-------------------------------------------------------------------------- | ||
187 | | Driver | ||
188 | |-------------------------------------------------------------------------- | ||
189 | | | ||
190 | | Name of the driver | ||
191 | | | ||
192 | */ | ||
193 | driver: 'lucid', | ||
194 | |||
195 | /* | ||
196 | |-------------------------------------------------------------------------- | ||
197 | | Identifier key | ||
198 | |-------------------------------------------------------------------------- | ||
199 | | | ||
200 | | The identifier key is the unique key on the model. In most cases specifying | ||
201 | | the primary key is the right choice. | ||
202 | | | ||
203 | */ | ||
204 | identifierKey: 'id', | ||
205 | |||
206 | /* | ||
207 | |-------------------------------------------------------------------------- | ||
208 | | Uids | ||
209 | |-------------------------------------------------------------------------- | ||
210 | | | ||
211 | | Uids are used to search a user against one of the mentioned columns. During | ||
212 | | login, the auth module will search the user mentioned value against one | ||
213 | | of the mentioned columns to find their user record. | ||
214 | | | ||
215 | */ | ||
216 | uids: ['email'], | ||
217 | |||
218 | /* | ||
219 | |-------------------------------------------------------------------------- | ||
220 | | Model | ||
221 | |-------------------------------------------------------------------------- | ||
222 | | | ||
223 | | The model to use for fetching or finding users. The model is imported | ||
224 | | lazily since the config files are read way earlier in the lifecycle | ||
225 | | of booting the app and the models may not be in a usable state at | ||
226 | | that time. | ||
227 | | | ||
228 | */ | ||
229 | model: () => import('App/Models/User'), | ||
230 | }, | ||
231 | }, | ||
232 | jwt: { | ||
233 | driver: 'jwt', | ||
234 | secret: jwtUsePEM ? undefined : appKey, | ||
235 | algorithmJwt: jwtUsePEM ? undefined : 'HS256', | ||
236 | publicKey: jwtUsePEM | ||
237 | ? Env.get('JWT_PUBLIC_KEY', '').replaceAll('\\n', '\n') | ||
238 | : undefined, | ||
239 | privateKey: jwtUsePEM | ||
240 | ? Env.get('JWT_PRIVATE_KEY', '').replaceAll('\\n', '\n') | ||
241 | : undefined, | ||
242 | persistJwt: true, | ||
243 | // TODO: We should improve the following implementation as this is a security concern. | ||
244 | // The following ts-expect-error is to set exp to undefined (JWT with no expiration) | ||
245 | // @ts-expect-error | ||
246 | jwtDefaultExpire: undefined, | ||
247 | refreshTokenDefaultExpire: '10d', | ||
248 | tokenProvider: { | ||
249 | driver: 'database', | ||
250 | table: 'jwt_tokens', | ||
251 | foreignKey: 'user_id', | ||
252 | }, | ||
253 | provider: { | ||
254 | driver: 'lucid', | ||
255 | identifierKey: 'id', | ||
256 | uids: [], | ||
257 | model: () => import('App/Models/User'), | ||
258 | }, | ||
259 | }, | ||
260 | }, | ||
261 | }; | ||
262 | |||
263 | export default authConfig; | ||
diff --git a/config/bodyParser.js b/config/bodyParser.js deleted file mode 100644 index c336e67..0000000 --- a/config/bodyParser.js +++ /dev/null | |||
@@ -1,156 +0,0 @@ | |||
1 | |||
2 | module.exports = { | ||
3 | /* | ||
4 | |-------------------------------------------------------------------------- | ||
5 | | JSON Parser | ||
6 | |-------------------------------------------------------------------------- | ||
7 | | | ||
8 | | Below settings are applied when the request body contains a JSON payload. | ||
9 | | If you want body parser to ignore JSON payloads, then simply set `types` | ||
10 | | to an empty array. | ||
11 | */ | ||
12 | json: { | ||
13 | /* | ||
14 | |-------------------------------------------------------------------------- | ||
15 | | limit | ||
16 | |-------------------------------------------------------------------------- | ||
17 | | | ||
18 | | Defines the limit of JSON that can be sent by the client. If payload | ||
19 | | is over 1mb it will not be processed. | ||
20 | | | ||
21 | */ | ||
22 | limit: '50mb', | ||
23 | |||
24 | /* | ||
25 | |-------------------------------------------------------------------------- | ||
26 | | strict | ||
27 | |-------------------------------------------------------------------------- | ||
28 | | | ||
29 | | When `strict` is set to true, body parser will only parse Arrays and | ||
30 | | Object. Otherwise everything parseable by `JSON.parse` is parsed. | ||
31 | | | ||
32 | */ | ||
33 | strict: true, | ||
34 | |||
35 | /* | ||
36 | |-------------------------------------------------------------------------- | ||
37 | | types | ||
38 | |-------------------------------------------------------------------------- | ||
39 | | | ||
40 | | Which content types are processed as JSON payloads. You are free to | ||
41 | | add your own types here, but the request body should be parseable | ||
42 | | by `JSON.parse` method. | ||
43 | | | ||
44 | */ | ||
45 | types: [ | ||
46 | 'application/json', | ||
47 | 'application/json-patch+json', | ||
48 | 'application/vnd.api+json', | ||
49 | 'application/csp-report', | ||
50 | ], | ||
51 | }, | ||
52 | |||
53 | /* | ||
54 | |-------------------------------------------------------------------------- | ||
55 | | Raw Parser | ||
56 | |-------------------------------------------------------------------------- | ||
57 | | | ||
58 | | | ||
59 | | | ||
60 | */ | ||
61 | raw: { | ||
62 | types: [ | ||
63 | 'text/*', | ||
64 | ], | ||
65 | }, | ||
66 | |||
67 | /* | ||
68 | |-------------------------------------------------------------------------- | ||
69 | | Form Parser | ||
70 | |-------------------------------------------------------------------------- | ||
71 | | | ||
72 | | | ||
73 | | | ||
74 | */ | ||
75 | form: { | ||
76 | types: [ | ||
77 | 'application/x-www-form-urlencoded', | ||
78 | ], | ||
79 | }, | ||
80 | |||
81 | /* | ||
82 | |-------------------------------------------------------------------------- | ||
83 | | Files Parser | ||
84 | |-------------------------------------------------------------------------- | ||
85 | | | ||
86 | | | ||
87 | | | ||
88 | */ | ||
89 | files: { | ||
90 | types: [ | ||
91 | 'multipart/form-data', | ||
92 | ], | ||
93 | |||
94 | /* | ||
95 | |-------------------------------------------------------------------------- | ||
96 | | Max Size | ||
97 | |-------------------------------------------------------------------------- | ||
98 | | | ||
99 | | Below value is the max size of all the files uploaded to the server. It | ||
100 | | is validated even before files have been processed and hard exception | ||
101 | | is thrown. | ||
102 | | | ||
103 | | Consider setting a reasonable value here, otherwise people may upload GB's | ||
104 | | of files which will keep your server busy. | ||
105 | | | ||
106 | | Also this value is considered when `autoProcess` is set to true. | ||
107 | | | ||
108 | */ | ||
109 | maxSize: '20mb', | ||
110 | |||
111 | /* | ||
112 | |-------------------------------------------------------------------------- | ||
113 | | Auto Process | ||
114 | |-------------------------------------------------------------------------- | ||
115 | | | ||
116 | | Whether or not to auto-process files. Since HTTP servers handle files via | ||
117 | | couple of specific endpoints. It is better to set this value off and | ||
118 | | manually process the files when required. | ||
119 | | | ||
120 | | This value can contain a boolean or an array of route patterns | ||
121 | | to be autoprocessed. | ||
122 | */ | ||
123 | autoProcess: true, | ||
124 | |||
125 | /* | ||
126 | |-------------------------------------------------------------------------- | ||
127 | | Process Manually | ||
128 | |-------------------------------------------------------------------------- | ||
129 | | | ||
130 | | The list of routes that should not process files and instead rely on | ||
131 | | manual process. This list should only contain routes when autoProcess | ||
132 | | is to true. Otherwise everything is processed manually. | ||
133 | | | ||
134 | */ | ||
135 | processManually: [], | ||
136 | |||
137 | /* | ||
138 | |-------------------------------------------------------------------------- | ||
139 | | Temporary file name | ||
140 | |-------------------------------------------------------------------------- | ||
141 | | | ||
142 | | Define a function, which should return a string to be used as the | ||
143 | | tmp file name. | ||
144 | | | ||
145 | | If not defined, Bodyparser will use `uuid` as the tmp file name. | ||
146 | | | ||
147 | | To be defined as. If you are defining the function, then do make sure | ||
148 | | to return a value from it. | ||
149 | | | ||
150 | | tmpFileName () { | ||
151 | | return 'some-unique-value' | ||
152 | | } | ||
153 | | | ||
154 | */ | ||
155 | }, | ||
156 | }; | ||
diff --git a/config/bodyparser.ts b/config/bodyparser.ts new file mode 100644 index 0000000..b5adcda --- /dev/null +++ b/config/bodyparser.ts | |||
@@ -0,0 +1,205 @@ | |||
1 | /** | ||
2 | * Config source: https://git.io/Jfefn | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this config | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import { BodyParserConfig } from '@ioc:Adonis/Core/BodyParser'; | ||
9 | |||
10 | const bodyParserConfig: BodyParserConfig = { | ||
11 | /* | ||
12 | |-------------------------------------------------------------------------- | ||
13 | | White listed methods | ||
14 | |-------------------------------------------------------------------------- | ||
15 | | | ||
16 | | HTTP methods for which body parsing must be performed. It is a good practice | ||
17 | | to avoid body parsing for `GET` requests. | ||
18 | | | ||
19 | */ | ||
20 | whitelistedMethods: ['POST', 'PUT', 'PATCH', 'DELETE'], | ||
21 | |||
22 | /* | ||
23 | |-------------------------------------------------------------------------- | ||
24 | | JSON parser settings | ||
25 | |-------------------------------------------------------------------------- | ||
26 | | | ||
27 | | The settings for the JSON parser. The types defines the request content | ||
28 | | types which gets processed by the JSON parser. | ||
29 | | | ||
30 | */ | ||
31 | json: { | ||
32 | encoding: 'utf8', | ||
33 | limit: '1mb', | ||
34 | strict: true, | ||
35 | types: [ | ||
36 | 'application/json', | ||
37 | 'application/json-patch+json', | ||
38 | 'application/vnd.api+json', | ||
39 | 'application/csp-report', | ||
40 | ], | ||
41 | }, | ||
42 | |||
43 | /* | ||
44 | |-------------------------------------------------------------------------- | ||
45 | | Form parser settings | ||
46 | |-------------------------------------------------------------------------- | ||
47 | | | ||
48 | | The settings for the `application/x-www-form-urlencoded` parser. The types | ||
49 | | defines the request content types which gets processed by the form parser. | ||
50 | | | ||
51 | */ | ||
52 | form: { | ||
53 | encoding: 'utf8', | ||
54 | limit: '1mb', | ||
55 | queryString: {}, | ||
56 | |||
57 | /* | ||
58 | |-------------------------------------------------------------------------- | ||
59 | | Convert empty strings to null | ||
60 | |-------------------------------------------------------------------------- | ||
61 | | | ||
62 | | Convert empty form fields to null. HTML forms results in field string | ||
63 | | value when the field is left blank. This option normalizes all the blank | ||
64 | | field values to "null" | ||
65 | | | ||
66 | */ | ||
67 | convertEmptyStringsToNull: true, | ||
68 | |||
69 | types: ['application/x-www-form-urlencoded'], | ||
70 | }, | ||
71 | |||
72 | /* | ||
73 | |-------------------------------------------------------------------------- | ||
74 | | Raw body parser settings | ||
75 | |-------------------------------------------------------------------------- | ||
76 | | | ||
77 | | Raw body just reads the request body stream as a plain text, which you | ||
78 | | can process by hand. This must be used when request body type is not | ||
79 | | supported by the body parser. | ||
80 | | | ||
81 | */ | ||
82 | raw: { | ||
83 | encoding: 'utf8', | ||
84 | limit: '1mb', | ||
85 | queryString: {}, | ||
86 | types: ['text/*'], | ||
87 | }, | ||
88 | |||
89 | /* | ||
90 | |-------------------------------------------------------------------------- | ||
91 | | Multipart parser settings | ||
92 | |-------------------------------------------------------------------------- | ||
93 | | | ||
94 | | The settings for the `multipart/form-data` parser. The types defines the | ||
95 | | request content types which gets processed by the form parser. | ||
96 | | | ||
97 | */ | ||
98 | multipart: { | ||
99 | /* | ||
100 | |-------------------------------------------------------------------------- | ||
101 | | Auto process | ||
102 | |-------------------------------------------------------------------------- | ||
103 | | | ||
104 | | The auto process option will process uploaded files and writes them to | ||
105 | | the `tmp` folder. You can turn it off and then manually use the stream | ||
106 | | to pipe stream to a different destination. | ||
107 | | | ||
108 | | It is recommended to keep `autoProcess=true`. Unless you are processing bigger | ||
109 | | file sizes. | ||
110 | | | ||
111 | */ | ||
112 | autoProcess: true, | ||
113 | |||
114 | /* | ||
115 | |-------------------------------------------------------------------------- | ||
116 | | Files to be processed manually | ||
117 | |-------------------------------------------------------------------------- | ||
118 | | | ||
119 | | You can turn off `autoProcess` for certain routes by defining | ||
120 | | routes inside the following array. | ||
121 | | | ||
122 | | NOTE: Make sure the route pattern starts with a leading slash. | ||
123 | | | ||
124 | | Correct | ||
125 | | ```js | ||
126 | | /projects/:id/file | ||
127 | | ``` | ||
128 | | | ||
129 | | Incorrect | ||
130 | | ```js | ||
131 | | projects/:id/file | ||
132 | | ``` | ||
133 | */ | ||
134 | processManually: [], | ||
135 | |||
136 | /* | ||
137 | |-------------------------------------------------------------------------- | ||
138 | | Temporary file name | ||
139 | |-------------------------------------------------------------------------- | ||
140 | | | ||
141 | | When auto processing is on. We will use this method to compute the temporary | ||
142 | | file name. AdonisJs will compute a unique `tmpPath` for you automatically, | ||
143 | | However, you can also define your own custom method. | ||
144 | | | ||
145 | */ | ||
146 | // tmpFileName () { | ||
147 | // }, | ||
148 | |||
149 | /* | ||
150 | |-------------------------------------------------------------------------- | ||
151 | | Encoding | ||
152 | |-------------------------------------------------------------------------- | ||
153 | | | ||
154 | | Request body encoding | ||
155 | | | ||
156 | */ | ||
157 | encoding: 'utf8', | ||
158 | |||
159 | /* | ||
160 | |-------------------------------------------------------------------------- | ||
161 | | Convert empty strings to null | ||
162 | |-------------------------------------------------------------------------- | ||
163 | | | ||
164 | | Convert empty form fields to null. HTML forms results in field string | ||
165 | | value when the field is left blank. This option normalizes all the blank | ||
166 | | field values to "null" | ||
167 | | | ||
168 | */ | ||
169 | convertEmptyStringsToNull: true, | ||
170 | |||
171 | /* | ||
172 | |-------------------------------------------------------------------------- | ||
173 | | Max Fields | ||
174 | |-------------------------------------------------------------------------- | ||
175 | | | ||
176 | | The maximum number of fields allowed in the request body. The field includes | ||
177 | | text inputs and files both. | ||
178 | | | ||
179 | */ | ||
180 | maxFields: 1000, | ||
181 | |||
182 | /* | ||
183 | |-------------------------------------------------------------------------- | ||
184 | | Request body limit | ||
185 | |-------------------------------------------------------------------------- | ||
186 | | | ||
187 | | The total limit to the multipart body. This includes all request files | ||
188 | | and fields data. | ||
189 | | | ||
190 | */ | ||
191 | limit: '20mb', | ||
192 | |||
193 | /* | ||
194 | |-------------------------------------------------------------------------- | ||
195 | | Types | ||
196 | |-------------------------------------------------------------------------- | ||
197 | | | ||
198 | | The types that will be considered and parsed as multipart body. | ||
199 | | | ||
200 | */ | ||
201 | types: ['multipart/form-data'], | ||
202 | }, | ||
203 | }; | ||
204 | |||
205 | export default bodyParserConfig; | ||
diff --git a/config/cors.js b/config/cors.js deleted file mode 100644 index 7ebbe3f..0000000 --- a/config/cors.js +++ /dev/null | |||
@@ -1,86 +0,0 @@ | |||
1 | |||
2 | module.exports = { | ||
3 | /* | ||
4 | |-------------------------------------------------------------------------- | ||
5 | | Origin | ||
6 | |-------------------------------------------------------------------------- | ||
7 | | | ||
8 | | Set a list of origins to be allowed. The value can be one of the following | ||
9 | | | ||
10 | | Boolean: true - Allow current request origin | ||
11 | | Boolean: false - Disallow all | ||
12 | | String - Comma separated list of allowed origins | ||
13 | | Array - An array of allowed origins | ||
14 | | String: * - A wildcard to allow current request origin | ||
15 | | Function - Receives the current origin and should return one of the above values. | ||
16 | | | ||
17 | */ | ||
18 | origin: false, | ||
19 | |||
20 | /* | ||
21 | |-------------------------------------------------------------------------- | ||
22 | | Methods | ||
23 | |-------------------------------------------------------------------------- | ||
24 | | | ||
25 | | HTTP methods to be allowed. The value can be one of the following | ||
26 | | | ||
27 | | String - Comma separated list of allowed methods | ||
28 | | Array - An array of allowed methods | ||
29 | | | ||
30 | */ | ||
31 | methods: ['GET', 'PUT', 'PATCH', 'POST', 'DELETE'], | ||
32 | |||
33 | /* | ||
34 | |-------------------------------------------------------------------------- | ||
35 | | Headers | ||
36 | |-------------------------------------------------------------------------- | ||
37 | | | ||
38 | | List of headers to be allowed via Access-Control-Request-Headers header. | ||
39 | | The value can be one of the following. | ||
40 | | | ||
41 | | Boolean: true - Allow current request headers | ||
42 | | Boolean: false - Disallow all | ||
43 | | String - Comma separated list of allowed headers | ||
44 | | Array - An array of allowed headers | ||
45 | | String: * - A wildcard to allow current request headers | ||
46 | | Function - Receives the current header and should return one of the above values. | ||
47 | | | ||
48 | */ | ||
49 | headers: true, | ||
50 | |||
51 | /* | ||
52 | |-------------------------------------------------------------------------- | ||
53 | | Expose Headers | ||
54 | |-------------------------------------------------------------------------- | ||
55 | | | ||
56 | | A list of headers to be exposed via `Access-Control-Expose-Headers` | ||
57 | | header. The value can be one of the following. | ||
58 | | | ||
59 | | Boolean: false - Disallow all | ||
60 | | String: Comma separated list of allowed headers | ||
61 | | Array - An array of allowed headers | ||
62 | | | ||
63 | */ | ||
64 | exposeHeaders: false, | ||
65 | |||
66 | /* | ||
67 | |-------------------------------------------------------------------------- | ||
68 | | Credentials | ||
69 | |-------------------------------------------------------------------------- | ||
70 | | | ||
71 | | Define Access-Control-Allow-Credentials header. It should always be a | ||
72 | | boolean. | ||
73 | | | ||
74 | */ | ||
75 | credentials: false, | ||
76 | |||
77 | /* | ||
78 | |-------------------------------------------------------------------------- | ||
79 | | MaxAge | ||
80 | |-------------------------------------------------------------------------- | ||
81 | | | ||
82 | | Define Access-Control-Allow-Max-Age | ||
83 | | | ||
84 | */ | ||
85 | maxAge: 90, | ||
86 | }; | ||
diff --git a/config/cors.ts b/config/cors.ts new file mode 100644 index 0000000..dc0e3f6 --- /dev/null +++ b/config/cors.ts | |||
@@ -0,0 +1,134 @@ | |||
1 | /** | ||
2 | * Config source: https://git.io/JfefC | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this config | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import { CorsConfig } from '@ioc:Adonis/Core/Cors'; | ||
9 | |||
10 | const corsConfig: CorsConfig = { | ||
11 | /* | ||
12 | |-------------------------------------------------------------------------- | ||
13 | | Enabled | ||
14 | |-------------------------------------------------------------------------- | ||
15 | | | ||
16 | | A boolean to enable or disable CORS integration from your AdonisJs | ||
17 | | application. | ||
18 | | | ||
19 | | Setting the value to `true` will enable the CORS for all HTTP request. However, | ||
20 | | you can define a function to enable/disable it on per request basis as well. | ||
21 | | | ||
22 | */ | ||
23 | enabled: false, | ||
24 | |||
25 | // You can also use a function that return true or false. | ||
26 | // enabled: (request) => request.url().startsWith('/api') | ||
27 | |||
28 | /* | ||
29 | |-------------------------------------------------------------------------- | ||
30 | | Origin | ||
31 | |-------------------------------------------------------------------------- | ||
32 | | | ||
33 | | Set a list of origins to be allowed for `Access-Control-Allow-Origin`. | ||
34 | | The value can be one of the following: | ||
35 | | | ||
36 | | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin | ||
37 | | | ||
38 | | Boolean (true) - Allow current request origin. | ||
39 | | Boolean (false) - Disallow all. | ||
40 | | String - Comma separated list of allowed origins. | ||
41 | | Array - An array of allowed origins. | ||
42 | | String (*) - A wildcard (*) to allow all request origins. | ||
43 | | Function - Receives the current origin string and should return | ||
44 | | one of the above values. | ||
45 | | | ||
46 | */ | ||
47 | origin: true, | ||
48 | |||
49 | /* | ||
50 | |-------------------------------------------------------------------------- | ||
51 | | Methods | ||
52 | |-------------------------------------------------------------------------- | ||
53 | | | ||
54 | | An array of allowed HTTP methods for CORS. The `Access-Control-Request-Method` | ||
55 | | is checked against the following list. | ||
56 | | | ||
57 | | Following is the list of default methods. Feel free to add more. | ||
58 | */ | ||
59 | methods: ['GET', 'HEAD', 'POST', 'PUT', 'DELETE'], | ||
60 | |||
61 | /* | ||
62 | |-------------------------------------------------------------------------- | ||
63 | | Headers | ||
64 | |-------------------------------------------------------------------------- | ||
65 | | | ||
66 | | List of headers to be allowed for `Access-Control-Allow-Headers` header. | ||
67 | | The value can be one of the following: | ||
68 | | | ||
69 | | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Request-Headers | ||
70 | | | ||
71 | | Boolean(true) - Allow all headers mentioned in `Access-Control-Request-Headers`. | ||
72 | | Boolean(false) - Disallow all headers. | ||
73 | | String - Comma separated list of allowed headers. | ||
74 | | Array - An array of allowed headers. | ||
75 | | Function - Receives the current header and should return one of the above values. | ||
76 | | | ||
77 | */ | ||
78 | headers: true, | ||
79 | |||
80 | /* | ||
81 | |-------------------------------------------------------------------------- | ||
82 | | Expose Headers | ||
83 | |-------------------------------------------------------------------------- | ||
84 | | | ||
85 | | A list of headers to be exposed by setting `Access-Control-Expose-Headers`. | ||
86 | | header. By default following 6 simple response headers are exposed. | ||
87 | | | ||
88 | | Cache-Control | ||
89 | | Content-Language | ||
90 | | Content-Type | ||
91 | | Expires | ||
92 | | Last-Modified | ||
93 | | Pragma | ||
94 | | | ||
95 | | In order to add more headers, simply define them inside the following array. | ||
96 | | | ||
97 | | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers | ||
98 | | | ||
99 | */ | ||
100 | exposeHeaders: [ | ||
101 | 'cache-control', | ||
102 | 'content-language', | ||
103 | 'content-type', | ||
104 | 'expires', | ||
105 | 'last-modified', | ||
106 | 'pragma', | ||
107 | ], | ||
108 | |||
109 | /* | ||
110 | |-------------------------------------------------------------------------- | ||
111 | | Credentials | ||
112 | |-------------------------------------------------------------------------- | ||
113 | | | ||
114 | | Toggle `Access-Control-Allow-Credentials` header. If value is set to `true`, | ||
115 | | then header will be set, otherwise not. | ||
116 | | | ||
117 | | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials | ||
118 | | | ||
119 | */ | ||
120 | credentials: true, | ||
121 | |||
122 | /* | ||
123 | |-------------------------------------------------------------------------- | ||
124 | | MaxAge | ||
125 | |-------------------------------------------------------------------------- | ||
126 | | | ||
127 | | Define `Access-Control-Max-Age` header in seconds. | ||
128 | | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age | ||
129 | | | ||
130 | */ | ||
131 | maxAge: 90, | ||
132 | }; | ||
133 | |||
134 | export default corsConfig; | ||
diff --git a/config/dashboard.ts b/config/dashboard.ts new file mode 100644 index 0000000..18feb14 --- /dev/null +++ b/config/dashboard.ts | |||
@@ -0,0 +1,5 @@ | |||
1 | import Env from '@ioc:Adonis/Core/Env'; | ||
2 | |||
3 | export const enabled: boolean = Env.get('IS_DASHBOARD_ENABLED') !== 'false'; | ||
4 | |||
5 | export const mailFrom: string = Env.get('MAIL_SENDER'); | ||
diff --git a/config/database.js b/config/database.js deleted file mode 100644 index 5c51996..0000000 --- a/config/database.js +++ /dev/null | |||
@@ -1,88 +0,0 @@ | |||
1 | const path = require("path"); | ||
2 | |||
3 | /** @type {import('@adonisjs/framework/src/Env')} */ | ||
4 | const Env = use('Env'); | ||
5 | |||
6 | /** @type {import('@adonisjs/ignitor/src/Helpers')} */ | ||
7 | const Helpers = use('Helpers'); | ||
8 | |||
9 | module.exports = { | ||
10 | /* | ||
11 | |-------------------------------------------------------------------------- | ||
12 | | Default Connection | ||
13 | |-------------------------------------------------------------------------- | ||
14 | | | ||
15 | | Connection defines the default connection settings to be used while | ||
16 | | interacting with SQL databases. | ||
17 | | | ||
18 | */ | ||
19 | connection: Env.get('DB_CONNECTION', 'sqlite'), | ||
20 | |||
21 | /* | ||
22 | |-------------------------------------------------------------------------- | ||
23 | | Sqlite | ||
24 | |-------------------------------------------------------------------------- | ||
25 | | | ||
26 | | Sqlite is a flat file database and can be a good choice for a development | ||
27 | | environment. | ||
28 | | | ||
29 | | npm i --save sqlite3 | ||
30 | | | ||
31 | */ | ||
32 | sqlite: { | ||
33 | client: 'sqlite3', | ||
34 | connection: { | ||
35 | filename: path.join(Env.get('DATA_DIR', 'data'), `${Env.get('DB_DATABASE', 'ferdium')}.sqlite`), | ||
36 | }, | ||
37 | useNullAsDefault: true, | ||
38 | debug: Env.get('DB_DEBUG', false), | ||
39 | }, | ||
40 | |||
41 | /* | ||
42 | |-------------------------------------------------------------------------- | ||
43 | | MySQL | ||
44 | |-------------------------------------------------------------------------- | ||
45 | | | ||
46 | | Here we define connection settings for MySQL database. | ||
47 | | | ||
48 | | npm i --save mysql | ||
49 | | | ||
50 | */ | ||
51 | mysql: { | ||
52 | client: 'mysql', | ||
53 | connection: { | ||
54 | host: Env.get('DB_HOST', 'localhost'), | ||
55 | port: Env.get('DB_PORT', ''), | ||
56 | user: Env.get('DB_USER', 'root'), | ||
57 | password: Env.get('DB_PASSWORD', ''), | ||
58 | database: Env.get('DB_DATABASE', 'ferdium'), | ||
59 | }, | ||
60 | debug: Env.get('DB_DEBUG', false), | ||
61 | }, | ||
62 | |||
63 | /* | ||
64 | |-------------------------------------------------------------------------- | ||
65 | | PostgreSQL | ||
66 | |-------------------------------------------------------------------------- | ||
67 | | | ||
68 | | Here we define connection settings for PostgreSQL database. | ||
69 | | | ||
70 | | npm i --save pg | ||
71 | | | ||
72 | */ | ||
73 | pg: { | ||
74 | client: 'pg', | ||
75 | connection: { | ||
76 | host: Env.get('DB_HOST', 'localhost'), | ||
77 | port: Env.get('DB_PORT', ''), | ||
78 | user: Env.get('DB_USER', 'root'), | ||
79 | password: Env.get('DB_PASSWORD', ''), | ||
80 | database: Env.get('DB_DATABASE', 'ferdium'), | ||
81 | ssl: Env.get('DB_CA_CERT') ? { | ||
82 | rejectUnauthorized: false, | ||
83 | ca: Env.get('DB_CA_CERT'), | ||
84 | } : JSON.parse(Env.get('DB_SSL', 'true')), | ||
85 | }, | ||
86 | debug: Env.get('DB_DEBUG', false), | ||
87 | }, | ||
88 | }; | ||
diff --git a/config/database.ts b/config/database.ts new file mode 100644 index 0000000..65a9455 --- /dev/null +++ b/config/database.ts | |||
@@ -0,0 +1,121 @@ | |||
1 | /* eslint-disable @typescript-eslint/indent */ | ||
2 | /** | ||
3 | * Config source: https://git.io/JesV9 | ||
4 | * | ||
5 | * Feel free to let us know via PR, if you find something broken in this config | ||
6 | * file. | ||
7 | */ | ||
8 | |||
9 | import path from 'node:path'; | ||
10 | import Env from '@ioc:Adonis/Core/Env'; | ||
11 | import { DatabaseConfig } from '@ioc:Adonis/Lucid/Database'; | ||
12 | |||
13 | const databaseConfig: DatabaseConfig = { | ||
14 | /* | ||
15 | |-------------------------------------------------------------------------- | ||
16 | | Connection | ||
17 | |-------------------------------------------------------------------------- | ||
18 | | | ||
19 | | The primary connection for making database queries across the application | ||
20 | | You can use any key from the `connections` object defined in this same | ||
21 | | file. | ||
22 | | | ||
23 | */ | ||
24 | connection: Env.get('DB_CONNECTION', 'sqlite'), | ||
25 | |||
26 | connections: { | ||
27 | /* | ||
28 | |-------------------------------------------------------------------------- | ||
29 | | SQLite | ||
30 | |-------------------------------------------------------------------------- | ||
31 | | | ||
32 | | Configuration for the SQLite database. Make sure to install the driver | ||
33 | | from npm when using this connection | ||
34 | | | ||
35 | | npm i sqlite3 | ||
36 | | | ||
37 | */ | ||
38 | sqlite: { | ||
39 | client: 'sqlite', | ||
40 | connection: { | ||
41 | filename: path.join( | ||
42 | Env.get('DATA_DIR', 'data'), | ||
43 | `${Env.get('DB_DATABASE', 'ferdium')}.sqlite`, | ||
44 | ), | ||
45 | }, | ||
46 | pool: { | ||
47 | afterCreate: (conn, cb) => { | ||
48 | conn.run('PRAGMA foreign_keys=true', cb); | ||
49 | }, | ||
50 | }, | ||
51 | migrations: { | ||
52 | naturalSort: true, | ||
53 | }, | ||
54 | useNullAsDefault: true, | ||
55 | healthCheck: false, | ||
56 | debug: Env.get('DB_DEBUG', false), | ||
57 | }, | ||
58 | |||
59 | /* | ||
60 | |-------------------------------------------------------------------------- | ||
61 | | MySQL config | ||
62 | |-------------------------------------------------------------------------- | ||
63 | | | ||
64 | | Configuration for MySQL database. Make sure to install the driver | ||
65 | | from npm when using this connection | ||
66 | | | ||
67 | | npm i mysql | ||
68 | | | ||
69 | */ | ||
70 | mysql: { | ||
71 | client: 'mysql', | ||
72 | connection: { | ||
73 | host: Env.get('DB_HOST', 'localhost'), | ||
74 | port: Env.get('DB_PORT', ''), | ||
75 | user: Env.get('DB_USER', 'root'), | ||
76 | password: Env.get('DB_PASSWORD', ''), | ||
77 | database: Env.get('DB_DATABASE', 'ferdium'), | ||
78 | }, | ||
79 | migrations: { | ||
80 | naturalSort: true, | ||
81 | }, | ||
82 | healthCheck: false, | ||
83 | debug: Env.get('DB_DEBUG', false), | ||
84 | }, | ||
85 | |||
86 | /* | ||
87 | |-------------------------------------------------------------------------- | ||
88 | | PostgreSQL config | ||
89 | |-------------------------------------------------------------------------- | ||
90 | | | ||
91 | | Configuration for PostgreSQL database. Make sure to install the driver | ||
92 | | from npm when using this connection | ||
93 | | | ||
94 | | npm i pg | ||
95 | | | ||
96 | */ | ||
97 | pg: { | ||
98 | client: 'pg', | ||
99 | connection: { | ||
100 | host: Env.get('DB_HOST', 'localhost'), | ||
101 | port: Env.get('DB_PORT', ''), | ||
102 | user: Env.get('DB_USER', 'root'), | ||
103 | password: Env.get('DB_PASSWORD', ''), | ||
104 | database: Env.get('DB_DATABASE', 'ferdium'), | ||
105 | ssl: Env.get('DB_CA_CERT') | ||
106 | ? { | ||
107 | rejectUnauthorized: false, | ||
108 | ca: Env.get('DB_CA_CERT'), | ||
109 | } | ||
110 | : JSON.parse(Env.get('DB_SSL', 'true')), | ||
111 | }, | ||
112 | migrations: { | ||
113 | naturalSort: true, | ||
114 | }, | ||
115 | healthCheck: false, | ||
116 | debug: Env.get('DB_DEBUG', false), | ||
117 | }, | ||
118 | }, | ||
119 | }; | ||
120 | |||
121 | export default databaseConfig; | ||
diff --git a/config/drive.js b/config/drive.js deleted file mode 100644 index cb4b2b3..0000000 --- a/config/drive.js +++ /dev/null | |||
@@ -1,45 +0,0 @@ | |||
1 | const Env = use('Env'); | ||
2 | |||
3 | module.exports = { | ||
4 | /* | ||
5 | |-------------------------------------------------------------------------- | ||
6 | | Default disk | ||
7 | |-------------------------------------------------------------------------- | ||
8 | | | ||
9 | | The default disk is used when you interact with the file system without | ||
10 | | defining a disk name | ||
11 | | | ||
12 | */ | ||
13 | default: 'local', | ||
14 | |||
15 | disks: { | ||
16 | /* | ||
17 | |-------------------------------------------------------------------------- | ||
18 | | Local | ||
19 | |-------------------------------------------------------------------------- | ||
20 | | | ||
21 | | Local disk interacts with the a local folder inside your application | ||
22 | | | ||
23 | */ | ||
24 | local: { | ||
25 | root: `${__dirname}/../recipes/archives`, | ||
26 | driver: 'local', | ||
27 | }, | ||
28 | |||
29 | /* | ||
30 | |-------------------------------------------------------------------------- | ||
31 | | S3 | ||
32 | |-------------------------------------------------------------------------- | ||
33 | | | ||
34 | | S3 disk interacts with a bucket on aws s3 | ||
35 | | | ||
36 | */ | ||
37 | s3: { | ||
38 | driver: 's3', | ||
39 | key: Env.get('S3_KEY'), | ||
40 | secret: Env.get('S3_SECRET'), | ||
41 | bucket: Env.get('S3_BUCKET'), | ||
42 | region: Env.get('S3_REGION'), | ||
43 | }, | ||
44 | }, | ||
45 | }; | ||
diff --git a/config/drive.ts b/config/drive.ts new file mode 100644 index 0000000..b6950eb --- /dev/null +++ b/config/drive.ts | |||
@@ -0,0 +1,149 @@ | |||
1 | /** | ||
2 | * Config source: https://git.io/JBt3o | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this config | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import Env from '@ioc:Adonis/Core/Env'; | ||
9 | import { driveConfig } from '@adonisjs/core/build/config'; | ||
10 | import Application from '@ioc:Adonis/Core/Application'; | ||
11 | |||
12 | /* | ||
13 | |-------------------------------------------------------------------------- | ||
14 | | Drive Config | ||
15 | |-------------------------------------------------------------------------- | ||
16 | | | ||
17 | | The `DriveConfig` relies on the `DisksList` interface which is | ||
18 | | defined inside the `contracts` directory. | ||
19 | | | ||
20 | */ | ||
21 | export default driveConfig({ | ||
22 | /* | ||
23 | |-------------------------------------------------------------------------- | ||
24 | | Default disk | ||
25 | |-------------------------------------------------------------------------- | ||
26 | | | ||
27 | | The default disk to use for managing file uploads. The value is driven by | ||
28 | | the `DRIVE_DISK` environment variable. | ||
29 | | | ||
30 | */ | ||
31 | disk: Env.get('DRIVE_DISK', 'local'), | ||
32 | |||
33 | disks: { | ||
34 | /* | ||
35 | |-------------------------------------------------------------------------- | ||
36 | | Local | ||
37 | |-------------------------------------------------------------------------- | ||
38 | | | ||
39 | | Uses the local file system to manage files. Make sure to turn off serving | ||
40 | | files when not using this disk. | ||
41 | | | ||
42 | */ | ||
43 | local: { | ||
44 | driver: 'local', | ||
45 | visibility: 'public', | ||
46 | |||
47 | /* | ||
48 | |-------------------------------------------------------------------------- | ||
49 | | Storage root - Local driver only | ||
50 | |-------------------------------------------------------------------------- | ||
51 | | | ||
52 | | Define an absolute path to the storage directory from where to read the | ||
53 | | files. | ||
54 | | | ||
55 | */ | ||
56 | root: Application.tmpPath('uploads'), | ||
57 | |||
58 | /* | ||
59 | |-------------------------------------------------------------------------- | ||
60 | | Serve files - Local driver only | ||
61 | |-------------------------------------------------------------------------- | ||
62 | | | ||
63 | | When this is set to true, AdonisJS will configure a files server to serve | ||
64 | | files from the disk root. This is done to mimic the behavior of cloud | ||
65 | | storage services that has inbuilt capabilities to serve files. | ||
66 | | | ||
67 | */ | ||
68 | serveFiles: true, | ||
69 | |||
70 | /* | ||
71 | |-------------------------------------------------------------------------- | ||
72 | | Base path - Local driver only | ||
73 | |-------------------------------------------------------------------------- | ||
74 | | | ||
75 | | Base path is always required when "serveFiles = true". Also make sure | ||
76 | | the `basePath` is unique across all the disks using "local" driver and | ||
77 | | you are not registering routes with this prefix. | ||
78 | | | ||
79 | */ | ||
80 | basePath: '/uploads', | ||
81 | }, | ||
82 | |||
83 | /* | ||
84 | |-------------------------------------------------------------------------- | ||
85 | | S3 Driver | ||
86 | |-------------------------------------------------------------------------- | ||
87 | | | ||
88 | | Uses the S3 cloud storage to manage files. Make sure to install the s3 | ||
89 | | drive separately when using it. | ||
90 | | | ||
91 | |************************************************************************** | ||
92 | | npm i @adonisjs/drive-s3 | ||
93 | |************************************************************************** | ||
94 | | | ||
95 | */ | ||
96 | // s3: { | ||
97 | // driver: 's3', | ||
98 | // visibility: 'public', | ||
99 | // key: Env.get('S3_KEY'), | ||
100 | // secret: Env.get('S3_SECRET'), | ||
101 | // region: Env.get('S3_REGION'), | ||
102 | // bucket: Env.get('S3_BUCKET'), | ||
103 | // endpoint: Env.get('S3_ENDPOINT'), | ||
104 | // | ||
105 | // // For minio to work | ||
106 | // // forcePathStyle: true, | ||
107 | // }, | ||
108 | |||
109 | /* | ||
110 | |-------------------------------------------------------------------------- | ||
111 | | GCS Driver | ||
112 | |-------------------------------------------------------------------------- | ||
113 | | | ||
114 | | Uses the Google cloud storage to manage files. Make sure to install the GCS | ||
115 | | drive separately when using it. | ||
116 | | | ||
117 | |************************************************************************** | ||
118 | | npm i @adonisjs/drive-gcs | ||
119 | |************************************************************************** | ||
120 | | | ||
121 | */ | ||
122 | // gcs: { | ||
123 | // driver: 'gcs', | ||
124 | // visibility: 'public', | ||
125 | // keyFilename: Env.get('GCS_KEY_FILENAME'), | ||
126 | // bucket: Env.get('GCS_BUCKET'), | ||
127 | |||
128 | /* | ||
129 | |-------------------------------------------------------------------------- | ||
130 | | Uniform ACL - Google cloud storage only | ||
131 | |-------------------------------------------------------------------------- | ||
132 | | | ||
133 | | When using the Uniform ACL on the bucket, the "visibility" option is | ||
134 | | ignored. Since, the files ACL is managed by the google bucket policies | ||
135 | | directly. | ||
136 | | | ||
137 | |************************************************************************** | ||
138 | | Learn more: https://cloud.google.com/storage/docs/uniform-bucket-level-access | ||
139 | |************************************************************************** | ||
140 | | | ||
141 | | The following option just informs drive whether your bucket is using uniform | ||
142 | | ACL or not. The actual setting needs to be toggled within the Google cloud | ||
143 | | console. | ||
144 | | | ||
145 | */ | ||
146 | // usingUniformAcl: false, | ||
147 | // }, | ||
148 | }, | ||
149 | }); | ||
diff --git a/config/hash.js b/config/hash.js deleted file mode 100644 index 297c977..0000000 --- a/config/hash.js +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | |||
2 | /** @type {import('@adonisjs/framework/src/Env')} */ | ||
3 | const Env = use('Env'); | ||
4 | |||
5 | module.exports = { | ||
6 | /* | ||
7 | |-------------------------------------------------------------------------- | ||
8 | | Driver | ||
9 | |-------------------------------------------------------------------------- | ||
10 | | | ||
11 | | Driver to be used for hashing values. The same driver is used by the | ||
12 | | auth module too. | ||
13 | | | ||
14 | */ | ||
15 | driver: Env.get('HASH_DRIVER', 'bcrypt'), | ||
16 | |||
17 | /* | ||
18 | |-------------------------------------------------------------------------- | ||
19 | | Bcrypt | ||
20 | |-------------------------------------------------------------------------- | ||
21 | | | ||
22 | | Config related to bcrypt hashing. https://www.npmjs.com/package/bcrypt | ||
23 | | package is used internally. | ||
24 | | | ||
25 | */ | ||
26 | bcrypt: { | ||
27 | rounds: 10, | ||
28 | }, | ||
29 | |||
30 | /* | ||
31 | |-------------------------------------------------------------------------- | ||
32 | | Argon | ||
33 | |-------------------------------------------------------------------------- | ||
34 | | | ||
35 | | Config related to argon. https://www.npmjs.com/package/argon2 package is | ||
36 | | used internally. | ||
37 | | | ||
38 | | Since argon is optional, you will have to install the dependency yourself | ||
39 | | | ||
40 | |============================================================================ | ||
41 | | npm i argon2 | ||
42 | |============================================================================ | ||
43 | | | ||
44 | */ | ||
45 | argon: { | ||
46 | type: 1, | ||
47 | }, | ||
48 | }; | ||
diff --git a/config/hash.ts b/config/hash.ts new file mode 100644 index 0000000..abe7dd0 --- /dev/null +++ b/config/hash.ts | |||
@@ -0,0 +1,88 @@ | |||
1 | /** | ||
2 | * Config source: https://git.io/JfefW | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this config | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import Env from '@ioc:Adonis/Core/Env'; | ||
9 | import { hashConfig } from '@adonisjs/core/build/config'; | ||
10 | |||
11 | /* | ||
12 | |-------------------------------------------------------------------------- | ||
13 | | Hash Config | ||
14 | |-------------------------------------------------------------------------- | ||
15 | | | ||
16 | | The `HashConfig` relies on the `HashList` interface which is | ||
17 | | defined inside `contracts` directory. | ||
18 | | | ||
19 | */ | ||
20 | export default hashConfig({ | ||
21 | /* | ||
22 | |-------------------------------------------------------------------------- | ||
23 | | Default hasher | ||
24 | |-------------------------------------------------------------------------- | ||
25 | | | ||
26 | | By default we make use of the argon hasher to hash values. However, feel | ||
27 | | free to change the default value | ||
28 | | | ||
29 | | Default is set to bcrypt to prevent breaking-changes. | ||
30 | */ | ||
31 | default: Env.get('HASH_DRIVER', 'scrypt'), | ||
32 | |||
33 | list: { | ||
34 | scrypt: { | ||
35 | driver: 'scrypt', | ||
36 | cost: 16_384, | ||
37 | blockSize: 8, | ||
38 | parallelization: 1, | ||
39 | saltSize: 16, | ||
40 | keyLength: 64, | ||
41 | maxMemory: 32 * 1024 * 1024, | ||
42 | }, | ||
43 | /* | ||
44 | |-------------------------------------------------------------------------- | ||
45 | | Argon | ||
46 | |-------------------------------------------------------------------------- | ||
47 | | | ||
48 | | Argon mapping uses the `argon2` driver to hash values. | ||
49 | | | ||
50 | | Make sure you install the underlying dependency for this driver to work. | ||
51 | | https://www.npmjs.com/package/phc-argon2. | ||
52 | | | ||
53 | | npm install phc-argon2 | ||
54 | | | ||
55 | */ | ||
56 | argon: { | ||
57 | driver: 'argon2', | ||
58 | variant: 'id', | ||
59 | iterations: 3, | ||
60 | memory: 4096, | ||
61 | parallelism: 1, | ||
62 | saltSize: 16, | ||
63 | }, | ||
64 | |||
65 | /* | ||
66 | |-------------------------------------------------------------------------- | ||
67 | | Bcrypt | ||
68 | |-------------------------------------------------------------------------- | ||
69 | | | ||
70 | | Bcrypt mapping uses the `bcrypt` driver to hash values. | ||
71 | | | ||
72 | | Make sure you install the underlying dependency for this driver to work. | ||
73 | | https://www.npmjs.com/package/phc-bcrypt. | ||
74 | | | ||
75 | | npm install phc-bcrypt | ||
76 | | | ||
77 | */ | ||
78 | bcrypt: { | ||
79 | driver: 'bcrypt', | ||
80 | rounds: 10, | ||
81 | }, | ||
82 | |||
83 | legacy: { | ||
84 | // @ts-expect-error | ||
85 | driver: 'legacy', | ||
86 | }, | ||
87 | }, | ||
88 | }); | ||
diff --git a/config/mail.js b/config/mail.js deleted file mode 100644 index 8fb6356..0000000 --- a/config/mail.js +++ /dev/null | |||
@@ -1,104 +0,0 @@ | |||
1 | const Env = use('Env'); | ||
2 | |||
3 | module.exports = { | ||
4 | /* | ||
5 | |-------------------------------------------------------------------------- | ||
6 | | Connection | ||
7 | |-------------------------------------------------------------------------- | ||
8 | | | ||
9 | | Connection to be used for sending emails. Each connection needs to | ||
10 | | define a driver too. | ||
11 | | | ||
12 | */ | ||
13 | connection: Env.get('MAIL_CONNECTION', 'smtp'), | ||
14 | |||
15 | /* | ||
16 | |-------------------------------------------------------------------------- | ||
17 | | SMTP | ||
18 | |-------------------------------------------------------------------------- | ||
19 | | | ||
20 | | Here we define configuration for sending emails via SMTP. | ||
21 | | | ||
22 | | https://nodemailer.com/smtp/ | ||
23 | | | ||
24 | */ | ||
25 | smtp: { | ||
26 | driver: 'smtp', | ||
27 | pool: true, | ||
28 | name: Env.get('APP_URL'), | ||
29 | port: Env.get('SMTP_PORT', '2525'), | ||
30 | host: Env.get('SMTP_HOST', 'localhost'), | ||
31 | secure: JSON.parse(Env.get('MAIL_SSL', 'false')), | ||
32 | requireTLS: JSON.parse(Env.get('MAIL_REQUIRE_TLS', 'false')), | ||
33 | authMethod: 'LOGIN', | ||
34 | auth: { | ||
35 | user: Env.get('MAIL_USERNAME'), | ||
36 | pass: Env.get('MAIL_PASSWORD'), | ||
37 | }, | ||
38 | maxConnections: 5, | ||
39 | maxMessages: 100, | ||
40 | rateLimit: 10, | ||
41 | }, | ||
42 | |||
43 | /* | ||
44 | |-------------------------------------------------------------------------- | ||
45 | | SparkPost | ||
46 | |-------------------------------------------------------------------------- | ||
47 | | | ||
48 | | Here we define configuration for spark post. Extra options can be defined | ||
49 | | inside the `extra` object. | ||
50 | | | ||
51 | | https://developer.sparkpost.com/api/transmissions.html#header-options-attributes | ||
52 | | | ||
53 | | extras: { | ||
54 | | campaign_id: 'sparkpost campaign id', | ||
55 | | options: { // sparkpost options } | ||
56 | | } | ||
57 | | | ||
58 | */ | ||
59 | sparkpost: { | ||
60 | driver: 'sparkpost', | ||
61 | apiKey: Env.get('SPARKPOST_API_KEY'), | ||
62 | extras: {}, | ||
63 | }, | ||
64 | |||
65 | /* | ||
66 | |-------------------------------------------------------------------------- | ||
67 | | Mailgun | ||
68 | |-------------------------------------------------------------------------- | ||
69 | | | ||
70 | | Here we define configuration for mailgun. Extra options can be defined | ||
71 | | inside the `extra` object. | ||
72 | | | ||
73 | | https://mailgun-documentation.readthedocs.io/en/latest/api-sending.html#sending | ||
74 | | | ||
75 | | extras: { | ||
76 | | 'o:tag': '', | ||
77 | | 'o:campaign': '',, | ||
78 | | . . . | ||
79 | | } | ||
80 | | | ||
81 | */ | ||
82 | mailgun: { | ||
83 | driver: 'mailgun', | ||
84 | domain: Env.get('MAILGUN_DOMAIN'), | ||
85 | region: Env.get('MAILGUN_API_REGION'), | ||
86 | apiKey: Env.get('MAILGUN_API_KEY'), | ||
87 | extras: {}, | ||
88 | }, | ||
89 | |||
90 | /* | ||
91 | |-------------------------------------------------------------------------- | ||
92 | | Ethereal | ||
93 | |-------------------------------------------------------------------------- | ||
94 | | | ||
95 | | Ethereal driver to quickly test emails in your browser. A disposable | ||
96 | | account is created automatically for you. | ||
97 | | | ||
98 | | https://ethereal.email | ||
99 | | | ||
100 | */ | ||
101 | ethereal: { | ||
102 | driver: 'ethereal', | ||
103 | }, | ||
104 | }; | ||
diff --git a/config/mail.ts b/config/mail.ts new file mode 100644 index 0000000..1210592 --- /dev/null +++ b/config/mail.ts | |||
@@ -0,0 +1,118 @@ | |||
1 | /** | ||
2 | * Config source: https://git.io/JvgAf | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this contract | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import Env from '@ioc:Adonis/Core/Env'; | ||
9 | import { mailConfig } from '@adonisjs/mail/build/config'; | ||
10 | |||
11 | export default mailConfig({ | ||
12 | /* | ||
13 | |-------------------------------------------------------------------------- | ||
14 | | Default mailer | ||
15 | |-------------------------------------------------------------------------- | ||
16 | | | ||
17 | | The following mailer will be used to send emails, when you don't specify | ||
18 | | a mailer | ||
19 | | | ||
20 | */ | ||
21 | mailer: 'smtp', | ||
22 | |||
23 | /* | ||
24 | |-------------------------------------------------------------------------- | ||
25 | | Mailers | ||
26 | |-------------------------------------------------------------------------- | ||
27 | | | ||
28 | | You can define or more mailers to send emails from your application. A | ||
29 | | single `driver` can be used to define multiple mailers with different | ||
30 | | config. | ||
31 | | | ||
32 | | For example: Postmark driver can be used to have different mailers for | ||
33 | | sending transactional and promotional emails | ||
34 | | | ||
35 | */ | ||
36 | mailers: { | ||
37 | /* | ||
38 | |-------------------------------------------------------------------------- | ||
39 | | Smtp | ||
40 | |-------------------------------------------------------------------------- | ||
41 | | | ||
42 | | Uses SMTP protocol for sending email | ||
43 | | | ||
44 | */ | ||
45 | smtp: { | ||
46 | driver: 'smtp', | ||
47 | name: Env.get('APP_URL'), | ||
48 | port: Env.get('SMTP_PORT', '2525'), | ||
49 | host: Env.get('SMTP_HOST', 'localhost'), | ||
50 | secure: JSON.parse(Env.get('MAIL_SSL', 'false')), | ||
51 | requireTLS: JSON.parse(Env.get('MAIL_REQUIRE_TLS', 'false')), | ||
52 | auth: { | ||
53 | user: Env.get('SMTP_USERNAME'), | ||
54 | pass: Env.get('SMTP_PASSWORD'), | ||
55 | type: 'login', | ||
56 | }, | ||
57 | maxConnections: 5, | ||
58 | maxMessages: 100, | ||
59 | rateLimit: 10, | ||
60 | }, | ||
61 | |||
62 | /* | ||
63 | |-------------------------------------------------------------------------- | ||
64 | | SES | ||
65 | |-------------------------------------------------------------------------- | ||
66 | | | ||
67 | | Uses Amazon SES for sending emails. You will have to install the aws-sdk | ||
68 | | when using this driver. | ||
69 | | | ||
70 | | ``` | ||
71 | | npm i aws-sdk | ||
72 | | ``` | ||
73 | | | ||
74 | */ | ||
75 | ses: { | ||
76 | driver: 'ses', | ||
77 | apiVersion: '2010-12-01', | ||
78 | key: Env.get('SES_ACCESS_KEY'), | ||
79 | secret: Env.get('SES_ACCESS_SECRET'), | ||
80 | region: Env.get('SES_REGION'), | ||
81 | sslEnabled: true, | ||
82 | sendingRate: 10, | ||
83 | maxConnections: 5, | ||
84 | }, | ||
85 | |||
86 | /* | ||
87 | |-------------------------------------------------------------------------- | ||
88 | | Mailgun | ||
89 | |-------------------------------------------------------------------------- | ||
90 | | | ||
91 | | Uses Mailgun service for sending emails. | ||
92 | | | ||
93 | | If you are using an EU domain. Ensure to change the baseUrl to hit the | ||
94 | | europe endpoint (https://api.eu.mailgun.net/v3). | ||
95 | | | ||
96 | */ | ||
97 | mailgun: { | ||
98 | driver: 'mailgun', | ||
99 | baseUrl: 'https://api.mailgun.net/v3', | ||
100 | key: Env.get('MAILGUN_API_KEY'), | ||
101 | domain: Env.get('MAILGUN_DOMAIN'), | ||
102 | }, | ||
103 | |||
104 | /* | ||
105 | |-------------------------------------------------------------------------- | ||
106 | | SparkPost | ||
107 | |-------------------------------------------------------------------------- | ||
108 | | | ||
109 | | Uses Sparkpost service for sending emails. | ||
110 | | | ||
111 | */ | ||
112 | sparkpost: { | ||
113 | driver: 'sparkpost', | ||
114 | baseUrl: 'https://api.sparkpost.com/api/v1', | ||
115 | key: Env.get('SPARKPOST_API_KEY'), | ||
116 | }, | ||
117 | }, | ||
118 | }); | ||
diff --git a/config/persona.js b/config/persona.js deleted file mode 100644 index c259a06..0000000 --- a/config/persona.js +++ /dev/null | |||
@@ -1,94 +0,0 @@ | |||
1 | /* | ||
2 | |-------------------------------------------------------------------------- | ||
3 | | Persona | ||
4 | |-------------------------------------------------------------------------- | ||
5 | | | ||
6 | | The persona is a simple and opinionated service to register, login and | ||
7 | | manage user account | ||
8 | | | ||
9 | */ | ||
10 | |||
11 | module.exports = { | ||
12 | /* | ||
13 | |-------------------------------------------------------------------------- | ||
14 | | Uids | ||
15 | |-------------------------------------------------------------------------- | ||
16 | | | ||
17 | | An array of fields, that can be used to indetify a user uniquely. During | ||
18 | | login and reset password, these fields be checked against the user | ||
19 | | input | ||
20 | | | ||
21 | */ | ||
22 | uids: ['email'], | ||
23 | |||
24 | /* | ||
25 | |-------------------------------------------------------------------------- | ||
26 | | Email field | ||
27 | |-------------------------------------------------------------------------- | ||
28 | | | ||
29 | | The name of the email field inside the database and the user payload. | ||
30 | | | ||
31 | */ | ||
32 | email: 'email', | ||
33 | |||
34 | /* | ||
35 | |-------------------------------------------------------------------------- | ||
36 | | Password | ||
37 | |-------------------------------------------------------------------------- | ||
38 | | | ||
39 | | The password field to be used for verifying and storing user password | ||
40 | | | ||
41 | */ | ||
42 | password: 'password', | ||
43 | |||
44 | /* | ||
45 | |-------------------------------------------------------------------------- | ||
46 | | New account state | ||
47 | |-------------------------------------------------------------------------- | ||
48 | | | ||
49 | | State of user when a new account is created | ||
50 | | | ||
51 | */ | ||
52 | newAccountState: 'pending', | ||
53 | |||
54 | /* | ||
55 | |-------------------------------------------------------------------------- | ||
56 | | Verified account state | ||
57 | |-------------------------------------------------------------------------- | ||
58 | | | ||
59 | | State of user after they verify their email address | ||
60 | | | ||
61 | */ | ||
62 | verifiedAccountState: 'active', | ||
63 | |||
64 | /* | ||
65 | |-------------------------------------------------------------------------- | ||
66 | | Model | ||
67 | |-------------------------------------------------------------------------- | ||
68 | | | ||
69 | | The model to be used for verifying and creating users | ||
70 | | | ||
71 | */ | ||
72 | model: 'App/Models/User', | ||
73 | |||
74 | /* | ||
75 | |-------------------------------------------------------------------------- | ||
76 | | Date Format | ||
77 | |-------------------------------------------------------------------------- | ||
78 | | | ||
79 | | The date format for the tokens table. It is required to calculate the | ||
80 | | expiry of a token. | ||
81 | | | ||
82 | */ | ||
83 | dateFormat: 'YYYY-MM-DD HH:mm:ss', | ||
84 | |||
85 | /* | ||
86 | |-------------------------------------------------------------------------- | ||
87 | | Validation messages | ||
88 | |-------------------------------------------------------------------------- | ||
89 | | | ||
90 | | An object of validation messages to be used when validation fails. | ||
91 | | | ||
92 | */ | ||
93 | validationMessages: () => ({}), | ||
94 | }; | ||
diff --git a/config/session.js b/config/session.js deleted file mode 100644 index b2174da..0000000 --- a/config/session.js +++ /dev/null | |||
@@ -1,98 +0,0 @@ | |||
1 | |||
2 | const Env = use('Env'); | ||
3 | |||
4 | module.exports = { | ||
5 | /* | ||
6 | |-------------------------------------------------------------------------- | ||
7 | | Session Driver | ||
8 | |-------------------------------------------------------------------------- | ||
9 | | | ||
10 | | The session driver to be used for storing session values. It can be | ||
11 | | cookie, file or redis. | ||
12 | | | ||
13 | | For `redis` driver, make sure to install and register `@adonisjs/redis` | ||
14 | | | ||
15 | */ | ||
16 | driver: Env.get('SESSION_DRIVER', 'cookie'), | ||
17 | |||
18 | /* | ||
19 | |-------------------------------------------------------------------------- | ||
20 | | Cookie Name | ||
21 | |-------------------------------------------------------------------------- | ||
22 | | | ||
23 | | The name of the cookie to be used for saving session id. Session ids | ||
24 | | are signed and encrypted. | ||
25 | | | ||
26 | */ | ||
27 | cookieName: 'adonis-session', | ||
28 | |||
29 | /* | ||
30 | |-------------------------------------------------------------------------- | ||
31 | | Clear session when browser closes | ||
32 | |-------------------------------------------------------------------------- | ||
33 | | | ||
34 | | If this value is true, the session cookie will be temporary and will be | ||
35 | | removed when browser closes. | ||
36 | | | ||
37 | */ | ||
38 | clearWithBrowser: true, | ||
39 | |||
40 | /* | ||
41 | |-------------------------------------------------------------------------- | ||
42 | | Session age | ||
43 | |-------------------------------------------------------------------------- | ||
44 | | | ||
45 | | This value is only used when `clearWithBrowser` is set to false. The | ||
46 | | age must be a valid https://npmjs.org/package/ms string or should | ||
47 | | be in milliseconds. | ||
48 | | | ||
49 | | Valid values are: | ||
50 | | '2h', '10d', '5y', '2.5 hrs' | ||
51 | | | ||
52 | */ | ||
53 | age: '2h', | ||
54 | |||
55 | /* | ||
56 | |-------------------------------------------------------------------------- | ||
57 | | Cookie options | ||
58 | |-------------------------------------------------------------------------- | ||
59 | | | ||
60 | | Cookie options defines the options to be used for setting up session | ||
61 | | cookie | ||
62 | | | ||
63 | */ | ||
64 | cookie: { | ||
65 | httpOnly: true, | ||
66 | path: '/', | ||
67 | sameSite: true, | ||
68 | }, | ||
69 | |||
70 | /* | ||
71 | |-------------------------------------------------------------------------- | ||
72 | | Sessions location | ||
73 | |-------------------------------------------------------------------------- | ||
74 | | | ||
75 | | If driver is set to file, we need to define the relative location from | ||
76 | | the temporary path or absolute url to any location. | ||
77 | | | ||
78 | */ | ||
79 | file: { | ||
80 | location: 'sessions', | ||
81 | }, | ||
82 | |||
83 | /* | ||
84 | |-------------------------------------------------------------------------- | ||
85 | | Redis config | ||
86 | |-------------------------------------------------------------------------- | ||
87 | | | ||
88 | | The configuration for the redis driver. | ||
89 | | | ||
90 | */ | ||
91 | redis: { | ||
92 | host: '127.0.0.1', | ||
93 | port: 6379, | ||
94 | password: null, | ||
95 | db: 0, | ||
96 | keyPrefix: '', | ||
97 | }, | ||
98 | }; | ||
diff --git a/config/session.ts b/config/session.ts new file mode 100644 index 0000000..fbf8c7c --- /dev/null +++ b/config/session.ts | |||
@@ -0,0 +1,116 @@ | |||
1 | /** | ||
2 | * Config source: https://git.io/JeYHp | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this config | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import Env from '@ioc:Adonis/Core/Env'; | ||
9 | import Application from '@ioc:Adonis/Core/Application'; | ||
10 | import { sessionConfig } from '@adonisjs/session/build/config'; | ||
11 | |||
12 | export default sessionConfig({ | ||
13 | /* | ||
14 | |-------------------------------------------------------------------------- | ||
15 | | Enable/Disable sessions | ||
16 | |-------------------------------------------------------------------------- | ||
17 | | | ||
18 | | Setting the following property to "false" will disable the session for the | ||
19 | | entire application | ||
20 | | | ||
21 | */ | ||
22 | enabled: true, | ||
23 | |||
24 | /* | ||
25 | |-------------------------------------------------------------------------- | ||
26 | | Driver | ||
27 | |-------------------------------------------------------------------------- | ||
28 | | | ||
29 | | The session driver to use. You can choose between one of the following | ||
30 | | drivers. | ||
31 | | | ||
32 | | - cookie (Uses signed cookies to store session values) | ||
33 | | - file (Uses filesystem to store session values) | ||
34 | | - redis (Uses redis. Make sure to install "@adonisjs/redis" as well) | ||
35 | | | ||
36 | | Note: Switching drivers will make existing sessions invalid. | ||
37 | | | ||
38 | */ | ||
39 | driver: Env.get('SESSION_DRIVER', 'cookie'), | ||
40 | |||
41 | /* | ||
42 | |-------------------------------------------------------------------------- | ||
43 | | Cookie name | ||
44 | |-------------------------------------------------------------------------- | ||
45 | | | ||
46 | | The name of the cookie that will hold the session id. | ||
47 | | | ||
48 | */ | ||
49 | cookieName: 'adonis-session', | ||
50 | |||
51 | /* | ||
52 | |-------------------------------------------------------------------------- | ||
53 | | Clear session when browser closes | ||
54 | |-------------------------------------------------------------------------- | ||
55 | | | ||
56 | | Whether or not you want to destroy the session when browser closes. Setting | ||
57 | | this value to `true` will ignore the `age`. | ||
58 | | | ||
59 | */ | ||
60 | clearWithBrowser: true, | ||
61 | |||
62 | /* | ||
63 | |-------------------------------------------------------------------------- | ||
64 | | Session age | ||
65 | |-------------------------------------------------------------------------- | ||
66 | | | ||
67 | | The duration for which session stays active after no activity. A new HTTP | ||
68 | | request to the server is considered as activity. | ||
69 | | | ||
70 | | The value can be a number in milliseconds or a string that must be valid | ||
71 | | as per https://npmjs.org/package/ms package. | ||
72 | | | ||
73 | | Example: `2 days`, `2.5 hrs`, `1y`, `5s` and so on. | ||
74 | | | ||
75 | */ | ||
76 | age: '2h', | ||
77 | |||
78 | /* | ||
79 | |-------------------------------------------------------------------------- | ||
80 | | Cookie values | ||
81 | |-------------------------------------------------------------------------- | ||
82 | | | ||
83 | | The cookie settings are used to setup the session id cookie and also the | ||
84 | | driver will use the same values. | ||
85 | | | ||
86 | */ | ||
87 | cookie: { | ||
88 | path: '/', | ||
89 | httpOnly: true, | ||
90 | sameSite: false, | ||
91 | }, | ||
92 | |||
93 | /* | ||
94 | |-------------------------------------------------------------------------- | ||
95 | | Configuration for the file driver | ||
96 | |-------------------------------------------------------------------------- | ||
97 | | | ||
98 | | The file driver needs absolute path to the directory in which sessions | ||
99 | | must be stored. | ||
100 | | | ||
101 | */ | ||
102 | file: { | ||
103 | location: Application.tmpPath('sessions'), | ||
104 | }, | ||
105 | |||
106 | /* | ||
107 | |-------------------------------------------------------------------------- | ||
108 | | Redis driver | ||
109 | |-------------------------------------------------------------------------- | ||
110 | | | ||
111 | | The redis connection you want session driver to use. The same connection | ||
112 | | must be defined inside `config/redis.ts` file as well. | ||
113 | | | ||
114 | */ | ||
115 | redisConnection: 'local', | ||
116 | }); | ||
diff --git a/config/shield.js b/config/shield.js deleted file mode 100644 index 9849d29..0000000 --- a/config/shield.js +++ /dev/null | |||
@@ -1,144 +0,0 @@ | |||
1 | |||
2 | module.exports = { | ||
3 | /* | ||
4 | |-------------------------------------------------------------------------- | ||
5 | | Content Security Policy | ||
6 | |-------------------------------------------------------------------------- | ||
7 | | | ||
8 | | Content security policy filters out the origins not allowed to execute | ||
9 | | and load resources like scripts, styles and fonts. There are wide | ||
10 | | variety of options to choose from. | ||
11 | */ | ||
12 | csp: { | ||
13 | /* | ||
14 | |-------------------------------------------------------------------------- | ||
15 | | Directives | ||
16 | |-------------------------------------------------------------------------- | ||
17 | | | ||
18 | | All directives are defined in camelCase and here is the list of | ||
19 | | available directives and their possible values. | ||
20 | | | ||
21 | | https://content-security-policy.com | ||
22 | | | ||
23 | | @example | ||
24 | | directives: { | ||
25 | | defaultSrc: ['self', '@nonce', 'cdnjs.cloudflare.com'] | ||
26 | | } | ||
27 | | | ||
28 | */ | ||
29 | directives: { | ||
30 | }, | ||
31 | /* | ||
32 | |-------------------------------------------------------------------------- | ||
33 | | Report only | ||
34 | |-------------------------------------------------------------------------- | ||
35 | | | ||
36 | | Setting `reportOnly=true` will not block the scripts from running and | ||
37 | | instead report them to a URL. | ||
38 | | | ||
39 | */ | ||
40 | reportOnly: false, | ||
41 | /* | ||
42 | |-------------------------------------------------------------------------- | ||
43 | | Set all headers | ||
44 | |-------------------------------------------------------------------------- | ||
45 | | | ||
46 | | Headers staring with `X` have been depreciated, since all major browsers | ||
47 | | supports the standard CSP header. So its better to disable deperciated | ||
48 | | headers, unless you want them to be set. | ||
49 | | | ||
50 | */ | ||
51 | setAllHeaders: false, | ||
52 | |||
53 | /* | ||
54 | |-------------------------------------------------------------------------- | ||
55 | | Disable on android | ||
56 | |-------------------------------------------------------------------------- | ||
57 | | | ||
58 | | Certain versions of android are buggy with CSP policy. So you can set | ||
59 | | this value to true, to disable it for Android versions with buggy | ||
60 | | behavior. | ||
61 | | | ||
62 | | Here is an issue reported on a different package, but helpful to read | ||
63 | | if you want to know the behavior. https://github.com/helmetjs/helmet/pull/82 | ||
64 | | | ||
65 | */ | ||
66 | disableAndroid: true, | ||
67 | }, | ||
68 | |||
69 | /* | ||
70 | |-------------------------------------------------------------------------- | ||
71 | | X-XSS-Protection | ||
72 | |-------------------------------------------------------------------------- | ||
73 | | | ||
74 | | X-XSS Protection saves from applications from XSS attacks. It is adopted | ||
75 | | by IE and later followed by some other browsers. | ||
76 | | | ||
77 | | Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection | ||
78 | | | ||
79 | */ | ||
80 | xss: { | ||
81 | enabled: true, | ||
82 | enableOnOldIE: false, | ||
83 | }, | ||
84 | |||
85 | /* | ||
86 | |-------------------------------------------------------------------------- | ||
87 | | Iframe Options | ||
88 | |-------------------------------------------------------------------------- | ||
89 | | | ||
90 | | xframe defines whether or not your website can be embedded inside an | ||
91 | | iframe. Choose from one of the following options. | ||
92 | | @available options | ||
93 | | DENY, SAMEORIGIN, ALLOW-FROM http://example.com | ||
94 | | | ||
95 | | Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options | ||
96 | */ | ||
97 | xframe: 'DENY', | ||
98 | |||
99 | /* | ||
100 | |-------------------------------------------------------------------------- | ||
101 | | No Sniff | ||
102 | |-------------------------------------------------------------------------- | ||
103 | | | ||
104 | | Browsers have a habit of sniffing content-type of a response. Which means | ||
105 | | files with .txt extension containing Javascript code will be executed as | ||
106 | | Javascript. You can disable this behavior by setting nosniff to false. | ||
107 | | | ||
108 | | Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options | ||
109 | | | ||
110 | */ | ||
111 | nosniff: true, | ||
112 | |||
113 | /* | ||
114 | |-------------------------------------------------------------------------- | ||
115 | | No Open | ||
116 | |-------------------------------------------------------------------------- | ||
117 | | | ||
118 | | IE users can execute webpages in the context of your website, which is | ||
119 | | a serious security risk. Below option will manage this for you. | ||
120 | | | ||
121 | */ | ||
122 | noopen: true, | ||
123 | |||
124 | /* | ||
125 | |-------------------------------------------------------------------------- | ||
126 | | CSRF Protection | ||
127 | |-------------------------------------------------------------------------- | ||
128 | | | ||
129 | | CSRF Protection adds another layer of security by making sure, actionable | ||
130 | | routes does have a valid token to execute an action. | ||
131 | | | ||
132 | */ | ||
133 | csrf: { | ||
134 | enable: true, | ||
135 | methods: ['POST', 'PUT', 'DELETE'], | ||
136 | filterUris: [], | ||
137 | cookieOptions: { | ||
138 | httpOnly: true, | ||
139 | sameSite: true, | ||
140 | path: '/', | ||
141 | maxAge: 7200, | ||
142 | }, | ||
143 | }, | ||
144 | }; | ||
diff --git a/config/shield.ts b/config/shield.ts new file mode 100644 index 0000000..3566e1c --- /dev/null +++ b/config/shield.ts | |||
@@ -0,0 +1,243 @@ | |||
1 | /** | ||
2 | * Config source: https://git.io/Jvwvt | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this config | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import Env from '@ioc:Adonis/Core/Env'; | ||
9 | import { ShieldConfig } from '@ioc:Adonis/Addons/Shield'; | ||
10 | |||
11 | /* | ||
12 | |-------------------------------------------------------------------------- | ||
13 | | Content Security Policy | ||
14 | |-------------------------------------------------------------------------- | ||
15 | | | ||
16 | | Content security policy filters out the origins not allowed to execute | ||
17 | | and load resources like scripts, styles and fonts. There are wide | ||
18 | | variety of options to choose from. | ||
19 | */ | ||
20 | export const csp: ShieldConfig['csp'] = { | ||
21 | /* | ||
22 | |-------------------------------------------------------------------------- | ||
23 | | Enable/disable CSP | ||
24 | |-------------------------------------------------------------------------- | ||
25 | | | ||
26 | | The CSP rules are disabled by default for seamless onboarding. | ||
27 | | | ||
28 | */ | ||
29 | enabled: false, | ||
30 | |||
31 | /* | ||
32 | |-------------------------------------------------------------------------- | ||
33 | | Directives | ||
34 | |-------------------------------------------------------------------------- | ||
35 | | | ||
36 | | All directives are defined in camelCase and here is the list of | ||
37 | | available directives and their possible values. | ||
38 | | | ||
39 | | https://content-security-policy.com | ||
40 | | | ||
41 | | @example | ||
42 | | directives: { | ||
43 | | defaultSrc: ["'self'", '@nonce', 'cdnjs.cloudflare.com'] | ||
44 | | } | ||
45 | | | ||
46 | */ | ||
47 | directives: {}, | ||
48 | |||
49 | /* | ||
50 | |-------------------------------------------------------------------------- | ||
51 | | Report only | ||
52 | |-------------------------------------------------------------------------- | ||
53 | | | ||
54 | | Setting `reportOnly=true` will not block the scripts from running and | ||
55 | | instead report them to a URL. | ||
56 | | | ||
57 | */ | ||
58 | reportOnly: false, | ||
59 | }; | ||
60 | |||
61 | /* | ||
62 | |-------------------------------------------------------------------------- | ||
63 | | CSRF Protection | ||
64 | |-------------------------------------------------------------------------- | ||
65 | | | ||
66 | | CSRF Protection adds another layer of security by making sure, actionable | ||
67 | | routes does have a valid token to execute an action. | ||
68 | | | ||
69 | */ | ||
70 | export const csrf: ShieldConfig['csrf'] = { | ||
71 | /* | ||
72 | |-------------------------------------------------------------------------- | ||
73 | | Enable/Disable CSRF | ||
74 | |-------------------------------------------------------------------------- | ||
75 | */ | ||
76 | enabled: Env.get('NODE_ENV') === 'production', | ||
77 | |||
78 | /* | ||
79 | |-------------------------------------------------------------------------- | ||
80 | | Routes to Ignore | ||
81 | |-------------------------------------------------------------------------- | ||
82 | | | ||
83 | | Define an array of route patterns that you want to ignore from CSRF | ||
84 | | validation. Make sure the route patterns are started with a leading | ||
85 | | slash. Example: | ||
86 | | | ||
87 | | `/foo/bar` | ||
88 | | | ||
89 | | Also you can define a function that is evaluated on every HTTP Request. | ||
90 | | ``` | ||
91 | | exceptRoutes: ({ request }) => request.url().includes('/api') | ||
92 | | ``` | ||
93 | | | ||
94 | */ | ||
95 | exceptRoutes: ctx => { | ||
96 | // ignore all routes starting with /v1/ (api) | ||
97 | return ( | ||
98 | ctx.request.url().includes('/v1/') || | ||
99 | ctx.request.url().includes('/import') | ||
100 | ); | ||
101 | }, | ||
102 | |||
103 | /* | ||
104 | |-------------------------------------------------------------------------- | ||
105 | | Enable Sharing Token Via Cookie | ||
106 | |-------------------------------------------------------------------------- | ||
107 | | | ||
108 | | When the following flag is enabled, AdonisJS will drop `XSRF-TOKEN` | ||
109 | | cookie that frontend frameworks can read and return back as a | ||
110 | | `X-XSRF-TOKEN` header. | ||
111 | | | ||
112 | | The cookie has `httpOnly` flag set to false, so it is little insecure and | ||
113 | | can be turned off when you are not using a frontend framework making | ||
114 | | AJAX requests. | ||
115 | | | ||
116 | */ | ||
117 | enableXsrfCookie: true, | ||
118 | |||
119 | /* | ||
120 | |-------------------------------------------------------------------------- | ||
121 | | Methods to Validate | ||
122 | |-------------------------------------------------------------------------- | ||
123 | | | ||
124 | | Define an array of HTTP methods to be validated for a valid CSRF token. | ||
125 | | | ||
126 | */ | ||
127 | methods: ['POST', 'PUT', 'PATCH', 'DELETE'], | ||
128 | }; | ||
129 | |||
130 | /* | ||
131 | |-------------------------------------------------------------------------- | ||
132 | | DNS Prefetching | ||
133 | |-------------------------------------------------------------------------- | ||
134 | | | ||
135 | | DNS prefetching allows browsers to proactively perform domain name | ||
136 | | resolution in background. | ||
137 | | | ||
138 | | Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control | ||
139 | | | ||
140 | */ | ||
141 | export const dnsPrefetch: ShieldConfig['dnsPrefetch'] = { | ||
142 | /* | ||
143 | |-------------------------------------------------------------------------- | ||
144 | | Enable/disable this feature | ||
145 | |-------------------------------------------------------------------------- | ||
146 | */ | ||
147 | enabled: true, | ||
148 | |||
149 | /* | ||
150 | |-------------------------------------------------------------------------- | ||
151 | | Allow or Dis-Allow Explicitly | ||
152 | |-------------------------------------------------------------------------- | ||
153 | | | ||
154 | | The `enabled` boolean does not set `X-DNS-Prefetch-Control` header. However | ||
155 | | the `allow` boolean controls the value of `X-DNS-Prefetch-Control` header. | ||
156 | | | ||
157 | | - When `allow = true`, then `X-DNS-Prefetch-Control = 'on'` | ||
158 | | - When `allow = false`, then `X-DNS-Prefetch-Control = 'off'` | ||
159 | | | ||
160 | */ | ||
161 | allow: true, | ||
162 | }; | ||
163 | |||
164 | /* | ||
165 | |-------------------------------------------------------------------------- | ||
166 | | Iframe Options | ||
167 | |-------------------------------------------------------------------------- | ||
168 | | | ||
169 | | xFrame defines whether or not your website can be embedded inside an | ||
170 | | iframe. Choose from one of the following options. | ||
171 | | | ||
172 | | - DENY | ||
173 | | - SAMEORIGIN | ||
174 | | - ALLOW-FROM http://example.com | ||
175 | | | ||
176 | | Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options | ||
177 | */ | ||
178 | export const xFrame: ShieldConfig['xFrame'] = { | ||
179 | enabled: true, | ||
180 | action: 'DENY', | ||
181 | }; | ||
182 | |||
183 | /* | ||
184 | |-------------------------------------------------------------------------- | ||
185 | | Http Strict Transport Security | ||
186 | |-------------------------------------------------------------------------- | ||
187 | | | ||
188 | | A security to ensure that a browser always makes a connection over | ||
189 | | HTTPS. | ||
190 | | | ||
191 | | Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security | ||
192 | | | ||
193 | */ | ||
194 | export const hsts: ShieldConfig['hsts'] = { | ||
195 | enabled: true, | ||
196 | /* | ||
197 | |-------------------------------------------------------------------------- | ||
198 | | Max Age | ||
199 | |-------------------------------------------------------------------------- | ||
200 | | | ||
201 | | Control, how long the browser should remember that a site is only to be | ||
202 | | accessed using HTTPS. | ||
203 | | | ||
204 | */ | ||
205 | maxAge: '180 days', | ||
206 | |||
207 | /* | ||
208 | |-------------------------------------------------------------------------- | ||
209 | | Include Subdomains | ||
210 | |-------------------------------------------------------------------------- | ||
211 | | | ||
212 | | Apply rules on the subdomains as well. | ||
213 | | | ||
214 | */ | ||
215 | includeSubDomains: true, | ||
216 | |||
217 | /* | ||
218 | |-------------------------------------------------------------------------- | ||
219 | | Preloading | ||
220 | |-------------------------------------------------------------------------- | ||
221 | | | ||
222 | | Google maintains a service to register your domain and it will preload | ||
223 | | the HSTS policy. Learn more https://hstspreload.org/ | ||
224 | | | ||
225 | */ | ||
226 | preload: false, | ||
227 | }; | ||
228 | |||
229 | /* | ||
230 | |-------------------------------------------------------------------------- | ||
231 | | No Sniff | ||
232 | |-------------------------------------------------------------------------- | ||
233 | | | ||
234 | | Browsers have a habit of sniffing content-type of a response. Which means | ||
235 | | files with .txt extension containing Javascript code will be executed as | ||
236 | | Javascript. You can disable this behavior by setting nosniff to false. | ||
237 | | | ||
238 | | Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options | ||
239 | | | ||
240 | */ | ||
241 | export const contentTypeSniffing: ShieldConfig['contentTypeSniffing'] = { | ||
242 | enabled: true, | ||
243 | }; | ||
diff --git a/config/static.ts b/config/static.ts new file mode 100644 index 0000000..1f7c88f --- /dev/null +++ b/config/static.ts | |||
@@ -0,0 +1,10 @@ | |||
1 | import { AssetsConfig } from '@ioc:Adonis/Core/Static'; | ||
2 | |||
3 | const staticConfig: AssetsConfig = { | ||
4 | enabled: true, | ||
5 | dotFiles: 'ignore', | ||
6 | etag: true, | ||
7 | lastModified: true, | ||
8 | }; | ||
9 | |||
10 | export default staticConfig; | ||
diff --git a/contracts/auth.ts b/contracts/auth.ts new file mode 100644 index 0000000..1625116 --- /dev/null +++ b/contracts/auth.ts | |||
@@ -0,0 +1,103 @@ | |||
1 | /** | ||
2 | * Contract source: https://git.io/JOdz5 | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import User from 'App/Models/User'; | ||
9 | import { JWTGuardConfig, JWTGuardContract } from '@ioc:Adonis/Addons/Jwt'; | ||
10 | |||
11 | declare module '@ioc:Adonis/Addons/Auth' { | ||
12 | /* | ||
13 | |-------------------------------------------------------------------------- | ||
14 | | Providers | ||
15 | |-------------------------------------------------------------------------- | ||
16 | | | ||
17 | | The providers are used to fetch users. The Auth module comes pre-bundled | ||
18 | | with two providers that are `Lucid` and `Database`. Both uses database | ||
19 | | to fetch user details. | ||
20 | | | ||
21 | | You can also create and register your own custom providers. | ||
22 | | | ||
23 | */ | ||
24 | interface ProvidersList { | ||
25 | /* | ||
26 | |-------------------------------------------------------------------------- | ||
27 | | User Provider | ||
28 | |-------------------------------------------------------------------------- | ||
29 | | | ||
30 | | The following provider uses Lucid models as a driver for fetching user | ||
31 | | details from the database for authentication. | ||
32 | | | ||
33 | | You can create multiple providers using the same underlying driver with | ||
34 | | different Lucid models. | ||
35 | | | ||
36 | */ | ||
37 | user: { | ||
38 | implementation: LucidProviderContract<typeof User>; | ||
39 | config: LucidProviderConfig<typeof User>; | ||
40 | }; | ||
41 | } | ||
42 | |||
43 | /* | ||
44 | |-------------------------------------------------------------------------- | ||
45 | | Guards | ||
46 | |-------------------------------------------------------------------------- | ||
47 | | | ||
48 | | The guards are used for authenticating users using different drivers. | ||
49 | | The auth module comes with 3 different guards. | ||
50 | | | ||
51 | | - SessionGuardContract | ||
52 | | - BasicAuthGuardContract | ||
53 | | - OATGuardContract ( Opaque access token ) | ||
54 | | | ||
55 | | Every guard needs a provider for looking up users from the database. | ||
56 | | | ||
57 | */ | ||
58 | interface GuardsList { | ||
59 | /* | ||
60 | |-------------------------------------------------------------------------- | ||
61 | | Web Guard | ||
62 | |-------------------------------------------------------------------------- | ||
63 | | | ||
64 | | The web guard uses sessions for maintaining user login state. It uses | ||
65 | | the `user` provider for fetching user details. | ||
66 | | | ||
67 | */ | ||
68 | web: { | ||
69 | implementation: SessionGuardContract<'user', 'web'>; | ||
70 | config: SessionGuardConfig<'user'>; | ||
71 | }; | ||
72 | /* | ||
73 | |-------------------------------------------------------------------------- | ||
74 | | OAT Guard | ||
75 | |-------------------------------------------------------------------------- | ||
76 | | | ||
77 | | OAT, stands for (Opaque access tokens) guard uses database backed tokens | ||
78 | | to authenticate requests. | ||
79 | | | ||
80 | */ | ||
81 | api: { | ||
82 | implementation: OATGuardContract<'user', 'api'>; | ||
83 | config: OATGuardConfig<'user'>; | ||
84 | }; | ||
85 | /* | ||
86 | |-------------------------------------------------------------------------- | ||
87 | | Basic Auth Guard | ||
88 | |-------------------------------------------------------------------------- | ||
89 | | | ||
90 | | The basic guard uses basic auth for maintaining user login state. It uses | ||
91 | | the `user` provider for fetching user details. | ||
92 | | | ||
93 | */ | ||
94 | basic: { | ||
95 | implementation: BasicAuthGuardContract<'user', 'basic'>; | ||
96 | config: BasicAuthGuardConfig<'user'>; | ||
97 | }; | ||
98 | jwt: { | ||
99 | implementation: JWTGuardContract<'user', 'api'>; | ||
100 | config: JWTGuardConfig<'user'>; | ||
101 | }; | ||
102 | } | ||
103 | } | ||
diff --git a/contracts/drive.ts b/contracts/drive.ts new file mode 100644 index 0000000..47b70f3 --- /dev/null +++ b/contracts/drive.ts | |||
@@ -0,0 +1,13 @@ | |||
1 | /** | ||
2 | * Contract source: https://git.io/JBt3I | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this contract | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import { InferDisksFromConfig } from '@adonisjs/core/build/config'; | ||
9 | import driveConfig from '../config/drive'; | ||
10 | |||
11 | declare module '@ioc:Adonis/Core/Drive' { | ||
12 | interface DisksList extends InferDisksFromConfig<typeof driveConfig> {} | ||
13 | } | ||
diff --git a/contracts/env.ts b/contracts/env.ts new file mode 100644 index 0000000..e1fd92e --- /dev/null +++ b/contracts/env.ts | |||
@@ -0,0 +1,23 @@ | |||
1 | /** | ||
2 | * Contract source: https://git.io/JTm6U | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this contract | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | declare module '@ioc:Adonis/Core/Env' { | ||
9 | /* | ||
10 | |-------------------------------------------------------------------------- | ||
11 | | Getting types for validated environment variables | ||
12 | |-------------------------------------------------------------------------- | ||
13 | | | ||
14 | | The `default` export from the "../env.ts" file exports types for the | ||
15 | | validated environment variables. Here we merge them with the `EnvTypes` | ||
16 | | interface so that you can enjoy intellisense when using the "Env" | ||
17 | | module. | ||
18 | | | ||
19 | */ | ||
20 | |||
21 | type CustomTypes = typeof import('../env').default; | ||
22 | interface EnvTypes extends CustomTypes {} | ||
23 | } | ||
diff --git a/contracts/events.ts b/contracts/events.ts new file mode 100644 index 0000000..541bdc2 --- /dev/null +++ b/contracts/events.ts | |||
@@ -0,0 +1,33 @@ | |||
1 | /** | ||
2 | * Contract source: https://git.io/JfefG | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this contract | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import User from 'App/Models/User'; | ||
9 | |||
10 | declare module '@ioc:Adonis/Core/Event' { | ||
11 | /* | ||
12 | |-------------------------------------------------------------------------- | ||
13 | | Define typed events | ||
14 | |-------------------------------------------------------------------------- | ||
15 | | | ||
16 | | You can define types for events inside the following interface and | ||
17 | | AdonisJS will make sure that all listeners and emit calls adheres | ||
18 | | to the defined types. | ||
19 | | | ||
20 | | For example: | ||
21 | | | ||
22 | | interface EventsList { | ||
23 | | 'new:user': UserModel | ||
24 | | } | ||
25 | | | ||
26 | | Now calling `Event.emit('new:user')` will statically ensure that passed value is | ||
27 | | an instance of the the UserModel only. | ||
28 | | | ||
29 | */ | ||
30 | interface EventsList { | ||
31 | 'forgot:password': { user: User; token: string }; | ||
32 | } | ||
33 | } | ||
diff --git a/contracts/hash.ts b/contracts/hash.ts new file mode 100644 index 0000000..af336c7 --- /dev/null +++ b/contracts/hash.ts | |||
@@ -0,0 +1,26 @@ | |||
1 | /** | ||
2 | * Contract source: https://git.io/Jfefs | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this contract | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import { InferListFromConfig } from '@adonisjs/core/build/config'; | ||
9 | import hashConfig from '../config/hash'; | ||
10 | |||
11 | declare module '@ioc:Adonis/Core/Hash' { | ||
12 | interface HashersList extends InferListFromConfig<typeof hashConfig> { | ||
13 | bcrypt: { | ||
14 | config: BcryptConfig; | ||
15 | implementation: BcryptContract; | ||
16 | }; | ||
17 | argon: { | ||
18 | config: ArgonConfig; | ||
19 | implementation: ArgonContract; | ||
20 | }; | ||
21 | legacy: { | ||
22 | config: BcryptConfig; | ||
23 | implementation: HashDriverContract; | ||
24 | }; | ||
25 | } | ||
26 | } | ||
diff --git a/contracts/mail.ts b/contracts/mail.ts new file mode 100644 index 0000000..0ea307f --- /dev/null +++ b/contracts/mail.ts | |||
@@ -0,0 +1,13 @@ | |||
1 | /** | ||
2 | * Contract source: https://git.io/JvgAT | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this contract | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import { InferMailersFromConfig } from '@adonisjs/mail/build/config'; | ||
9 | import mailConfig from '../config/mail'; | ||
10 | |||
11 | declare module '@ioc:Adonis/Addons/Mail' { | ||
12 | interface MailersList extends InferMailersFromConfig<typeof mailConfig> {} | ||
13 | } | ||
diff --git a/contracts/tests.ts b/contracts/tests.ts new file mode 100644 index 0000000..fec995d --- /dev/null +++ b/contracts/tests.ts | |||
@@ -0,0 +1,19 @@ | |||
1 | /** | ||
2 | * Contract source: https://bit.ly/3DP1ypf | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this contract | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import '@japa/runner'; | ||
9 | |||
10 | declare module '@japa/runner' { | ||
11 | interface TestContext { | ||
12 | // Extend context | ||
13 | } | ||
14 | |||
15 | // eslint-disable-next-line @typescript-eslint/no-unused-vars | ||
16 | interface Test<TestData> { | ||
17 | // Extend test | ||
18 | } | ||
19 | } | ||
diff --git a/data/.gitignore b/data/.gitignore new file mode 100644 index 0000000..6150054 --- /dev/null +++ b/data/.gitignore | |||
@@ -0,0 +1 @@ | |||
ferdium.sqlite | |||
diff --git a/database/factories/ServiceFactory.ts b/database/factories/ServiceFactory.ts new file mode 100644 index 0000000..f675063 --- /dev/null +++ b/database/factories/ServiceFactory.ts | |||
@@ -0,0 +1,8 @@ | |||
1 | import Service from 'App/Models/Service'; | ||
2 | import Factory from '@ioc:Adonis/Lucid/Factory'; | ||
3 | |||
4 | export default Factory.define(Service, ({ faker }) => ({ | ||
5 | name: faker.company.name(), | ||
6 | recipeId: faker.string.alphanumeric(9), | ||
7 | serviceId: faker.string.alphanumeric(10), | ||
8 | })).build(); | ||
diff --git a/database/factories/TokenFactory.ts b/database/factories/TokenFactory.ts new file mode 100644 index 0000000..5afc679 --- /dev/null +++ b/database/factories/TokenFactory.ts | |||
@@ -0,0 +1,17 @@ | |||
1 | import Token from 'App/Models/Token'; | ||
2 | import Factory from '@ioc:Adonis/Lucid/Factory'; | ||
3 | import { DateTime } from 'luxon'; | ||
4 | |||
5 | export default Factory.define(Token, async ({ faker }) => ({ | ||
6 | token: faker.string.alphanumeric(32), | ||
7 | type: 'forgot_password', | ||
8 | is_revoked: false, | ||
9 | created_at: DateTime.now(), | ||
10 | updated_at: DateTime.now(), | ||
11 | })) | ||
12 | .state( | ||
13 | 'old_token', | ||
14 | token => (token.updated_at = DateTime.now().minus({ hours: 25 })), | ||
15 | ) | ||
16 | .state('revoked', token => (token.is_revoked = true)) | ||
17 | .build(); | ||
diff --git a/database/factories/UserFactory.ts b/database/factories/UserFactory.ts new file mode 100644 index 0000000..ee6553e --- /dev/null +++ b/database/factories/UserFactory.ts | |||
@@ -0,0 +1,21 @@ | |||
1 | import User from 'App/Models/User'; | ||
2 | import Factory from '@ioc:Adonis/Lucid/Factory'; | ||
3 | import WorkspaceFactory from './WorkspaceFactory'; | ||
4 | import ServiceFactory from './ServiceFactory'; | ||
5 | import crypto from 'node:crypto'; | ||
6 | |||
7 | const hashedPassword = crypto | ||
8 | .createHash('sha256') | ||
9 | .update('password') | ||
10 | .digest('base64'); | ||
11 | |||
12 | export default Factory.define(User, async ({ faker }) => ({ | ||
13 | email: faker.internet.email(), | ||
14 | username: faker.internet.userName(), | ||
15 | password: hashedPassword, | ||
16 | // eslint-disable-next-line unicorn/prefer-string-replace-all | ||
17 | lastname: faker.person.lastName().replace(/'/g, ''), | ||
18 | })) | ||
19 | .relation('workspaces', () => WorkspaceFactory) | ||
20 | .relation('services', () => ServiceFactory) | ||
21 | .build(); | ||
diff --git a/database/factories/WorkspaceFactory.ts b/database/factories/WorkspaceFactory.ts new file mode 100644 index 0000000..40cda6b --- /dev/null +++ b/database/factories/WorkspaceFactory.ts | |||
@@ -0,0 +1,7 @@ | |||
1 | import Workspace from 'App/Models/Workspace'; | ||
2 | import Factory from '@ioc:Adonis/Lucid/Factory'; | ||
3 | |||
4 | export default Factory.define(Workspace, ({ faker }) => ({ | ||
5 | name: faker.internet.userName(), | ||
6 | workspaceId: faker.string.alphanumeric(10), | ||
7 | })).build(); | ||
diff --git a/database/factory.js b/database/factory.js deleted file mode 100644 index 550c5e6..0000000 --- a/database/factory.js +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | |||
2 | /* | ||
3 | |-------------------------------------------------------------------------- | ||
4 | | Factory | ||
5 | |-------------------------------------------------------------------------- | ||
6 | | | ||
7 | | Factories are used to define blueprints for database tables or Lucid | ||
8 | | models. Later you can use these blueprints to seed your database | ||
9 | | with dummy data. | ||
10 | | | ||
11 | */ | ||
12 | |||
13 | /** @type {import('@adonisjs/lucid/src/Factory')} */ | ||
14 | // const Factory = use('Factory') | ||
15 | |||
16 | // Factory.blueprint('App/Models/User', (faker) => { | ||
17 | // return { | ||
18 | // username: faker.username() | ||
19 | // } | ||
20 | // }) | ||
diff --git a/database/migrations/1503250034279_user.js b/database/migrations/1503250034279_user.js deleted file mode 100644 index 77f3cee..0000000 --- a/database/migrations/1503250034279_user.js +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | |||
2 | /** @type {import('@adonisjs/lucid/src/Schema')} */ | ||
3 | const Schema = use('Schema'); | ||
4 | |||
5 | class UserSchema extends Schema { | ||
6 | up() { | ||
7 | this.create('users', (table) => { | ||
8 | table.increments(); | ||
9 | table.string('username', 80).notNullable(); | ||
10 | table.string('email', 254).notNullable().unique(); | ||
11 | table.string('password', 60).notNullable(); | ||
12 | table.json('settings'); | ||
13 | table.timestamps(); | ||
14 | }); | ||
15 | } | ||
16 | |||
17 | down() { | ||
18 | this.drop('users'); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | module.exports = UserSchema; | ||
diff --git a/database/migrations/1503250034279_user.ts b/database/migrations/1503250034279_user.ts new file mode 100644 index 0000000..262a472 --- /dev/null +++ b/database/migrations/1503250034279_user.ts | |||
@@ -0,0 +1,20 @@ | |||
1 | import BaseSchema from '@ioc:Adonis/Lucid/Schema'; | ||
2 | |||
3 | export default class extends BaseSchema { | ||
4 | protected tableName = 'users'; | ||
5 | |||
6 | public async up(): Promise<void> { | ||
7 | this.schema.createTable(this.tableName, table => { | ||
8 | table.increments(); | ||
9 | table.string('username', 80).notNullable(); | ||
10 | table.string('email', 254).notNullable().unique(); | ||
11 | table.string('password', 60).notNullable(); | ||
12 | table.json('settings'); | ||
13 | table.timestamps(); | ||
14 | }); | ||
15 | } | ||
16 | |||
17 | public async down(): Promise<void> { | ||
18 | this.schema.dropTable(this.tableName); | ||
19 | } | ||
20 | } | ||
diff --git a/database/migrations/1503250034280_token.js b/database/migrations/1503250034280_token.js deleted file mode 100644 index ad97dba..0000000 --- a/database/migrations/1503250034280_token.js +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | |||
2 | /** @type {import('@adonisjs/lucid/src/Schema')} */ | ||
3 | const Schema = use('Schema'); | ||
4 | |||
5 | class TokensSchema extends Schema { | ||
6 | up() { | ||
7 | this.create('tokens', (table) => { | ||
8 | table.increments(); | ||
9 | table.integer('user_id').unsigned().references('id').inTable('users'); | ||
10 | table.string('token', 255).notNullable().unique().index(); | ||
11 | table.string('type', 80).notNullable(); | ||
12 | table.boolean('is_revoked').defaultTo(false); | ||
13 | table.timestamps(); | ||
14 | }); | ||
15 | } | ||
16 | |||
17 | down() { | ||
18 | this.drop('tokens'); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | module.exports = TokensSchema; | ||
diff --git a/database/migrations/1503250034280_token.ts b/database/migrations/1503250034280_token.ts new file mode 100644 index 0000000..5a030d0 --- /dev/null +++ b/database/migrations/1503250034280_token.ts | |||
@@ -0,0 +1,20 @@ | |||
1 | import BaseSchema from '@ioc:Adonis/Lucid/Schema'; | ||
2 | |||
3 | export default class extends BaseSchema { | ||
4 | protected tableName = 'tokens'; | ||
5 | |||
6 | public async up(): Promise<void> { | ||
7 | this.schema.createTable(this.tableName, table => { | ||
8 | table.increments(); | ||
9 | table.integer('user_id').unsigned().references('users.id'); | ||
10 | table.string('token', 255).notNullable().unique().index(); | ||
11 | table.string('type', 80).notNullable(); | ||
12 | table.boolean('is_revoked').defaultTo(false); | ||
13 | table.timestamps(); | ||
14 | }); | ||
15 | } | ||
16 | |||
17 | public async down(): Promise<void> { | ||
18 | this.schema.dropTable(this.tableName); | ||
19 | } | ||
20 | } | ||
diff --git a/database/migrations/1566385379883_service_schema.js b/database/migrations/1566385379883_service_schema.js deleted file mode 100644 index 093fb13..0000000 --- a/database/migrations/1566385379883_service_schema.js +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | |||
2 | /** @type {import('@adonisjs/lucid/src/Schema')} */ | ||
3 | const Schema = use('Schema'); | ||
4 | |||
5 | class ServiceSchema extends Schema { | ||
6 | up() { | ||
7 | this.create('services', (table) => { | ||
8 | table.increments(); | ||
9 | table.string('userId', 80).notNullable(); | ||
10 | table.string('serviceId', 80).notNullable(); | ||
11 | table.string('name', 80).notNullable(); | ||
12 | table.string('recipeId', 254).notNullable(); | ||
13 | table.json('settings'); | ||
14 | table.timestamps(); | ||
15 | }); | ||
16 | } | ||
17 | |||
18 | down() { | ||
19 | this.drop('services'); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | module.exports = ServiceSchema; | ||
diff --git a/database/migrations/1566385379883_service_schema.ts b/database/migrations/1566385379883_service_schema.ts new file mode 100644 index 0000000..9c3e23d --- /dev/null +++ b/database/migrations/1566385379883_service_schema.ts | |||
@@ -0,0 +1,21 @@ | |||
1 | import BaseSchema from '@ioc:Adonis/Lucid/Schema'; | ||
2 | |||
3 | export default class extends BaseSchema { | ||
4 | protected tableName = 'services'; | ||
5 | |||
6 | public async up(): Promise<void> { | ||
7 | this.schema.createTable(this.tableName, table => { | ||
8 | table.increments(); | ||
9 | table.string('userId', 80).notNullable(); | ||
10 | table.string('serviceId', 80).notNullable(); | ||
11 | table.string('name', 80).notNullable(); | ||
12 | table.string('recipeId', 254).notNullable(); | ||
13 | table.json('settings'); | ||
14 | table.timestamps(); | ||
15 | }); | ||
16 | } | ||
17 | |||
18 | public async down(): Promise<void> { | ||
19 | this.schema.dropTable(this.tableName); | ||
20 | } | ||
21 | } | ||
diff --git a/database/migrations/1566554231482_recipe_schema.js b/database/migrations/1566554231482_recipe_schema.js deleted file mode 100644 index 14fcb82..0000000 --- a/database/migrations/1566554231482_recipe_schema.js +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | |||
2 | /** @type {import('@adonisjs/lucid/src/Schema')} */ | ||
3 | const Schema = use('Schema'); | ||
4 | |||
5 | class RecipeSchema extends Schema { | ||
6 | up() { | ||
7 | this.create('recipes', (table) => { | ||
8 | table.increments(); | ||
9 | table.string('name', 80).notNullable(); | ||
10 | table.string('recipeId', 254).notNullable().unique(); | ||
11 | table.json('data'); | ||
12 | table.timestamps(); | ||
13 | }); | ||
14 | } | ||
15 | |||
16 | down() { | ||
17 | this.drop('recipes'); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | module.exports = RecipeSchema; | ||
diff --git a/database/migrations/1566554231482_recipe_schema.ts b/database/migrations/1566554231482_recipe_schema.ts new file mode 100644 index 0000000..3a9784d --- /dev/null +++ b/database/migrations/1566554231482_recipe_schema.ts | |||
@@ -0,0 +1,19 @@ | |||
1 | import BaseSchema from '@ioc:Adonis/Lucid/Schema'; | ||
2 | |||
3 | export default class extends BaseSchema { | ||
4 | protected tableName = 'recipes'; | ||
5 | |||
6 | public async up(): Promise<void> { | ||
7 | this.schema.createTable(this.tableName, table => { | ||
8 | table.increments(); | ||
9 | table.string('name', 80).notNullable(); | ||
10 | table.string('recipeId', 254).notNullable().unique(); | ||
11 | table.json('data'); | ||
12 | table.timestamps(); | ||
13 | }); | ||
14 | } | ||
15 | |||
16 | public async down(): Promise<void> { | ||
17 | this.schema.dropTable(this.tableName); | ||
18 | } | ||
19 | } | ||
diff --git a/database/migrations/1566554359294_workspace_schema.js b/database/migrations/1566554359294_workspace_schema.ts index 0a3c138..77e1189 100644 --- a/database/migrations/1566554359294_workspace_schema.js +++ b/database/migrations/1566554359294_workspace_schema.ts | |||
@@ -1,10 +1,10 @@ | |||
1 | import BaseSchema from '@ioc:Adonis/Lucid/Schema'; | ||
1 | 2 | ||
2 | /** @type {import('@adonisjs/lucid/src/Schema')} */ | 3 | export default class extends BaseSchema { |
3 | const Schema = use('Schema'); | 4 | protected tableName = 'workspaces'; |
4 | 5 | ||
5 | class WorkspaceSchema extends Schema { | 6 | public async up(): Promise<void> { |
6 | up() { | 7 | this.schema.createTable(this.tableName, table => { |
7 | this.create('workspaces', (table) => { | ||
8 | table.increments(); | 8 | table.increments(); |
9 | table.string('workspaceId', 80).notNullable().unique(); | 9 | table.string('workspaceId', 80).notNullable().unique(); |
10 | table.string('userId', 80).notNullable(); | 10 | table.string('userId', 80).notNullable(); |
@@ -16,9 +16,7 @@ class WorkspaceSchema extends Schema { | |||
16 | }); | 16 | }); |
17 | } | 17 | } |
18 | 18 | ||
19 | down() { | 19 | public async down(): Promise<void> { |
20 | this.drop('workspaces'); | 20 | this.schema.dropTable(this.tableName); |
21 | } | 21 | } |
22 | } | 22 | } |
23 | |||
24 | module.exports = WorkspaceSchema; | ||
diff --git a/database/migrations/1612629845398_users_update_schema.js b/database/migrations/1612629845398_users_update_schema.js deleted file mode 100644 index 10b82aa..0000000 --- a/database/migrations/1612629845398_users_update_schema.js +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | /** @type {import('@adonisjs/lucid/src/Schema')} */ | ||
2 | const Schema = use('Schema'); | ||
3 | |||
4 | class UsersUpdateSchema extends Schema { | ||
5 | up() { | ||
6 | this.table('users', (table) => { | ||
7 | table.string('lastname', 80).notNullable().default(''); | ||
8 | }); | ||
9 | } | ||
10 | |||
11 | down() { | ||
12 | this.table('users', (table) => { | ||
13 | table.dropColumn('lastname'); | ||
14 | }); | ||
15 | } | ||
16 | } | ||
17 | |||
18 | module.exports = UsersUpdateSchema; | ||
diff --git a/database/migrations/1612629845398_users_update_schema.ts b/database/migrations/1612629845398_users_update_schema.ts new file mode 100644 index 0000000..8831ea4 --- /dev/null +++ b/database/migrations/1612629845398_users_update_schema.ts | |||
@@ -0,0 +1,15 @@ | |||
1 | import BaseSchema from '@ioc:Adonis/Lucid/Schema'; | ||
2 | |||
3 | export default class extends BaseSchema { | ||
4 | public async up(): Promise<void> { | ||
5 | this.schema.alterTable('users', table => { | ||
6 | table.string('lastname', 80).notNullable().defaultTo(''); | ||
7 | }); | ||
8 | } | ||
9 | |||
10 | public async down(): Promise<void> { | ||
11 | this.schema.alterTable('users', table => { | ||
12 | table.dropColumn('lastname'); | ||
13 | }); | ||
14 | } | ||
15 | } | ||
diff --git a/database/migrations/1658076326250_correct_token_relations.ts b/database/migrations/1658076326250_correct_token_relations.ts new file mode 100644 index 0000000..5486657 --- /dev/null +++ b/database/migrations/1658076326250_correct_token_relations.ts | |||
@@ -0,0 +1,22 @@ | |||
1 | import BaseSchema from '@ioc:Adonis/Lucid/Schema'; | ||
2 | |||
3 | export default class extends BaseSchema { | ||
4 | protected tableName = 'tokens'; | ||
5 | |||
6 | public async up(): Promise<void> { | ||
7 | await this.db.rawQuery( | ||
8 | 'DELETE FROM tokens WHERE user_id NOT IN (SELECT id FROM users)', | ||
9 | ); | ||
10 | |||
11 | this.schema.alterTable(this.tableName, table => { | ||
12 | table.dropForeign('user_id'); | ||
13 | |||
14 | table.foreign('user_id').references('users.id').onDelete('cascade'); | ||
15 | }); | ||
16 | } | ||
17 | |||
18 | public async down(): Promise<void> { | ||
19 | // Don't set it back withouth onDelete as the | ||
20 | // tests will break. | ||
21 | } | ||
22 | } | ||
diff --git a/database/migrations/1696110557648_jwt_tokens.ts b/database/migrations/1696110557648_jwt_tokens.ts new file mode 100644 index 0000000..9400de7 --- /dev/null +++ b/database/migrations/1696110557648_jwt_tokens.ts | |||
@@ -0,0 +1,29 @@ | |||
1 | import BaseSchema from '@ioc:Adonis/Lucid/Schema'; | ||
2 | |||
3 | export default class JwtTokens extends BaseSchema { | ||
4 | protected tableName = 'jwt_tokens'; | ||
5 | |||
6 | public async up() { | ||
7 | this.schema.createTable(this.tableName, table => { | ||
8 | table.increments('id').primary(); | ||
9 | table | ||
10 | .integer('user_id') | ||
11 | .unsigned() | ||
12 | .references('users.id') | ||
13 | .onDelete('CASCADE'); | ||
14 | table.string('name').notNullable(); | ||
15 | table.string('type').notNullable(); | ||
16 | table.string('token', 64).notNullable().unique(); | ||
17 | table.timestamp('expires_at', { useTz: true }).nullable(); | ||
18 | table.string('refresh_token').notNullable().unique().index(); | ||
19 | table | ||
20 | .timestamp('refresh_token_expires_at', { useTz: true }) | ||
21 | .notNullable(); | ||
22 | table.timestamp('created_at', { useTz: true }).notNullable(); | ||
23 | }); | ||
24 | } | ||
25 | |||
26 | public async down() { | ||
27 | this.schema.dropTable(this.tableName); | ||
28 | } | ||
29 | } | ||
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index d2985d3..62c13e4 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml | |||
@@ -1,7 +1,7 @@ | |||
1 | version: "2" | 1 | version: "2" |
2 | services: | 2 | services: |
3 | ferdium-server: | 3 | ferdium-server: |
4 | image: ferdium/ferdium-server:latest | 4 | image: ferdium-server |
5 | container_name: ferdium-server | 5 | container_name: ferdium-server |
6 | environment: | 6 | environment: |
7 | - NODE_ENV=development | 7 | - NODE_ENV=development |
@@ -25,8 +25,7 @@ services: | |||
25 | - IS_REGISTRATION_ENABLED=true | 25 | - IS_REGISTRATION_ENABLED=true |
26 | - CONNECT_WITH_FRANZ=false | 26 | - CONNECT_WITH_FRANZ=false |
27 | - DATA_DIR=/data | 27 | - DATA_DIR=/data |
28 | - PUID=1000 | 28 | - JWT_USE_PEM=true |
29 | - PGID=1000 | ||
30 | volumes: | 29 | volumes: |
31 | - ferdium-database-vol:/data | 30 | - ferdium-database-vol:/data |
32 | - ferdium-recipes-vol:/app/recipes | 31 | - ferdium-recipes-vol:/app/recipes |
@@ -34,5 +33,4 @@ services: | |||
34 | - 3333:3333 | 33 | - 3333:3333 |
35 | restart: unless-stopped | 34 | restart: unless-stopped |
36 | volumes: | 35 | volumes: |
37 | ferdium-database-vol: | ||
38 | ferdium-recipes-vol: | 36 | ferdium-recipes-vol: |
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 4178d97..b2f4924 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh | |||
@@ -17,18 +17,23 @@ Brought to you by ferdium.org | |||
17 | EOL | 17 | EOL |
18 | 18 | ||
19 | # Update recipes from official git repository | 19 | # Update recipes from official git repository |
20 | |||
21 | # We need to set NODE_ENV to development to install devDependencies | ||
22 | SAVE_NODE_ENV=$NODE_ENV | ||
23 | NODE_ENV=development | ||
24 | |||
20 | if [ ! -d "/app/recipes/.git" ]; # When we mount an existing volume (ferdium-recipes-vol:/app/recipes) if this is only /app/recipes it is always true | 25 | if [ ! -d "/app/recipes/.git" ]; # When we mount an existing volume (ferdium-recipes-vol:/app/recipes) if this is only /app/recipes it is always true |
21 | then | 26 | then |
22 | echo '**** Generating recipes for first run ****' | 27 | echo '**** Generating recipes for first run ****' |
23 | git clone --branch main https://github.com/ferdium/ferdium-recipes recipes | 28 | git clone --branch main https://github.com/ferdium/ferdium-recipes recipes |
24 | else | 29 | else |
25 | echo '**** Updating recipes ****' | 30 | echo '**** Updating recipes ****' |
26 | chown -R root /app/recipes # Fixes ownership problem when doing git pull -r | 31 | chown -R root /app/recipes # Fixes ownership problem when doing git pull -r |
27 | cd recipes | 32 | cd recipes |
28 | git stash -u | 33 | git stash -u |
29 | git pull -r | 34 | git pull -r |
30 | git stash pop | 35 | git stash pop |
31 | cd .. | 36 | cd .. |
32 | fi | 37 | fi |
33 | 38 | ||
34 | cd recipes | 39 | cd recipes |
@@ -39,31 +44,72 @@ pnpm i | |||
39 | pnpm package | 44 | pnpm package |
40 | cd .. | 45 | cd .. |
41 | 46 | ||
47 | # Restore NODE_ENV | ||
48 | NODE_ENV=$SAVE_NODE_ENV | ||
49 | |||
42 | key_file="${DATA_DIR}/FERDIUM_APP_KEY.txt" | 50 | key_file="${DATA_DIR}/FERDIUM_APP_KEY.txt" |
43 | 51 | ||
44 | print_app_key_message() { | 52 | print_app_key_message() { |
45 | app_key=$1 | 53 | app_key=$1 |
46 | printf '**** App key is %s. ' ${app_key} | 54 | printf '**** App key is %s. ' ${app_key} |
47 | printf 'You can modify `%s` to update the app key ****\n' ${key_file} | 55 | printf 'You can modify `%s` to update the app key ****\n' ${key_file} |
48 | } | 56 | } |
49 | 57 | ||
50 | # Create APP key if needed | 58 | # Create APP key if needed |
51 | if [ -z ${APP_KEY} ] && [ ! -f ${key_file} ] | 59 | if [ -z ${APP_KEY} ] && [ ! -f ${key_file} ] |
52 | then | 60 | then |
53 | echo '**** Generating Ferdium-server app key for first run ****' | 61 | echo '**** Generating Ferdium-server app key for first run ****' |
54 | adonis key:generate | 62 | adonis key:generate |
55 | APP_KEY=$(grep APP_KEY .env | cut -d '=' -f2) | 63 | APP_KEY=$(grep APP_KEY .env | cut -d '=' -f2) |
56 | echo ${APP_KEY} > ${key_file} | 64 | echo ${APP_KEY} > ${key_file} |
57 | print_app_key_message ${APP_KEY} | 65 | print_app_key_message ${APP_KEY} |
58 | else | 66 | else |
59 | APP_KEY=$(cat ${key_file}) | 67 | APP_KEY=$(cat ${key_file}) |
60 | print_app_key_message ${APP_KEY} | 68 | print_app_key_message ${APP_KEY} |
61 | fi | 69 | fi |
62 | 70 | ||
71 | # ------------------------------------- | ||
72 | # Create JWT public/private keys if needed | ||
73 | |||
74 | # Check if JWT_USE_PEM is true | ||
75 | if [ "$JWT_USE_PEM" = "true" ]; then | ||
76 | # Define file paths for public and private keys | ||
77 | publicKeyFile="${DATA_DIR}/FERDIUM_JWT_PUBLIC_KEY.pem" | ||
78 | privateKeyFile="${DATA_DIR}/FERDIUM_JWT_PRIVATE_KEY.pem" | ||
79 | # Check if public and private key files exist | ||
80 | if [ ! -f "$publicKeyFile" ] || [ ! -f "$privateKeyFile" ]; then | ||
81 | echo "Generating public and private keys..." | ||
82 | |||
83 | # Use Node.js to generate the keys | ||
84 | node ace jwt:generate-keys $DATA_DIR | ||
85 | mv ${DATA_DIR}/public.pem ${publicKeyFile} | ||
86 | mv ${DATA_DIR}/private.pem ${privateKeyFile} | ||
87 | |||
88 | echo "Public and private keys generated successfully." | ||
89 | else | ||
90 | echo "Using existing public and private keys." | ||
91 | fi | ||
92 | JWT_PUBLIC_KEY=$(cat ${publicKeyFile}) | ||
93 | JWT_PRIVATE_KEY=$(cat ${privateKeyFile}) | ||
94 | export JWT_PUBLIC_KEY | ||
95 | export JWT_PRIVATE_KEY | ||
96 | else | ||
97 | echo "JWT_USE_PEM is not set to true. Skipping JWT certificate generation." | ||
98 | fi | ||
99 | # End of JWT public/private keys | ||
100 | # ------------------------------------- | ||
101 | |||
63 | export APP_KEY | 102 | export APP_KEY |
64 | 103 | ||
65 | node ace migration:run --force | 104 | # Enable the errexit option |
105 | set -e | ||
66 | 106 | ||
67 | chown -R "${PUID:-1000}":"${PGID:-1000}" "${DATA_DIR}" /app # This is the cause of the problem on line 29/32 | 107 | # Run the script to migrate from AdonisJS v4 to v5 |
108 | sh /app/scripts/adonisjs-4-to-5.sh | ||
109 | |||
110 | # Disable the errexit option | ||
111 | set +e | ||
112 | |||
113 | node ace migration:run --force | ||
68 | 114 | ||
69 | su-exec "${PUID:-1000}":"${PGID:-1000}" node server.js | 115 | node build/server.js |
@@ -0,0 +1,25 @@ | |||
1 | /* | ||
2 | |-------------------------------------------------------------------------- | ||
3 | | Validating Environment Variables | ||
4 | |-------------------------------------------------------------------------- | ||
5 | | | ||
6 | | In this file we define the rules for validating environment variables. | ||
7 | | By performing validation we ensure that your application is running in | ||
8 | | a stable environment with correct configuration values. | ||
9 | | | ||
10 | | This file is read automatically by the framework during the boot lifecycle | ||
11 | | and hence do not rename or move this file to a different location. | ||
12 | | | ||
13 | */ | ||
14 | |||
15 | import Env from '@ioc:Adonis/Core/Env'; | ||
16 | |||
17 | export default Env.rules({ | ||
18 | HOST: Env.schema.string({ format: 'host' }), | ||
19 | PORT: Env.schema.number(), | ||
20 | |||
21 | APP_KEY: Env.schema.string(), | ||
22 | APP_NAME: Env.schema.string(), | ||
23 | |||
24 | NODE_ENV: Env.schema.enum(['development', 'production', 'test'] as const), | ||
25 | }); | ||
diff --git a/helpers/PasswordHash.ts b/helpers/PasswordHash.ts new file mode 100644 index 0000000..be3da2c --- /dev/null +++ b/helpers/PasswordHash.ts | |||
@@ -0,0 +1,24 @@ | |||
1 | import User from 'App/Models/User'; | ||
2 | import Hash from '@ioc:Adonis/Core/Hash'; | ||
3 | |||
4 | export async function handleVerifyAndReHash( | ||
5 | user: User, | ||
6 | passwordToTest: string, | ||
7 | ): Promise<boolean> { | ||
8 | // Verify password | ||
9 | const usesLegacyHasher = /^\$2[aby]/.test(user.password); | ||
10 | let isMatchedPassword = false; | ||
11 | |||
12 | isMatchedPassword = await (usesLegacyHasher | ||
13 | ? Hash.use('legacy').verify(user.password, passwordToTest) | ||
14 | : Hash.verify(user.password, passwordToTest)); | ||
15 | |||
16 | // TODO: For some reason this is not working (user can't login after re-hashing) | ||
17 | // rehash user password | ||
18 | // if (usesLegacyHasher && isMatchedPassword) { | ||
19 | // user.password = await Hash.make(passwordToTest); | ||
20 | // await user.save(); | ||
21 | // } | ||
22 | |||
23 | return isMatchedPassword; | ||
24 | } | ||
diff --git a/logo.png b/logo.png deleted file mode 100644 index 5fc6076..0000000 --- a/logo.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/package.json b/package.json index c998462..1e40807 100644 --- a/package.json +++ b/package.json | |||
@@ -1,67 +1,108 @@ | |||
1 | { | 1 | { |
2 | "name": "ferdium-server", | 2 | "name": "ferdium-server", |
3 | "version": "1.3.16", | 3 | "version": "2.0.0", |
4 | "adonis-version": "4.1.0", | ||
5 | "description": "Ferdium server to replace the default Franz/Ferdi server.", | 4 | "description": "Ferdium server to replace the default Franz/Ferdi server.", |
6 | "main": "index.js", | ||
7 | "engines": { | 5 | "engines": { |
8 | "node": "18.18.0", | 6 | "node": "18.18.0", |
9 | "pnpm": "8.7.6", | 7 | "pnpm": "8.7.6", |
10 | "python": "3.11.1" | 8 | "python": "3.11.1" |
11 | }, | 9 | }, |
12 | "scripts": { | 10 | "engine-strict": true, |
13 | "prepare": "is-ci || husky install", | 11 | "volta": { |
14 | "start": "node server.js", | 12 | "node": "18.18.0", |
15 | "test": "node ace test", | 13 | "pnpm": "8.7.6", |
16 | "lint": "eslint \"{app,public,start}/**/*.js\" --quiet --fix", | 14 | "python": "3.11.1" |
17 | "contributors": "all-contributors" | ||
18 | }, | 15 | }, |
19 | "keywords": [ | ||
20 | "adonisjs", | ||
21 | "adonis-app" | ||
22 | ], | ||
23 | "author": "", | ||
24 | "homepage": "https://github.com/ferdium/ferdium-server", | 16 | "homepage": "https://github.com/ferdium/ferdium-server", |
25 | "license": "MIT License", | 17 | "license": "MIT License", |
26 | "private": true, | 18 | "scripts": { |
27 | "dependencies": { | 19 | "prepare": "is-ci || husky install", |
28 | "@adonisjs/ace": "^5.0.8", | 20 | "dev": "cross-env-shell ENV_PATH=.env.development node ace serve --watch", |
29 | "@adonisjs/auth": "^3.0.7", | 21 | "migrate": "cross-env-shell ENV_PATH=.env.development node ace migration:run", |
30 | "@adonisjs/bodyparser": "^2.0.5", | 22 | "status": "cross-env-shell ENV_PATH=.env.development node ace migration:status", |
31 | "@adonisjs/cors": "^1.0.7", | 23 | "build": "node ace build --production", |
32 | "@adonisjs/drive": "^1.0.4", | 24 | "start": "cross-env-shell ENV_PATH=.env node build/server.js", |
33 | "@adonisjs/fold": "^4.0.9", | 25 | "test": "cross-env-shell ENV_PATH=.env.test node ace test", |
34 | "@adonisjs/framework": "^5.0.9", | 26 | "typecheck": "tsc --noEmit", |
35 | "@adonisjs/ignitor": "^2.0.8", | 27 | "lint": "eslint \"**/*.{js,ts}\"", |
36 | "@adonisjs/lucid": "^6.1.3", | 28 | "lint:fix": "pnpm lint --fix", |
37 | "@adonisjs/mail": "^3.0.10", | 29 | "reformat-files": "prettier --ignore-path .eslintignore --write \"**/*.{js,ts,scss,json}\"", |
38 | "@adonisjs/persona": "^1.0.5", | 30 | "prepare-code": "pnpm typecheck && pnpm lint:fix && pnpm reformat-files && pnpm test" |
39 | "@adonisjs/session": "^1.0.29", | ||
40 | "@adonisjs/shield": "^1.0.8", | ||
41 | "@adonisjs/validator": "^5.0.6", | ||
42 | "@sentry/node": "^5.15.4", | ||
43 | "atob": "^2.1.2", | ||
44 | "btoa": "^1.2.1", | ||
45 | "fs-extra": "^8.1.0", | ||
46 | "mysql": "2.18.1", | ||
47 | "node-fetch": "^2.6.7", | ||
48 | "pg": "^8.0.3", | ||
49 | "sanitize-filename": "1.6.3", | ||
50 | "semver": "7.3.5", | ||
51 | "sqlite3": "^4.1.0", | ||
52 | "targz": "^1.0.1", | ||
53 | "uuid": "^8.3.2" | ||
54 | }, | 31 | }, |
55 | "devDependencies": { | 32 | "devDependencies": { |
56 | "all-contributors-cli": "^6.20.0", | 33 | "@adonisjs/assembler": "5.9.5", |
57 | "eslint": "^7.32.0", | 34 | "@japa/preset-adonis": "1.2.0", |
58 | "eslint-config-airbnb-base": "^14.2.1", | 35 | "@japa/runner": "2.5.1", |
59 | "eslint-plugin-import": "^2.23.4", | 36 | "@symfony/webpack-encore": "4.4.0", |
60 | "husky": "^7.0.1", | 37 | "@types/bcrypt": "5.0.0", |
38 | "@types/fs-extra": "11.0.1", | ||
39 | "@types/luxon": "3.3.1", | ||
40 | "@types/node-fetch": "2.6.4", | ||
41 | "@types/proxy-addr": "^2.0.0", | ||
42 | "@types/semver": "7.5.0", | ||
43 | "@types/source-map-support": "0.5.6", | ||
44 | "@types/targz": "1.0.1", | ||
45 | "@types/uuid": "9.0.2", | ||
46 | "@typescript-eslint/eslint-plugin": "6.2.0", | ||
47 | "@typescript-eslint/parser": "6.2.0", | ||
48 | "adonis-preset-ts": "2.1.0", | ||
49 | "cross-env": "7.0.3", | ||
50 | "eslint": "8.46.0", | ||
51 | "eslint-config-prettier": "8.9.0", | ||
52 | "eslint-plugin-adonis": "2.1.1", | ||
53 | "eslint-plugin-import": "2.28.0", | ||
54 | "eslint-plugin-prettier": "5.0.0", | ||
55 | "eslint-plugin-unicorn": "48.0.1", | ||
56 | "husky": "8.0.3", | ||
61 | "is-ci": "3.0.1", | 57 | "is-ci": "3.0.1", |
62 | "prettier": "2.3.2" | 58 | "pino-pretty": "10.2.0", |
59 | "prettier": "3.0.0", | ||
60 | "typescript": "5.1.6", | ||
61 | "youch": "3.2.3", | ||
62 | "youch-terminal": "2.2.2" | ||
63 | }, | ||
64 | "dependencies": { | ||
65 | "@adonisjs/auth": "8.2.3", | ||
66 | "@adonisjs/core": "5.9.0", | ||
67 | "@adonisjs/lucid": "18.4.0", | ||
68 | "@adonisjs/mail": "8.2.0", | ||
69 | "@adonisjs/repl": "3.1.11", | ||
70 | "@adonisjs/session": "6.4.0", | ||
71 | "@adonisjs/shield": "7.1.1", | ||
72 | "@adonisjs/view": "6.2.0", | ||
73 | "adonis5-jwt": "github:SpecialAro/adonis5-jwt#34941c10adcf89583a40767552b994ea499b92e3", | ||
74 | "aws-sdk": "2.1425.0", | ||
75 | "bcrypt": "5.1.1", | ||
76 | "fs-extra": "11.1.1", | ||
77 | "jose": "4.14.6", | ||
78 | "luxon": "3.3.0", | ||
79 | "moment": "2.29.4", | ||
80 | "mysql": "2.18.1", | ||
81 | "node-fetch": "2", | ||
82 | "pg": "8.11.1", | ||
83 | "phc-bcrypt": "1.0.8", | ||
84 | "proxy-addr": "2.0.7", | ||
85 | "rand-token": "1.0.1", | ||
86 | "reflect-metadata": "0.1.13", | ||
87 | "sanitize-filename": "1.6.3", | ||
88 | "semver": "7.5.4", | ||
89 | "source-map-support": "0.5.21", | ||
90 | "sqlite3": "5.1.6", | ||
91 | "targz": "1.0.1", | ||
92 | "uuid": "9.0.0" | ||
63 | }, | 93 | }, |
64 | "autoload": { | 94 | "pnpm": { |
65 | "App": "./app" | 95 | "allowedDeprecatedVersions": { |
96 | "@npmcli/move-file": "1.1.2", | ||
97 | "@types/pino-pretty": "5.0.0", | ||
98 | "@types/pino-std-serializers": "4.0.0", | ||
99 | "cuid": "2.1.8", | ||
100 | "querystring": "0.2.0", | ||
101 | "resolve-url": "0.2.1", | ||
102 | "source-map-resolve": "0.5.3", | ||
103 | "source-map-url": "0.4.1", | ||
104 | "stable": "0.1.8", | ||
105 | "urix": "0.1.0" | ||
106 | } | ||
66 | } | 107 | } |
67 | } | 108 | } |
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd87c6f..ae833fc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml | |||
@@ -1,356 +1,1848 @@ | |||
1 | lockfileVersion: 5.4 | 1 | lockfileVersion: '6.0' |
2 | 2 | ||
3 | specifiers: | 3 | settings: |
4 | '@adonisjs/ace': ^5.0.8 | 4 | autoInstallPeers: true |
5 | '@adonisjs/auth': ^3.0.7 | 5 | excludeLinksFromLockfile: false |
6 | '@adonisjs/bodyparser': ^2.0.5 | ||
7 | '@adonisjs/cors': ^1.0.7 | ||
8 | '@adonisjs/drive': ^1.0.4 | ||
9 | '@adonisjs/fold': ^4.0.9 | ||
10 | '@adonisjs/framework': ^5.0.9 | ||
11 | '@adonisjs/ignitor': ^2.0.8 | ||
12 | '@adonisjs/lucid': ^6.1.3 | ||
13 | '@adonisjs/mail': ^3.0.10 | ||
14 | '@adonisjs/persona': ^1.0.5 | ||
15 | '@adonisjs/session': ^1.0.29 | ||
16 | '@adonisjs/shield': ^1.0.8 | ||
17 | '@adonisjs/validator': ^5.0.6 | ||
18 | '@sentry/node': ^5.15.4 | ||
19 | all-contributors-cli: ^6.20.0 | ||
20 | atob: ^2.1.2 | ||
21 | btoa: ^1.2.1 | ||
22 | eslint: ^7.32.0 | ||
23 | eslint-config-airbnb-base: ^14.2.1 | ||
24 | eslint-plugin-import: ^2.23.4 | ||
25 | fs-extra: ^8.1.0 | ||
26 | husky: ^7.0.1 | ||
27 | is-ci: 3.0.1 | ||
28 | mysql: 2.18.1 | ||
29 | node-fetch: ^2.6.7 | ||
30 | pg: ^8.0.3 | ||
31 | prettier: 2.3.2 | ||
32 | sanitize-filename: 1.6.3 | ||
33 | semver: 7.3.5 | ||
34 | sqlite3: ^4.1.0 | ||
35 | targz: ^1.0.1 | ||
36 | uuid: ^8.3.2 | ||
37 | 6 | ||
38 | dependencies: | 7 | dependencies: |
39 | '@adonisjs/ace': 5.1.0 | 8 | '@adonisjs/auth': |
40 | '@adonisjs/auth': 3.2.0 | 9 | specifier: 8.2.3 |
41 | '@adonisjs/bodyparser': 2.3.0 | 10 | version: 8.2.3(@adonisjs/application@5.3.0)(@adonisjs/core@5.9.0)(@adonisjs/lucid@18.4.0)(@adonisjs/session@6.4.0) |
42 | '@adonisjs/cors': 1.0.7 | 11 | '@adonisjs/core': |
43 | '@adonisjs/drive': 1.0.4 | 12 | specifier: 5.9.0 |
44 | '@adonisjs/fold': 4.1.0 | 13 | version: 5.9.0 |
45 | '@adonisjs/framework': 5.0.13 | 14 | '@adonisjs/lucid': |
46 | '@adonisjs/ignitor': 2.0.8 | 15 | specifier: 18.4.0 |
47 | '@adonisjs/lucid': 6.3.0_siu2g6ofdcuoryphtpy44uq2je | 16 | version: 18.4.0(@adonisjs/application@5.3.0)(@adonisjs/core@5.9.0)(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6) |
48 | '@adonisjs/mail': 3.1.0 | 17 | '@adonisjs/mail': |
49 | '@adonisjs/persona': 1.0.5 | 18 | specifier: 8.2.0 |
50 | '@adonisjs/session': 1.1.0 | 19 | version: 8.2.0(@adonisjs/core@5.9.0)(@adonisjs/view@6.2.0)(@types/luxon@3.3.1)(luxon@3.3.0)(moment@2.29.4) |
51 | '@adonisjs/shield': 1.1.0 | 20 | '@adonisjs/repl': |
52 | '@adonisjs/validator': 5.1.0 | 21 | specifier: 3.1.11 |
53 | '@sentry/node': 5.30.0 | 22 | version: 3.1.11(@adonisjs/core@5.9.0) |
54 | atob: 2.1.2 | 23 | '@adonisjs/session': |
55 | btoa: 1.2.1 | 24 | specifier: 6.4.0 |
56 | fs-extra: 8.1.0 | 25 | version: 6.4.0(@adonisjs/core@5.9.0) |
57 | mysql: 2.18.1 | 26 | '@adonisjs/shield': |
58 | node-fetch: 2.6.7 | 27 | specifier: 7.1.1 |
59 | pg: 8.8.0 | 28 | version: 7.1.1(@adonisjs/core@5.9.0)(@adonisjs/session@6.4.0)(@adonisjs/view@6.2.0) |
60 | sanitize-filename: 1.6.3 | 29 | '@adonisjs/view': |
61 | semver: 7.3.5 | 30 | specifier: 6.2.0 |
62 | sqlite3: 4.2.0 | 31 | version: 6.2.0(@adonisjs/core@5.9.0) |
63 | targz: 1.0.1 | 32 | adonis5-jwt: |
64 | uuid: 8.3.2 | 33 | specifier: github:SpecialAro/adonis5-jwt#34941c10adcf89583a40767552b994ea499b92e3 |
34 | version: github.com/SpecialAro/adonis5-jwt/34941c10adcf89583a40767552b994ea499b92e3 | ||
35 | aws-sdk: | ||
36 | specifier: 2.1425.0 | ||
37 | version: 2.1425.0 | ||
38 | bcrypt: | ||
39 | specifier: 5.1.1 | ||
40 | version: 5.1.1 | ||
41 | fs-extra: | ||
42 | specifier: 11.1.1 | ||
43 | version: 11.1.1 | ||
44 | jose: | ||
45 | specifier: 4.14.6 | ||
46 | version: 4.14.6 | ||
47 | luxon: | ||
48 | specifier: 3.3.0 | ||
49 | version: 3.3.0 | ||
50 | moment: | ||
51 | specifier: 2.29.4 | ||
52 | version: 2.29.4 | ||
53 | mysql: | ||
54 | specifier: 2.18.1 | ||
55 | version: 2.18.1 | ||
56 | node-fetch: | ||
57 | specifier: '2' | ||
58 | version: 2.7.0 | ||
59 | pg: | ||
60 | specifier: 8.11.1 | ||
61 | version: 8.11.1 | ||
62 | phc-bcrypt: | ||
63 | specifier: 1.0.8 | ||
64 | version: 1.0.8 | ||
65 | proxy-addr: | ||
66 | specifier: 2.0.7 | ||
67 | version: 2.0.7 | ||
68 | rand-token: | ||
69 | specifier: 1.0.1 | ||
70 | version: 1.0.1 | ||
71 | reflect-metadata: | ||
72 | specifier: 0.1.13 | ||
73 | version: 0.1.13 | ||
74 | sanitize-filename: | ||
75 | specifier: 1.6.3 | ||
76 | version: 1.6.3 | ||
77 | semver: | ||
78 | specifier: 7.5.4 | ||
79 | version: 7.5.4 | ||
80 | source-map-support: | ||
81 | specifier: 0.5.21 | ||
82 | version: 0.5.21 | ||
83 | sqlite3: | ||
84 | specifier: 5.1.6 | ||
85 | version: 5.1.6 | ||
86 | targz: | ||
87 | specifier: 1.0.1 | ||
88 | version: 1.0.1 | ||
89 | uuid: | ||
90 | specifier: 9.0.0 | ||
91 | version: 9.0.0 | ||
65 | 92 | ||
66 | devDependencies: | 93 | devDependencies: |
67 | all-contributors-cli: 6.24.0 | 94 | '@adonisjs/assembler': |
68 | eslint: 7.32.0 | 95 | specifier: 5.9.5 |
69 | eslint-config-airbnb-base: 14.2.1_hpmu7kn6tcn2vnxpfzvv33bxmy | 96 | version: 5.9.5(@adonisjs/core@5.9.0) |
70 | eslint-plugin-import: 2.26.0_eslint@7.32.0 | 97 | '@japa/preset-adonis': |
71 | husky: 7.0.4 | 98 | specifier: 1.2.0 |
72 | is-ci: 3.0.1 | 99 | version: 1.2.0(@adonisjs/core@5.9.0)(@japa/runner@2.5.1)(openapi-types@12.1.3) |
73 | prettier: 2.3.2 | 100 | '@japa/runner': |
101 | specifier: 2.5.1 | ||
102 | version: 2.5.1 | ||
103 | '@symfony/webpack-encore': | ||
104 | specifier: 4.4.0 | ||
105 | version: 4.4.0(@babel/core@7.23.0)(@babel/preset-env@7.22.20)(eslint@8.46.0)(postcss@8.4.31)(typescript@5.1.6)(webpack-cli@5.1.4)(webpack@5.88.2) | ||
106 | '@types/bcrypt': | ||
107 | specifier: 5.0.0 | ||
108 | version: 5.0.0 | ||
109 | '@types/fs-extra': | ||
110 | specifier: 11.0.1 | ||
111 | version: 11.0.1 | ||
112 | '@types/luxon': | ||
113 | specifier: 3.3.1 | ||
114 | version: 3.3.1 | ||
115 | '@types/node-fetch': | ||
116 | specifier: 2.6.4 | ||
117 | version: 2.6.4 | ||
118 | '@types/proxy-addr': | ||
119 | specifier: ^2.0.0 | ||
120 | version: 2.0.1 | ||
121 | '@types/semver': | ||
122 | specifier: 7.5.0 | ||
123 | version: 7.5.0 | ||
124 | '@types/source-map-support': | ||
125 | specifier: 0.5.6 | ||
126 | version: 0.5.6 | ||
127 | '@types/targz': | ||
128 | specifier: 1.0.1 | ||
129 | version: 1.0.1 | ||
130 | '@types/uuid': | ||
131 | specifier: 9.0.2 | ||
132 | version: 9.0.2 | ||
133 | '@typescript-eslint/eslint-plugin': | ||
134 | specifier: 6.2.0 | ||
135 | version: 6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0)(typescript@5.1.6) | ||
136 | '@typescript-eslint/parser': | ||
137 | specifier: 6.2.0 | ||
138 | version: 6.2.0(eslint@8.46.0)(typescript@5.1.6) | ||
139 | adonis-preset-ts: | ||
140 | specifier: 2.1.0 | ||
141 | version: 2.1.0 | ||
142 | cross-env: | ||
143 | specifier: 7.0.3 | ||
144 | version: 7.0.3 | ||
145 | eslint: | ||
146 | specifier: 8.46.0 | ||
147 | version: 8.46.0 | ||
148 | eslint-config-prettier: | ||
149 | specifier: 8.9.0 | ||
150 | version: 8.9.0(eslint@8.46.0) | ||
151 | eslint-plugin-adonis: | ||
152 | specifier: 2.1.1 | ||
153 | version: 2.1.1(eslint@8.46.0)(typescript@5.1.6) | ||
154 | eslint-plugin-import: | ||
155 | specifier: 2.28.0 | ||
156 | version: 2.28.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0) | ||
157 | eslint-plugin-prettier: | ||
158 | specifier: 5.0.0 | ||
159 | version: 5.0.0(eslint-config-prettier@8.9.0)(eslint@8.46.0)(prettier@3.0.0) | ||
160 | eslint-plugin-unicorn: | ||
161 | specifier: 48.0.1 | ||
162 | version: 48.0.1(eslint@8.46.0) | ||
163 | husky: | ||
164 | specifier: 8.0.3 | ||
165 | version: 8.0.3 | ||
166 | is-ci: | ||
167 | specifier: 3.0.1 | ||
168 | version: 3.0.1 | ||
169 | pino-pretty: | ||
170 | specifier: 10.2.0 | ||
171 | version: 10.2.0 | ||
172 | prettier: | ||
173 | specifier: 3.0.0 | ||
174 | version: 3.0.0 | ||
175 | typescript: | ||
176 | specifier: 5.1.6 | ||
177 | version: 5.1.6 | ||
178 | youch: | ||
179 | specifier: 3.2.3 | ||
180 | version: 3.2.3 | ||
181 | youch-terminal: | ||
182 | specifier: 2.2.2 | ||
183 | version: 2.2.2 | ||
74 | 184 | ||
75 | packages: | 185 | packages: |
76 | 186 | ||
77 | /@adonisjs/ace/5.1.0: | 187 | /@aashutoshrathi/word-wrap@1.2.6: |
78 | resolution: {integrity: sha512-5G0E4U1nRMiE58HEtONZUqTCammEbCZS6iCvCNMgfeyZXrsmSxLe5XmD1StEFAbt1FUUkRxYl6f38xXhKxOHkg==} | 188 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} |
79 | dependencies: | 189 | engines: {node: '>=0.10.0'} |
80 | cli-table: 0.3.11 | 190 | dev: true |
81 | commander: 2.20.3 | 191 | |
82 | debug: 4.3.4 | 192 | /@adonisjs/ace@11.3.1(@adonisjs/application@5.3.0): |
83 | enquirer: 1.0.3 | 193 | resolution: {integrity: sha512-Ho3+Lk/16OSjX3CfhxsoLUTlcVG4sDlXUwHx+Zry/RLft5M6plT5ln0WkZvL7tqtb1uCZgP5YiMrMtDjSRzZLA==} |
84 | fast-levenshtein: 3.0.0 | 194 | peerDependencies: |
85 | fs-extra: 9.1.0 | 195 | '@adonisjs/application': ^5.0.0 |
86 | is-arrow-function: 2.0.3 | 196 | dependencies: |
87 | kleur: 2.0.2 | 197 | '@adonisjs/application': 5.3.0 |
88 | lodash: 4.17.21 | 198 | '@poppinss/cliui': 3.0.5 |
199 | '@poppinss/prompts': 2.0.2 | ||
200 | '@poppinss/utils': 4.0.4 | ||
201 | fs-extra: 10.1.0 | ||
202 | getopts: 2.3.0 | ||
203 | leven: 3.1.0 | ||
89 | mustache: 4.2.0 | 204 | mustache: 4.2.0 |
90 | prompt-checkbox: 2.2.0 | 205 | slash: 3.0.0 |
91 | prompt-confirm: 2.0.4 | 206 | term-size: 2.2.1 |
92 | prompt-expand: 1.0.1 | 207 | |
93 | prompt-list: 3.2.0 | 208 | /@adonisjs/application@5.3.0: |
94 | prompt-password: 1.2.0 | 209 | resolution: {integrity: sha512-AruZZXMgOdmmRxJEHUbXoqhgRavPfhkeIR2nQtGyxbn0PCNjqlGraq8ypuLINY1J+wNuH2tt0xCS98EDeMdTOQ==} |
210 | dependencies: | ||
211 | '@adonisjs/config': 3.0.9 | ||
212 | '@adonisjs/env': 3.0.9 | ||
213 | '@adonisjs/fold': 8.2.0 | ||
214 | '@adonisjs/logger': 4.1.5 | ||
215 | '@adonisjs/profiler': 6.0.9(@adonisjs/logger@4.1.5) | ||
216 | '@poppinss/utils': 5.0.0 | ||
217 | semver: 7.5.4 | ||
218 | |||
219 | /@adonisjs/assembler@5.9.5(@adonisjs/core@5.9.0): | ||
220 | resolution: {integrity: sha512-wCtQRZ4KoIZkzi+ux5NrDUDNASRomytRZ7AZBdw8Hi3LlEOeac4T8+47y7gXwJFKH2nnGoiIwnXGIgJyolXEfQ==} | ||
221 | peerDependencies: | ||
222 | '@adonisjs/core': ^5.1.0 | ||
223 | dependencies: | ||
224 | '@adonisjs/application': 5.3.0 | ||
225 | '@adonisjs/core': 5.9.0 | ||
226 | '@adonisjs/env': 3.0.9 | ||
227 | '@adonisjs/ioc-transformer': 2.3.4 | ||
228 | '@adonisjs/require-ts': 2.0.13 | ||
229 | '@adonisjs/sink': 5.4.3(@adonisjs/application@5.3.0) | ||
230 | '@poppinss/chokidar-ts': 3.3.5 | ||
231 | '@poppinss/cliui': 3.0.5 | ||
232 | '@poppinss/utils': 5.0.0 | ||
233 | cpy: 8.1.2 | ||
234 | emittery: 0.13.1 | ||
235 | execa: 5.1.1 | ||
236 | fs-extra: 10.1.0 | ||
237 | get-port: 5.1.1 | ||
238 | glob-parent: 6.0.2 | ||
239 | has-yarn: 2.1.0 | ||
240 | picomatch: 2.3.1 | ||
241 | slash: 3.0.0 | ||
95 | transitivePeerDependencies: | 242 | transitivePeerDependencies: |
96 | - supports-color | 243 | - supports-color |
97 | dev: false | 244 | dev: true |
98 | 245 | ||
99 | /@adonisjs/auth/3.2.0: | 246 | /@adonisjs/auth@8.2.3(@adonisjs/application@5.3.0)(@adonisjs/core@5.9.0)(@adonisjs/lucid@18.4.0)(@adonisjs/session@6.4.0): |
100 | resolution: {integrity: sha512-Bawnpg8BaPrVmG1QhX3egw2SfYOtrOcMpn2q/ck58J9A4WUJAk1LZWXIeu2AF0jrASZuXlmdy4HIMFpl8NKVZg==} | 247 | resolution: {integrity: sha512-js9e8AHEsNC/8MGvho6MgL+uXr8SlhTg9MJJDWQBBiqsKkT7+H7NMP/pLbuSzYaaf40t2u/OXfq6wXuIC5ZYvw==} |
248 | peerDependencies: | ||
249 | '@adonisjs/core': ^5.7.1 | ||
250 | '@adonisjs/i18n': ^1.5.0 | ||
251 | '@adonisjs/lucid': ^18.0.0 | ||
252 | '@adonisjs/redis': ^7.2.0 | ||
253 | '@adonisjs/session': ^6.2.0 | ||
254 | peerDependenciesMeta: | ||
255 | '@adonisjs/i18n': | ||
256 | optional: true | ||
257 | '@adonisjs/lucid': | ||
258 | optional: true | ||
259 | '@adonisjs/redis': | ||
260 | optional: true | ||
261 | '@adonisjs/session': | ||
262 | optional: true | ||
101 | dependencies: | 263 | dependencies: |
102 | '@adonisjs/generic-exceptions': 2.0.1 | 264 | '@adonisjs/core': 5.9.0 |
103 | basic-auth: 2.0.1 | 265 | '@adonisjs/lucid': 18.4.0(@adonisjs/application@5.3.0)(@adonisjs/core@5.9.0)(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6) |
104 | debug: 4.3.4 | 266 | '@adonisjs/session': 6.4.0(@adonisjs/core@5.9.0) |
105 | jsonwebtoken: 8.5.1 | 267 | '@poppinss/hooks': 5.0.3(@adonisjs/application@5.3.0) |
106 | lodash: 4.17.21 | 268 | '@poppinss/utils': 5.0.0 |
107 | ms: 2.1.3 | 269 | luxon: 3.3.0 |
108 | resetable: 1.0.3 | ||
109 | uuid: 8.3.2 | ||
110 | transitivePeerDependencies: | 270 | transitivePeerDependencies: |
111 | - supports-color | 271 | - '@adonisjs/application' |
112 | dev: false | 272 | dev: false |
113 | 273 | ||
114 | /@adonisjs/bodyparser/2.3.0: | 274 | /@adonisjs/bodyparser@8.1.9(@adonisjs/application@5.3.0)(@adonisjs/drive@2.3.0)(@adonisjs/http-server@5.12.0): |
115 | resolution: {integrity: sha512-VIC8klEZsz2Zpw1YvqDhtcZS4qut01Mj/fOJCIjZDYIh5yIYgo535aW5NlCQ2bAPs4nzokNIKJUKcnkTAOTZQQ==} | 275 | resolution: {integrity: sha512-enVETPmoBJhg+CP6AVlG/GSwllpW/5y22wjFpEhYZl0YOXnE7i+wsp2VeGfMtQzl4+snTuAPEfwCtG+I/s6jqQ==} |
116 | dependencies: | 276 | peerDependencies: |
117 | '@adonisjs/generic-exceptions': 2.0.1 | 277 | '@adonisjs/application': ^5.0.0 |
278 | '@adonisjs/drive': ^2.0.0 | ||
279 | '@adonisjs/http-server': ^5.0.0 | ||
280 | dependencies: | ||
281 | '@adonisjs/application': 5.3.0 | ||
282 | '@adonisjs/drive': 2.3.0(@adonisjs/application@5.3.0)(@adonisjs/http-server@5.12.0) | ||
283 | '@adonisjs/http-server': 5.12.0(@adonisjs/application@5.3.0)(@adonisjs/encryption@4.0.8) | ||
284 | '@poppinss/co-body': 1.2.0 | ||
285 | '@poppinss/multiparty': 2.0.1 | ||
286 | '@poppinss/utils': 5.0.0 | ||
118 | bytes: 3.1.2 | 287 | bytes: 3.1.2 |
119 | co-body: 6.1.0 | 288 | file-type: 16.5.4 |
120 | debug: 4.3.4 | 289 | fs-extra: 10.1.0 |
121 | end-of-stream: 1.4.4 | ||
122 | fs-extra: 9.1.0 | ||
123 | get-stream: 6.0.1 | ||
124 | lodash: 4.17.21 | ||
125 | media-typer: 1.1.0 | 290 | media-typer: 1.1.0 |
126 | multiparty: 4.2.3 | 291 | slash: 3.0.0 |
292 | |||
293 | /@adonisjs/config@3.0.9: | ||
294 | resolution: {integrity: sha512-f+wzrc+0HLvhJyYGEMV2QTHtyJ8sI3PKvH9h/baW/iF8UO3KF+llHH0Cf3/M5dYnpdz9rnmj0VtdTaIDfxrgGg==} | ||
295 | dependencies: | ||
296 | '@poppinss/utils': 5.0.0 | ||
297 | |||
298 | /@adonisjs/core@5.9.0: | ||
299 | resolution: {integrity: sha512-32zG9EW0t0Ck0cMzlwD0+z3GJG7k/gZz6P0+h+s8N1N7fHxGixrKs7W7lT3OcIvk0NsuIw1tUPAU7fAWytHEqA==} | ||
300 | dependencies: | ||
301 | '@adonisjs/ace': 11.3.1(@adonisjs/application@5.3.0) | ||
302 | '@adonisjs/application': 5.3.0 | ||
303 | '@adonisjs/bodyparser': 8.1.9(@adonisjs/application@5.3.0)(@adonisjs/drive@2.3.0)(@adonisjs/http-server@5.12.0) | ||
304 | '@adonisjs/drive': 2.3.0(@adonisjs/application@5.3.0)(@adonisjs/http-server@5.12.0) | ||
305 | '@adonisjs/encryption': 4.0.8(@adonisjs/application@5.3.0) | ||
306 | '@adonisjs/events': 7.2.1(@adonisjs/application@5.3.0) | ||
307 | '@adonisjs/hash': 7.2.2(@adonisjs/application@5.3.0) | ||
308 | '@adonisjs/http-server': 5.12.0(@adonisjs/application@5.3.0)(@adonisjs/encryption@4.0.8) | ||
309 | '@adonisjs/validator': 12.5.0(@adonisjs/application@5.3.0)(@adonisjs/bodyparser@8.1.9)(@adonisjs/http-server@5.12.0) | ||
310 | '@poppinss/cliui': 3.0.5 | ||
311 | '@poppinss/manager': 5.0.2 | ||
312 | '@poppinss/utils': 5.0.0 | ||
313 | fs-extra: 10.1.0 | ||
314 | macroable: 7.0.2 | ||
315 | memfs: 3.5.3 | ||
316 | serve-static: 1.15.0 | ||
317 | stringify-attributes: 2.0.0 | ||
127 | transitivePeerDependencies: | 318 | transitivePeerDependencies: |
128 | - supports-color | 319 | - supports-color |
129 | dev: false | ||
130 | 320 | ||
131 | /@adonisjs/cors/1.0.7: | 321 | /@adonisjs/drive@2.3.0(@adonisjs/application@5.3.0)(@adonisjs/http-server@5.12.0): |
132 | resolution: {integrity: sha512-jBO+bI/zdydAXURL02gQxXB57L5+eV2MUYp7zmDrVa12M6mQPMRz5TC2F7a0Kknx9JUr5dsl4+eN0XNfe/8sWQ==} | 322 | resolution: {integrity: sha512-3V1kBe2qB/860KcS+dDonv8Xya2YDBdR7291pQgObJeTbV50Vy8RhwdOwtU7ybRfN2kh/svdC4238JGpbQOR9w==} |
133 | dev: false | 323 | peerDependencies: |
324 | '@adonisjs/application': ^5.0.0 | ||
325 | '@adonisjs/http-server': ^5.0.0 | ||
326 | dependencies: | ||
327 | '@adonisjs/application': 5.3.0 | ||
328 | '@adonisjs/http-server': 5.12.0(@adonisjs/application@5.3.0)(@adonisjs/encryption@4.0.8) | ||
329 | '@poppinss/manager': 5.0.2 | ||
330 | '@poppinss/utils': 5.0.0 | ||
331 | '@types/fs-extra': 9.0.13 | ||
332 | etag: 1.8.1 | ||
333 | fs-extra: 10.1.0 | ||
334 | memfs: 3.5.3 | ||
134 | 335 | ||
135 | /@adonisjs/drive/1.0.4: | 336 | /@adonisjs/encryption@4.0.8(@adonisjs/application@5.3.0): |
136 | resolution: {integrity: sha512-p2Ot+ylOwtGV6gHIKIMJG0M+AxBatjnqv+UOrUW3Y8xsyN9bKg9khZTEqn7WrHUAlmeS4WUR5T68KIaxuXgRDw==} | 337 | resolution: {integrity: sha512-zMWbIESPHXafsbiLJyON/hlRYwrTIA3PuTil7xC8W4ngC36PgWe86Ra0x0t961u1We/LaSGkT8Vn93DymqB3aA==} |
338 | peerDependencies: | ||
339 | '@adonisjs/application': ^5.0.0 | ||
137 | dependencies: | 340 | dependencies: |
138 | '@slynova/flydrive': 0.3.1 | 341 | '@adonisjs/application': 5.3.0 |
139 | dev: false | 342 | '@poppinss/utils': 4.0.4 |
140 | 343 | ||
141 | /@adonisjs/fold/4.1.0: | 344 | /@adonisjs/env@3.0.9: |
142 | resolution: {integrity: sha512-xmRSWRtQddz05/44iNWPI6q4pjHjmeAN9rV6EL2hhoa+pa1CVDuyLDJD29526reIzCkKsUSAbCvHJERaYHOxJw==} | 345 | resolution: {integrity: sha512-9lxGmOQuF4FpUQ6NIwL/YQumaXG+2Wt8jQlQptplSUTasy6DHSEp7/SYvtC2RD9vxwn4gsptNCo+f8YRiqUvwQ==} |
143 | engines: {node: '>=12.0.0'} | ||
144 | hasBin: true | ||
145 | dependencies: | 346 | dependencies: |
146 | '@adonisjs/generic-exceptions': 2.0.1 | 347 | '@poppinss/utils': 4.0.4 |
147 | caller: 1.1.0 | 348 | dotenv: 16.3.1 |
148 | debug: 4.3.4 | 349 | validator: 13.11.0 |
149 | lodash: 4.17.21 | ||
150 | require-stack: 1.0.2 | ||
151 | transitivePeerDependencies: | ||
152 | - supports-color | ||
153 | dev: false | ||
154 | 350 | ||
155 | /@adonisjs/framework/5.0.13: | 351 | /@adonisjs/events@7.2.1(@adonisjs/application@5.3.0): |
156 | resolution: {integrity: sha512-qZx+9WF1bnK3sM4UJnKw6Zu52WIPCB1R4LjBBwSFrnG5TYbIAQATyB08YXc7ETMkQ4dIQmPH+tpq4J7+k2Joog==} | 352 | resolution: {integrity: sha512-N+ewQ19pvdWVIRGBeio1GqlMRJpHpZ+ZHCjhObI+bqoCh5nBApumW0JYe4blyMnUbUAtA9Aq1m1QbGaE7pRMcw==} |
157 | hasBin: true | 353 | peerDependencies: |
354 | '@adonisjs/application': ^5.0.0 | ||
158 | dependencies: | 355 | dependencies: |
159 | '@adonisjs/generic-exceptions': 2.0.1 | 356 | '@adonisjs/application': 5.3.0 |
160 | '@adonisjs/middleware-base': 1.0.0 | 357 | emittery: 0.10.2 |
161 | bcryptjs: 2.4.3 | ||
162 | co-compose: 4.0.0 | ||
163 | debug: 4.3.4 | ||
164 | dotenv: 6.2.0 | ||
165 | edge.js: 1.1.4 | ||
166 | eventemitter2: 5.0.1 | ||
167 | haye: 2.0.2 | ||
168 | lodash: 4.17.21 | ||
169 | macroable: 1.0.0 | ||
170 | node-cookie: 2.1.2 | ||
171 | node-exceptions: 3.0.0 | ||
172 | node-req: 2.1.2 | ||
173 | node-res: 4.1.4 | ||
174 | parseurl: 1.3.3 | ||
175 | path-to-regexp: 2.4.0 | ||
176 | require-all: 3.0.0 | ||
177 | resetable: 1.0.3 | ||
178 | serve-static: 1.15.0 | ||
179 | simple-encryptor: 2.0.0 | ||
180 | useragent: 2.3.0 | ||
181 | winston: 3.8.2 | ||
182 | youch: 2.2.2 | ||
183 | transitivePeerDependencies: | ||
184 | - supports-color | ||
185 | dev: false | ||
186 | 358 | ||
187 | /@adonisjs/generic-exceptions/2.0.1: | 359 | /@adonisjs/fold@8.2.0: |
188 | resolution: {integrity: sha512-ZIPnj7vlRZKaAyZ4c2SUFCpJ6Yk+xzR+STjsze9unmZQncpQmVq1K8r20pXX3Z9rnxKVlfwO58HTxMMWaX9t9A==} | 360 | resolution: {integrity: sha512-Uoo2HPp4SShIkGOF3+p3gT09W3j0zpkK+fOpPyYPTqYm7CWAunklTlowqX45b6CAVb5DCcORDUB8ia4D1ijeKg==} |
189 | dependencies: | 361 | dependencies: |
190 | node-exceptions: 3.0.0 | 362 | '@poppinss/utils': 4.0.4 |
191 | upcast: 2.1.2 | ||
192 | dev: false | ||
193 | 363 | ||
194 | /@adonisjs/ignitor/2.0.8: | 364 | /@adonisjs/hash@7.2.2(@adonisjs/application@5.3.0): |
195 | resolution: {integrity: sha512-drpuwxIjvBpBBn4Ndt2Sghf0aN3ml1zz3Bxu3g42k29ZEMDKgw9KkmabsEd+MVUqPLzch4cJRFKIReh9TWnY+Q==} | 365 | resolution: {integrity: sha512-qJxFX8jNH+5+jxckIIvz2y9pMt59ueT50a4B5kUe/68g5iC7UdwKmMos+tj5Pnm5hRFfwKXbtIQBGd+Bb87+2Q==} |
196 | hasBin: true | 366 | peerDependencies: |
367 | '@adonisjs/application': ^5.0.0 | ||
197 | dependencies: | 368 | dependencies: |
198 | debug: 4.3.4 | 369 | '@adonisjs/application': 5.3.0 |
199 | pify: 4.0.1 | 370 | '@phc/format': 1.0.0 |
200 | youch: 2.2.2 | 371 | '@poppinss/manager': 5.0.2 |
201 | youch-terminal: 1.1.1 | 372 | '@poppinss/utils': 5.0.0 |
202 | transitivePeerDependencies: | ||
203 | - supports-color | ||
204 | dev: false | ||
205 | 373 | ||
206 | /@adonisjs/lucid/6.3.0_siu2g6ofdcuoryphtpy44uq2je: | 374 | /@adonisjs/http-server@5.12.0(@adonisjs/application@5.3.0)(@adonisjs/encryption@4.0.8): |
207 | resolution: {integrity: sha512-4LNUAh/ruU2I0xIwwugrqbFPDB5xGZYPPWzODt3QAQhDhws76T/+HDuZmCdngzE0QC1Vi9Nd1Uqejgliq1N0Dg==} | 375 | resolution: {integrity: sha512-+9cw/DRlLO2NSoHsccmMe3pFf6c0/8INds2yf73ZAZOmzUROb9DQaXHocJ/iwHX9EVxtDuKWDc5z0jI1SYdqEA==} |
376 | peerDependencies: | ||
377 | '@adonisjs/application': ^5.0.0 | ||
378 | '@adonisjs/encryption': ^4.0.0 | ||
208 | dependencies: | 379 | dependencies: |
209 | '@adonisjs/generic-exceptions': 2.0.1 | 380 | '@adonisjs/application': 5.3.0 |
210 | chance: 1.1.9 | 381 | '@adonisjs/encryption': 4.0.8(@adonisjs/application@5.3.0) |
211 | debug: 4.3.4 | 382 | '@poppinss/matchit': 3.1.2 |
212 | knex: 0.21.21_siu2g6ofdcuoryphtpy44uq2je | 383 | '@poppinss/utils': 5.0.0 |
213 | lodash: 4.17.21 | 384 | accepts: 1.3.8 |
214 | moment: 2.29.4 | 385 | co-compose: 7.0.3 |
386 | content-disposition: 0.5.4 | ||
387 | cookie: 0.5.0 | ||
388 | destroy: 1.2.0 | ||
389 | encodeurl: 1.0.2 | ||
390 | etag: 1.8.1 | ||
391 | fresh: 0.5.2 | ||
392 | haye: 3.0.0 | ||
393 | macroable: 7.0.2 | ||
394 | mime-types: 2.1.35 | ||
395 | ms: 2.1.3 | ||
396 | on-finished: 2.4.1 | ||
215 | pluralize: 8.0.0 | 397 | pluralize: 8.0.0 |
398 | proxy-addr: 2.0.7 | ||
399 | qs: 6.11.2 | ||
400 | tmp-cache: 1.1.0 | ||
401 | type-is: 1.6.18 | ||
402 | vary: 1.1.2 | ||
403 | |||
404 | /@adonisjs/ioc-transformer@2.3.4: | ||
405 | resolution: {integrity: sha512-ik1C7f0Hbqenw6S1Ty06B4pznGfpUH5bL2fiCYgwq+jKPw8CKdsTQKvYudS6Tj68Nr6Mpqow4RNbvFV/OC0mZg==} | ||
406 | dev: true | ||
407 | |||
408 | /@adonisjs/logger@4.1.5: | ||
409 | resolution: {integrity: sha512-JMINhXp/6VW0y4e86luyM8vbBzV4Y5F4IzVklMObCu/SwiaCbp5bgx9Z6QOHiGVW8SFVlRF1KlwLq8pAifjTpQ==} | ||
410 | dependencies: | ||
411 | '@poppinss/utils': 5.0.0 | ||
412 | '@types/pino': 6.3.12 | ||
413 | abstract-logging: 2.0.1 | ||
414 | pino: 6.14.0 | ||
415 | |||
416 | /@adonisjs/lucid@18.4.0(@adonisjs/application@5.3.0)(@adonisjs/core@5.9.0)(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6): | ||
417 | resolution: {integrity: sha512-pSBhKFzqr6mWoeIiGdcW2OQIWAyCoLn+G7VmXXLqxHvGm+9SaioKJaSMmaJa0xgS5v64r/MVLeH/nw87Q4KpyQ==} | ||
418 | peerDependencies: | ||
419 | '@adonisjs/core': ^5.1.0 | ||
420 | dependencies: | ||
421 | '@adonisjs/core': 5.9.0 | ||
422 | '@faker-js/faker': 8.1.0 | ||
423 | '@poppinss/hooks': 5.0.3(@adonisjs/application@5.3.0) | ||
424 | '@poppinss/utils': 5.0.0 | ||
425 | fast-deep-equal: 3.1.3 | ||
426 | igniculus: 1.5.0 | ||
427 | knex: 2.5.1(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6) | ||
428 | knex-dynamic-connection: 3.1.0(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6) | ||
429 | luxon: 3.3.0 | ||
430 | macroable: 7.0.2 | ||
216 | pretty-hrtime: 1.0.3 | 431 | pretty-hrtime: 1.0.3 |
217 | require-all: 3.0.0 | 432 | qs: 6.11.2 |
433 | slash: 3.0.0 | ||
434 | tarn: 3.0.2 | ||
218 | transitivePeerDependencies: | 435 | transitivePeerDependencies: |
219 | - mssql | 436 | - '@adonisjs/application' |
437 | - better-sqlite3 | ||
220 | - mysql | 438 | - mysql |
221 | - mysql2 | 439 | - mysql2 |
222 | - pg | 440 | - pg |
441 | - pg-native | ||
223 | - sqlite3 | 442 | - sqlite3 |
224 | - supports-color | 443 | - supports-color |
444 | - tedious | ||
225 | dev: false | 445 | dev: false |
226 | 446 | ||
227 | /@adonisjs/mail/3.1.0: | 447 | /@adonisjs/mail@8.2.0(@adonisjs/core@5.9.0)(@adonisjs/view@6.2.0)(@types/luxon@3.3.1)(luxon@3.3.0)(moment@2.29.4): |
228 | resolution: {integrity: sha512-kCCXhA1+D76Iwzpo9WkG3HvWg/jx1QX9hhYxRvA0bM0Hf+Yc3qjAZlye4pQlnAGgshU9M5SN3xGpOZ9dVQVJ4g==} | 448 | resolution: {integrity: sha512-gsmqj4akVnR3UFBotrfY517uWl9JC9CLiXdxMdtO76sq3p6GUUV1GlqL/m6lPurPTrT8a+EFe5CKBpLwIt84CQ==} |
229 | dependencies: | 449 | peerDependencies: |
230 | '@adonisjs/generic-exceptions': 2.0.1 | 450 | '@adonisjs/core': ^5.1.0 |
231 | clone: 2.1.2 | 451 | '@adonisjs/view': ^6.0.0 |
232 | debug: 4.3.4 | 452 | dependencies: |
233 | form-data: 2.5.1 | 453 | '@adonisjs/core': 5.9.0 |
454 | '@adonisjs/view': 6.2.0(@adonisjs/core@5.9.0) | ||
455 | '@poppinss/colors': 3.0.3 | ||
456 | '@poppinss/manager': 5.0.2 | ||
457 | '@poppinss/utils': 4.0.4 | ||
458 | fastq: 1.15.0 | ||
234 | get-stream: 6.0.1 | 459 | get-stream: 6.0.1 |
235 | got: 8.3.0 | 460 | got: 11.8.6 |
236 | nodemailer: 4.7.0 | 461 | ical-generator: 4.1.0(@types/luxon@3.3.1)(luxon@3.3.0)(moment@2.29.4) |
462 | multi-part: 3.0.0 | ||
463 | nodemailer: 6.9.5 | ||
237 | transitivePeerDependencies: | 464 | transitivePeerDependencies: |
238 | - supports-color | 465 | - '@touch4it/ical-timezones' |
466 | - '@types/luxon' | ||
467 | - '@types/mocha' | ||
468 | - '@types/node' | ||
469 | - dayjs | ||
470 | - luxon | ||
471 | - moment | ||
472 | - moment-timezone | ||
473 | - rrule | ||
474 | dev: false | ||
475 | |||
476 | /@adonisjs/profiler@6.0.9(@adonisjs/logger@4.1.5): | ||
477 | resolution: {integrity: sha512-V1bJPPDTn05NzAKUEICnYtWi9fC8NownUToaqxVkWOUovYBO6ubt06qtH1Uv9zvUjB2PKHUn+ieDAOgyHle09A==} | ||
478 | peerDependencies: | ||
479 | '@adonisjs/logger': ^4.0.0 | ||
480 | dependencies: | ||
481 | '@adonisjs/logger': 4.1.5 | ||
482 | '@poppinss/utils': 4.0.4 | ||
483 | jest-worker: 27.5.1 | ||
484 | |||
485 | /@adonisjs/repl@3.1.11(@adonisjs/core@5.9.0): | ||
486 | resolution: {integrity: sha512-t4xN+G+fa/XeZ+7qHnFbTk1bri/4RIGdFDk1cq2SeZI3nfu3E8Ma62uQVc8U3AAroN51plzXVcUoQ/Iw8q1P+Q==} | ||
487 | peerDependencies: | ||
488 | '@adonisjs/core': ^5.1.0 | ||
489 | dependencies: | ||
490 | '@adonisjs/core': 5.9.0 | ||
491 | '@poppinss/colors': 3.0.3 | ||
492 | node-repl-await: 0.1.2 | ||
493 | parse-imports: 0.0.5 | ||
494 | string-width: 4.2.3 | ||
239 | dev: false | 495 | dev: false |
240 | 496 | ||
241 | /@adonisjs/middleware-base/1.0.0: | 497 | /@adonisjs/require-ts@2.0.13: |
242 | resolution: {integrity: sha512-Jw8teZCdR7DTRX72V4mJ45knlZRK0emoaBuAI7vMB5ucyeagLQE6Gl0vKxpRk3STrc2K56mKn23B5h8lQWyhcQ==} | 498 | resolution: {integrity: sha512-PyDvrGzriU9dJC/ZkP+aT/+5jKCMTWIlc6KivU/uSGX9L9+PF213nzAATS1PKEWP1G0GcWsnyhQW8QgMwuFS3A==} |
243 | dependencies: | 499 | dependencies: |
244 | '@adonisjs/generic-exceptions': 2.0.1 | 500 | '@poppinss/utils': 5.0.0 |
245 | co-compose: 4.0.0 | 501 | debug: 4.3.4 |
246 | debug: 3.2.7 | 502 | find-cache-dir: 3.3.2 |
247 | haye: 2.0.2 | 503 | fs-extra: 10.1.0 |
248 | lodash: 4.17.21 | 504 | normalize-path: 3.0.0 |
505 | pirates: 4.0.6 | ||
506 | rev-hash: 3.0.0 | ||
507 | source-map-support: 0.5.21 | ||
249 | transitivePeerDependencies: | 508 | transitivePeerDependencies: |
250 | - supports-color | 509 | - supports-color |
510 | dev: true | ||
511 | |||
512 | /@adonisjs/session@6.4.0(@adonisjs/core@5.9.0): | ||
513 | resolution: {integrity: sha512-9yHS60lFpNBUX5/yB+0j+bXQDWqbaYJ1JelLCYtaKRa7B0NewvmPAmsNpHH8SrXE3XGaRyKOxrUGRcmSGg5mRA==} | ||
514 | peerDependencies: | ||
515 | '@adonisjs/core': ^5.8.0 | ||
516 | dependencies: | ||
517 | '@adonisjs/core': 5.9.0 | ||
518 | '@poppinss/utils': 4.0.4 | ||
519 | fs-extra: 10.1.0 | ||
251 | dev: false | 520 | dev: false |
252 | 521 | ||
253 | /@adonisjs/persona/1.0.5: | 522 | /@adonisjs/shield@7.1.1(@adonisjs/core@5.9.0)(@adonisjs/session@6.4.0)(@adonisjs/view@6.2.0): |
254 | resolution: {integrity: sha512-VFdZ2CAx8WhDih/AkIf9ZG+62QESiInC4oAz+p4HNsY7fG0DDlbDX4TBPwSK1YOdiZCE6t2T0AcpChtXiBp5xg==} | 523 | resolution: {integrity: sha512-y1YzXwravcS/A1yxcyfSD/UrRi2+H9v0ntX9NgVhLYvBF5eHuPzQKgv9sICVjmj2z7n94HzcTAio0Rc32EX51Q==} |
524 | peerDependencies: | ||
525 | '@adonisjs/core': ^5.7.0 | ||
526 | '@adonisjs/session': ^6.2.0 | ||
527 | '@adonisjs/view': ^6.1.0 | ||
528 | peerDependenciesMeta: | ||
529 | '@adonisjs/view': | ||
530 | optional: true | ||
255 | dependencies: | 531 | dependencies: |
256 | '@adonisjs/generic-exceptions': 2.0.1 | 532 | '@adonisjs/core': 5.9.0 |
257 | moment: 2.29.4 | 533 | '@adonisjs/session': 6.4.0(@adonisjs/core@5.9.0) |
258 | rand-token: 0.4.0 | 534 | '@adonisjs/view': 6.2.0(@adonisjs/core@5.9.0) |
535 | '@poppinss/utils': 4.0.4 | ||
536 | csrf: 3.1.0 | ||
537 | helmet-csp: 3.4.0 | ||
538 | dev: false | ||
539 | |||
540 | /@adonisjs/sink@5.4.3(@adonisjs/application@5.3.0): | ||
541 | resolution: {integrity: sha512-wmAft/tjHQLtjbDjntaVu3/cmeP+3tXKDaMeWjVf6Dz+tXaM9XNg2EVVSV41F3JDF4W1u9ich9mC+4wvWJDy5g==} | ||
542 | peerDependencies: | ||
543 | '@adonisjs/application': ^5.0.0 | ||
544 | dependencies: | ||
545 | '@adonisjs/application': 5.3.0 | ||
546 | '@poppinss/cliui': 3.0.5 | ||
547 | '@poppinss/prompts': 2.0.2 | ||
548 | '@poppinss/utils': 5.0.0 | ||
549 | cp-file: 9.1.0 | ||
550 | fs-extra: 10.1.0 | ||
551 | marked: 4.3.0 | ||
552 | marked-terminal: 5.2.0(marked@4.3.0) | ||
553 | mrm-core: 7.1.13 | ||
554 | mustache: 4.2.0 | ||
555 | open: 8.4.2 | ||
556 | dev: true | ||
557 | |||
558 | /@adonisjs/validator@12.5.0(@adonisjs/application@5.3.0)(@adonisjs/bodyparser@8.1.9)(@adonisjs/http-server@5.12.0): | ||
559 | resolution: {integrity: sha512-88Lu+8OyS92A4mg0hE8AEjr8q9KmgZeR5obPGoAnCxBrptrsHHtKTQq242c+DbzuAWZzw5ZEX2dvv34PW/FmFw==} | ||
560 | peerDependencies: | ||
561 | '@adonisjs/application': ^5.0.0 | ||
562 | '@adonisjs/bodyparser': ^8.0.0 | ||
563 | '@adonisjs/http-server': ^5.0.0 | ||
564 | dependencies: | ||
565 | '@adonisjs/application': 5.3.0 | ||
566 | '@adonisjs/bodyparser': 8.1.9(@adonisjs/application@5.3.0)(@adonisjs/drive@2.3.0)(@adonisjs/http-server@5.12.0) | ||
567 | '@adonisjs/http-server': 5.12.0(@adonisjs/application@5.3.0)(@adonisjs/encryption@4.0.8) | ||
568 | '@poppinss/utils': 5.0.0 | ||
569 | '@types/luxon': 3.3.1 | ||
570 | '@types/validator': 13.11.2 | ||
571 | luxon: 3.4.3 | ||
572 | normalize-url: 6.1.0 | ||
573 | tmp-cache: 1.1.0 | ||
574 | validator: 13.11.0 | ||
575 | |||
576 | /@adonisjs/view@6.2.0(@adonisjs/core@5.9.0): | ||
577 | resolution: {integrity: sha512-967f0fQ0QqdHIGh8qVdWoTHbfjB21gCh+SmCbuBWk1etpO0xTGgA2P1iDkBp/9Cd8BUTyhJX2TamKTsUP8FraA==} | ||
578 | peerDependencies: | ||
579 | '@adonisjs/core': ^5.7.0 | ||
580 | dependencies: | ||
581 | '@adonisjs/core': 5.9.0 | ||
582 | edge-error: 2.0.8 | ||
583 | edge-supercharged: 3.1.1 | ||
584 | edge.js: 5.5.1 | ||
259 | dev: false | 585 | dev: false |
260 | 586 | ||
261 | /@adonisjs/session/1.1.0: | 587 | /@ampproject/remapping@2.2.1: |
262 | resolution: {integrity: sha512-phbTPevvmVcWgq1BXj5VM7MR5+MzXlQgl6Dc0zr8jfftYBscxoiirSaISJYWCwNO6HrPQon54a1/gx9Jr6ebGQ==} | 588 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} |
589 | engines: {node: '>=6.0.0'} | ||
590 | dependencies: | ||
591 | '@jridgewell/gen-mapping': 0.3.3 | ||
592 | '@jridgewell/trace-mapping': 0.3.19 | ||
593 | dev: true | ||
594 | |||
595 | /@apidevtools/json-schema-ref-parser@9.1.2: | ||
596 | resolution: {integrity: sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==} | ||
597 | dependencies: | ||
598 | '@jsdevtools/ono': 7.1.3 | ||
599 | '@types/json-schema': 7.0.13 | ||
600 | call-me-maybe: 1.0.2 | ||
601 | js-yaml: 4.1.0 | ||
602 | dev: true | ||
603 | |||
604 | /@apidevtools/openapi-schemas@2.1.0: | ||
605 | resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==} | ||
606 | engines: {node: '>=10'} | ||
607 | dev: true | ||
608 | |||
609 | /@apidevtools/swagger-methods@3.0.2: | ||
610 | resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==} | ||
611 | dev: true | ||
612 | |||
613 | /@apidevtools/swagger-parser@10.0.3(openapi-types@12.1.3): | ||
614 | resolution: {integrity: sha512-sNiLY51vZOmSPFZA5TF35KZ2HbgYklQnTSDnkghamzLb3EkNtcQnrBQEj5AOCxHpTtXpqMCRM1CrmV2rG6nw4g==} | ||
615 | peerDependencies: | ||
616 | openapi-types: '>=7' | ||
617 | dependencies: | ||
618 | '@apidevtools/json-schema-ref-parser': 9.1.2 | ||
619 | '@apidevtools/openapi-schemas': 2.1.0 | ||
620 | '@apidevtools/swagger-methods': 3.0.2 | ||
621 | '@jsdevtools/ono': 7.1.3 | ||
622 | call-me-maybe: 1.0.2 | ||
623 | openapi-types: 12.1.3 | ||
624 | z-schema: 5.0.5 | ||
625 | dev: true | ||
626 | |||
627 | /@arr/every@1.0.1: | ||
628 | resolution: {integrity: sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==} | ||
629 | engines: {node: '>=4'} | ||
630 | |||
631 | /@babel/code-frame@7.22.13: | ||
632 | resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} | ||
633 | engines: {node: '>=6.9.0'} | ||
263 | dependencies: | 634 | dependencies: |
264 | '@adonisjs/generic-exceptions': 2.0.1 | 635 | '@babel/highlight': 7.22.20 |
265 | bson: 1.1.6 | 636 | chalk: 2.4.2 |
637 | dev: true | ||
638 | |||
639 | /@babel/compat-data@7.22.20: | ||
640 | resolution: {integrity: sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==} | ||
641 | engines: {node: '>=6.9.0'} | ||
642 | dev: true | ||
643 | |||
644 | /@babel/core@7.23.0: | ||
645 | resolution: {integrity: sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==} | ||
646 | engines: {node: '>=6.9.0'} | ||
647 | dependencies: | ||
648 | '@ampproject/remapping': 2.2.1 | ||
649 | '@babel/code-frame': 7.22.13 | ||
650 | '@babel/generator': 7.23.0 | ||
651 | '@babel/helper-compilation-targets': 7.22.15 | ||
652 | '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) | ||
653 | '@babel/helpers': 7.23.1 | ||
654 | '@babel/parser': 7.23.0 | ||
655 | '@babel/template': 7.22.15 | ||
656 | '@babel/traverse': 7.23.0 | ||
657 | '@babel/types': 7.23.0 | ||
658 | convert-source-map: 2.0.0 | ||
266 | debug: 4.3.4 | 659 | debug: 4.3.4 |
267 | fs-extra: 9.1.0 | 660 | gensync: 1.0.0-beta.2 |
268 | lodash: 4.17.21 | 661 | json5: 2.2.3 |
269 | ms: 2.1.3 | 662 | semver: 6.3.1 |
270 | type-of-is: 3.5.1 | ||
271 | uuid: 8.3.2 | ||
272 | transitivePeerDependencies: | 663 | transitivePeerDependencies: |
273 | - supports-color | 664 | - supports-color |
274 | dev: false | 665 | dev: true |
666 | |||
667 | /@babel/generator@7.23.0: | ||
668 | resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} | ||
669 | engines: {node: '>=6.9.0'} | ||
670 | dependencies: | ||
671 | '@babel/types': 7.23.0 | ||
672 | '@jridgewell/gen-mapping': 0.3.3 | ||
673 | '@jridgewell/trace-mapping': 0.3.19 | ||
674 | jsesc: 2.5.2 | ||
675 | dev: true | ||
275 | 676 | ||
276 | /@adonisjs/shield/1.1.0: | 677 | /@babel/helper-annotate-as-pure@7.22.5: |
277 | resolution: {integrity: sha512-3qVwnLTeTk5w0Agi7xuQKj7r7QeA1yFXy0QfpjTIYIzQVy9QTk3DgIK5ZvGtr/2/ESHVosyOrCGr+kQDjtcBhA==} | 678 | resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} |
679 | engines: {node: '>=6.9.0'} | ||
278 | dependencies: | 680 | dependencies: |
279 | '@adonisjs/generic-exceptions': 2.0.1 | 681 | '@babel/types': 7.23.0 |
280 | csrf: 3.1.0 | 682 | dev: true |
281 | node-cookie: 2.1.2 | ||
282 | node-csp: 1.0.1 | ||
283 | node-guard: 1.0.0 | ||
284 | uuid: 8.3.2 | ||
285 | dev: false | ||
286 | 683 | ||
287 | /@adonisjs/validator/5.1.0: | 684 | /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: |
288 | resolution: {integrity: sha512-qz4YNfg89MzqfgluMuM1Wq7GSTOd3h2x0rn+cXT8rnva3jkgiWDaqstMSCNAelB3A2KiujbsxZk/HR0k5o9Zkg==} | 685 | resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} |
686 | engines: {node: '>=6.9.0'} | ||
289 | dependencies: | 687 | dependencies: |
290 | '@adonisjs/generic-exceptions': 2.0.1 | 688 | '@babel/types': 7.23.0 |
291 | indicative: 5.0.8 | 689 | dev: true |
292 | lodash: 4.17.21 | 690 | |
293 | dev: false | 691 | /@babel/helper-compilation-targets@7.22.15: |
692 | resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} | ||
693 | engines: {node: '>=6.9.0'} | ||
694 | dependencies: | ||
695 | '@babel/compat-data': 7.22.20 | ||
696 | '@babel/helper-validator-option': 7.22.15 | ||
697 | browserslist: 4.22.1 | ||
698 | lru-cache: 5.1.1 | ||
699 | semver: 6.3.1 | ||
700 | dev: true | ||
701 | |||
702 | /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.0): | ||
703 | resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} | ||
704 | engines: {node: '>=6.9.0'} | ||
705 | peerDependencies: | ||
706 | '@babel/core': ^7.0.0 | ||
707 | dependencies: | ||
708 | '@babel/core': 7.23.0 | ||
709 | '@babel/helper-annotate-as-pure': 7.22.5 | ||
710 | '@babel/helper-environment-visitor': 7.22.20 | ||
711 | '@babel/helper-function-name': 7.23.0 | ||
712 | '@babel/helper-member-expression-to-functions': 7.23.0 | ||
713 | '@babel/helper-optimise-call-expression': 7.22.5 | ||
714 | '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.0) | ||
715 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 | ||
716 | '@babel/helper-split-export-declaration': 7.22.6 | ||
717 | semver: 6.3.1 | ||
718 | dev: true | ||
719 | |||
720 | /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.0): | ||
721 | resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} | ||
722 | engines: {node: '>=6.9.0'} | ||
723 | peerDependencies: | ||
724 | '@babel/core': ^7.0.0 | ||
725 | dependencies: | ||
726 | '@babel/core': 7.23.0 | ||
727 | '@babel/helper-annotate-as-pure': 7.22.5 | ||
728 | regexpu-core: 5.3.2 | ||
729 | semver: 6.3.1 | ||
730 | dev: true | ||
731 | |||
732 | /@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.23.0): | ||
733 | resolution: {integrity: sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==} | ||
734 | peerDependencies: | ||
735 | '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 | ||
736 | dependencies: | ||
737 | '@babel/core': 7.23.0 | ||
738 | '@babel/helper-compilation-targets': 7.22.15 | ||
739 | '@babel/helper-plugin-utils': 7.22.5 | ||
740 | debug: 4.3.4 | ||
741 | lodash.debounce: 4.0.8 | ||
742 | resolve: 1.22.6 | ||
743 | transitivePeerDependencies: | ||
744 | - supports-color | ||
745 | dev: true | ||
746 | |||
747 | /@babel/helper-environment-visitor@7.22.20: | ||
748 | resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} | ||
749 | engines: {node: '>=6.9.0'} | ||
750 | dev: true | ||
751 | |||
752 | /@babel/helper-function-name@7.23.0: | ||
753 | resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} | ||
754 | engines: {node: '>=6.9.0'} | ||
755 | dependencies: | ||
756 | '@babel/template': 7.22.15 | ||
757 | '@babel/types': 7.23.0 | ||
758 | dev: true | ||
759 | |||
760 | /@babel/helper-hoist-variables@7.22.5: | ||
761 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} | ||
762 | engines: {node: '>=6.9.0'} | ||
763 | dependencies: | ||
764 | '@babel/types': 7.23.0 | ||
765 | dev: true | ||
766 | |||
767 | /@babel/helper-member-expression-to-functions@7.23.0: | ||
768 | resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} | ||
769 | engines: {node: '>=6.9.0'} | ||
770 | dependencies: | ||
771 | '@babel/types': 7.23.0 | ||
772 | dev: true | ||
773 | |||
774 | /@babel/helper-module-imports@7.22.15: | ||
775 | resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} | ||
776 | engines: {node: '>=6.9.0'} | ||
777 | dependencies: | ||
778 | '@babel/types': 7.23.0 | ||
779 | dev: true | ||
780 | |||
781 | /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.0): | ||
782 | resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} | ||
783 | engines: {node: '>=6.9.0'} | ||
784 | peerDependencies: | ||
785 | '@babel/core': ^7.0.0 | ||
786 | dependencies: | ||
787 | '@babel/core': 7.23.0 | ||
788 | '@babel/helper-environment-visitor': 7.22.20 | ||
789 | '@babel/helper-module-imports': 7.22.15 | ||
790 | '@babel/helper-simple-access': 7.22.5 | ||
791 | '@babel/helper-split-export-declaration': 7.22.6 | ||
792 | '@babel/helper-validator-identifier': 7.22.20 | ||
793 | dev: true | ||
794 | |||
795 | /@babel/helper-optimise-call-expression@7.22.5: | ||
796 | resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} | ||
797 | engines: {node: '>=6.9.0'} | ||
798 | dependencies: | ||
799 | '@babel/types': 7.23.0 | ||
800 | dev: true | ||
801 | |||
802 | /@babel/helper-plugin-utils@7.22.5: | ||
803 | resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} | ||
804 | engines: {node: '>=6.9.0'} | ||
805 | dev: true | ||
806 | |||
807 | /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.0): | ||
808 | resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} | ||
809 | engines: {node: '>=6.9.0'} | ||
810 | peerDependencies: | ||
811 | '@babel/core': ^7.0.0 | ||
812 | dependencies: | ||
813 | '@babel/core': 7.23.0 | ||
814 | '@babel/helper-annotate-as-pure': 7.22.5 | ||
815 | '@babel/helper-environment-visitor': 7.22.20 | ||
816 | '@babel/helper-wrap-function': 7.22.20 | ||
817 | dev: true | ||
818 | |||
819 | /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.0): | ||
820 | resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} | ||
821 | engines: {node: '>=6.9.0'} | ||
822 | peerDependencies: | ||
823 | '@babel/core': ^7.0.0 | ||
824 | dependencies: | ||
825 | '@babel/core': 7.23.0 | ||
826 | '@babel/helper-environment-visitor': 7.22.20 | ||
827 | '@babel/helper-member-expression-to-functions': 7.23.0 | ||
828 | '@babel/helper-optimise-call-expression': 7.22.5 | ||
829 | dev: true | ||
830 | |||
831 | /@babel/helper-simple-access@7.22.5: | ||
832 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} | ||
833 | engines: {node: '>=6.9.0'} | ||
834 | dependencies: | ||
835 | '@babel/types': 7.23.0 | ||
836 | dev: true | ||
837 | |||
838 | /@babel/helper-skip-transparent-expression-wrappers@7.22.5: | ||
839 | resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} | ||
840 | engines: {node: '>=6.9.0'} | ||
841 | dependencies: | ||
842 | '@babel/types': 7.23.0 | ||
843 | dev: true | ||
844 | |||
845 | /@babel/helper-split-export-declaration@7.22.6: | ||
846 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} | ||
847 | engines: {node: '>=6.9.0'} | ||
848 | dependencies: | ||
849 | '@babel/types': 7.23.0 | ||
850 | dev: true | ||
851 | |||
852 | /@babel/helper-string-parser@7.22.5: | ||
853 | resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} | ||
854 | engines: {node: '>=6.9.0'} | ||
855 | dev: true | ||
294 | 856 | ||
295 | /@babel/code-frame/7.12.11: | 857 | /@babel/helper-validator-identifier@7.22.20: |
296 | resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} | 858 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} |
859 | engines: {node: '>=6.9.0'} | ||
860 | dev: true | ||
861 | |||
862 | /@babel/helper-validator-option@7.22.15: | ||
863 | resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} | ||
864 | engines: {node: '>=6.9.0'} | ||
865 | dev: true | ||
866 | |||
867 | /@babel/helper-wrap-function@7.22.20: | ||
868 | resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} | ||
869 | engines: {node: '>=6.9.0'} | ||
297 | dependencies: | 870 | dependencies: |
298 | '@babel/highlight': 7.18.6 | 871 | '@babel/helper-function-name': 7.23.0 |
872 | '@babel/template': 7.22.15 | ||
873 | '@babel/types': 7.23.0 | ||
299 | dev: true | 874 | dev: true |
300 | 875 | ||
301 | /@babel/helper-validator-identifier/7.19.1: | 876 | /@babel/helpers@7.23.1: |
302 | resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} | 877 | resolution: {integrity: sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==} |
303 | engines: {node: '>=6.9.0'} | 878 | engines: {node: '>=6.9.0'} |
879 | dependencies: | ||
880 | '@babel/template': 7.22.15 | ||
881 | '@babel/traverse': 7.23.0 | ||
882 | '@babel/types': 7.23.0 | ||
883 | transitivePeerDependencies: | ||
884 | - supports-color | ||
304 | dev: true | 885 | dev: true |
305 | 886 | ||
306 | /@babel/highlight/7.18.6: | 887 | /@babel/highlight@7.22.20: |
307 | resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} | 888 | resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} |
308 | engines: {node: '>=6.9.0'} | 889 | engines: {node: '>=6.9.0'} |
309 | dependencies: | 890 | dependencies: |
310 | '@babel/helper-validator-identifier': 7.19.1 | 891 | '@babel/helper-validator-identifier': 7.22.20 |
311 | chalk: 2.4.2 | 892 | chalk: 2.4.2 |
312 | js-tokens: 4.0.0 | 893 | js-tokens: 4.0.0 |
313 | dev: true | 894 | dev: true |
314 | 895 | ||
315 | /@babel/runtime/7.20.6: | 896 | /@babel/parser@7.23.0: |
316 | resolution: {integrity: sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==} | 897 | resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} |
898 | engines: {node: '>=6.0.0'} | ||
899 | hasBin: true | ||
900 | dependencies: | ||
901 | '@babel/types': 7.23.0 | ||
902 | dev: true | ||
903 | |||
904 | /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.15(@babel/core@7.23.0): | ||
905 | resolution: {integrity: sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==} | ||
906 | engines: {node: '>=6.9.0'} | ||
907 | peerDependencies: | ||
908 | '@babel/core': ^7.0.0 | ||
909 | dependencies: | ||
910 | '@babel/core': 7.23.0 | ||
911 | '@babel/helper-plugin-utils': 7.22.5 | ||
912 | dev: true | ||
913 | |||
914 | /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.15(@babel/core@7.23.0): | ||
915 | resolution: {integrity: sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==} | ||
317 | engines: {node: '>=6.9.0'} | 916 | engines: {node: '>=6.9.0'} |
917 | peerDependencies: | ||
918 | '@babel/core': ^7.13.0 | ||
318 | dependencies: | 919 | dependencies: |
319 | regenerator-runtime: 0.13.11 | 920 | '@babel/core': 7.23.0 |
921 | '@babel/helper-plugin-utils': 7.22.5 | ||
922 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 | ||
923 | '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.0) | ||
320 | dev: true | 924 | dev: true |
321 | 925 | ||
322 | /@colors/colors/1.5.0: | 926 | /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.0): |
927 | resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} | ||
928 | engines: {node: '>=6.9.0'} | ||
929 | peerDependencies: | ||
930 | '@babel/core': ^7.0.0-0 | ||
931 | dependencies: | ||
932 | '@babel/core': 7.23.0 | ||
933 | dev: true | ||
934 | |||
935 | /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.0): | ||
936 | resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} | ||
937 | peerDependencies: | ||
938 | '@babel/core': ^7.0.0-0 | ||
939 | dependencies: | ||
940 | '@babel/core': 7.23.0 | ||
941 | '@babel/helper-plugin-utils': 7.22.5 | ||
942 | dev: true | ||
943 | |||
944 | /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.0): | ||
945 | resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} | ||
946 | peerDependencies: | ||
947 | '@babel/core': ^7.0.0-0 | ||
948 | dependencies: | ||
949 | '@babel/core': 7.23.0 | ||
950 | '@babel/helper-plugin-utils': 7.22.5 | ||
951 | dev: true | ||
952 | |||
953 | /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.0): | ||
954 | resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} | ||
955 | engines: {node: '>=6.9.0'} | ||
956 | peerDependencies: | ||
957 | '@babel/core': ^7.0.0-0 | ||
958 | dependencies: | ||
959 | '@babel/core': 7.23.0 | ||
960 | '@babel/helper-plugin-utils': 7.22.5 | ||
961 | dev: true | ||
962 | |||
963 | /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.0): | ||
964 | resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} | ||
965 | peerDependencies: | ||
966 | '@babel/core': ^7.0.0-0 | ||
967 | dependencies: | ||
968 | '@babel/core': 7.23.0 | ||
969 | '@babel/helper-plugin-utils': 7.22.5 | ||
970 | dev: true | ||
971 | |||
972 | /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.0): | ||
973 | resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} | ||
974 | peerDependencies: | ||
975 | '@babel/core': ^7.0.0-0 | ||
976 | dependencies: | ||
977 | '@babel/core': 7.23.0 | ||
978 | '@babel/helper-plugin-utils': 7.22.5 | ||
979 | dev: true | ||
980 | |||
981 | /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.23.0): | ||
982 | resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} | ||
983 | engines: {node: '>=6.9.0'} | ||
984 | peerDependencies: | ||
985 | '@babel/core': ^7.0.0-0 | ||
986 | dependencies: | ||
987 | '@babel/core': 7.23.0 | ||
988 | '@babel/helper-plugin-utils': 7.22.5 | ||
989 | dev: true | ||
990 | |||
991 | /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.23.0): | ||
992 | resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} | ||
993 | engines: {node: '>=6.9.0'} | ||
994 | peerDependencies: | ||
995 | '@babel/core': ^7.0.0-0 | ||
996 | dependencies: | ||
997 | '@babel/core': 7.23.0 | ||
998 | '@babel/helper-plugin-utils': 7.22.5 | ||
999 | dev: true | ||
1000 | |||
1001 | /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.0): | ||
1002 | resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} | ||
1003 | peerDependencies: | ||
1004 | '@babel/core': ^7.0.0-0 | ||
1005 | dependencies: | ||
1006 | '@babel/core': 7.23.0 | ||
1007 | '@babel/helper-plugin-utils': 7.22.5 | ||
1008 | dev: true | ||
1009 | |||
1010 | /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.0): | ||
1011 | resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} | ||
1012 | peerDependencies: | ||
1013 | '@babel/core': ^7.0.0-0 | ||
1014 | dependencies: | ||
1015 | '@babel/core': 7.23.0 | ||
1016 | '@babel/helper-plugin-utils': 7.22.5 | ||
1017 | dev: true | ||
1018 | |||
1019 | /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.0): | ||
1020 | resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} | ||
1021 | peerDependencies: | ||
1022 | '@babel/core': ^7.0.0-0 | ||
1023 | dependencies: | ||
1024 | '@babel/core': 7.23.0 | ||
1025 | '@babel/helper-plugin-utils': 7.22.5 | ||
1026 | dev: true | ||
1027 | |||
1028 | /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.0): | ||
1029 | resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} | ||
1030 | peerDependencies: | ||
1031 | '@babel/core': ^7.0.0-0 | ||
1032 | dependencies: | ||
1033 | '@babel/core': 7.23.0 | ||
1034 | '@babel/helper-plugin-utils': 7.22.5 | ||
1035 | dev: true | ||
1036 | |||
1037 | /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.0): | ||
1038 | resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} | ||
1039 | peerDependencies: | ||
1040 | '@babel/core': ^7.0.0-0 | ||
1041 | dependencies: | ||
1042 | '@babel/core': 7.23.0 | ||
1043 | '@babel/helper-plugin-utils': 7.22.5 | ||
1044 | dev: true | ||
1045 | |||
1046 | /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.0): | ||
1047 | resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} | ||
1048 | peerDependencies: | ||
1049 | '@babel/core': ^7.0.0-0 | ||
1050 | dependencies: | ||
1051 | '@babel/core': 7.23.0 | ||
1052 | '@babel/helper-plugin-utils': 7.22.5 | ||
1053 | dev: true | ||
1054 | |||
1055 | /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.0): | ||
1056 | resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} | ||
1057 | peerDependencies: | ||
1058 | '@babel/core': ^7.0.0-0 | ||
1059 | dependencies: | ||
1060 | '@babel/core': 7.23.0 | ||
1061 | '@babel/helper-plugin-utils': 7.22.5 | ||
1062 | dev: true | ||
1063 | |||
1064 | /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.0): | ||
1065 | resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} | ||
1066 | peerDependencies: | ||
1067 | '@babel/core': ^7.0.0-0 | ||
1068 | dependencies: | ||
1069 | '@babel/core': 7.23.0 | ||
1070 | '@babel/helper-plugin-utils': 7.22.5 | ||
1071 | dev: true | ||
1072 | |||
1073 | /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.0): | ||
1074 | resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} | ||
1075 | engines: {node: '>=6.9.0'} | ||
1076 | peerDependencies: | ||
1077 | '@babel/core': ^7.0.0-0 | ||
1078 | dependencies: | ||
1079 | '@babel/core': 7.23.0 | ||
1080 | '@babel/helper-plugin-utils': 7.22.5 | ||
1081 | dev: true | ||
1082 | |||
1083 | /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.0): | ||
1084 | resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} | ||
1085 | engines: {node: '>=6.9.0'} | ||
1086 | peerDependencies: | ||
1087 | '@babel/core': ^7.0.0-0 | ||
1088 | dependencies: | ||
1089 | '@babel/core': 7.23.0 | ||
1090 | '@babel/helper-plugin-utils': 7.22.5 | ||
1091 | dev: true | ||
1092 | |||
1093 | /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.0): | ||
1094 | resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} | ||
1095 | engines: {node: '>=6.9.0'} | ||
1096 | peerDependencies: | ||
1097 | '@babel/core': ^7.0.0 | ||
1098 | dependencies: | ||
1099 | '@babel/core': 7.23.0 | ||
1100 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.0) | ||
1101 | '@babel/helper-plugin-utils': 7.22.5 | ||
1102 | dev: true | ||
1103 | |||
1104 | /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.23.0): | ||
1105 | resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} | ||
1106 | engines: {node: '>=6.9.0'} | ||
1107 | peerDependencies: | ||
1108 | '@babel/core': ^7.0.0-0 | ||
1109 | dependencies: | ||
1110 | '@babel/core': 7.23.0 | ||
1111 | '@babel/helper-plugin-utils': 7.22.5 | ||
1112 | dev: true | ||
1113 | |||
1114 | /@babel/plugin-transform-async-generator-functions@7.22.15(@babel/core@7.23.0): | ||
1115 | resolution: {integrity: sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==} | ||
1116 | engines: {node: '>=6.9.0'} | ||
1117 | peerDependencies: | ||
1118 | '@babel/core': ^7.0.0-0 | ||
1119 | dependencies: | ||
1120 | '@babel/core': 7.23.0 | ||
1121 | '@babel/helper-environment-visitor': 7.22.20 | ||
1122 | '@babel/helper-plugin-utils': 7.22.5 | ||
1123 | '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.0) | ||
1124 | '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.0) | ||
1125 | dev: true | ||
1126 | |||
1127 | /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.23.0): | ||
1128 | resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} | ||
1129 | engines: {node: '>=6.9.0'} | ||
1130 | peerDependencies: | ||
1131 | '@babel/core': ^7.0.0-0 | ||
1132 | dependencies: | ||
1133 | '@babel/core': 7.23.0 | ||
1134 | '@babel/helper-module-imports': 7.22.15 | ||
1135 | '@babel/helper-plugin-utils': 7.22.5 | ||
1136 | '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.0) | ||
1137 | dev: true | ||
1138 | |||
1139 | /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.23.0): | ||
1140 | resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} | ||
1141 | engines: {node: '>=6.9.0'} | ||
1142 | peerDependencies: | ||
1143 | '@babel/core': ^7.0.0-0 | ||
1144 | dependencies: | ||
1145 | '@babel/core': 7.23.0 | ||
1146 | '@babel/helper-plugin-utils': 7.22.5 | ||
1147 | dev: true | ||
1148 | |||
1149 | /@babel/plugin-transform-block-scoping@7.23.0(@babel/core@7.23.0): | ||
1150 | resolution: {integrity: sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==} | ||
1151 | engines: {node: '>=6.9.0'} | ||
1152 | peerDependencies: | ||
1153 | '@babel/core': ^7.0.0-0 | ||
1154 | dependencies: | ||
1155 | '@babel/core': 7.23.0 | ||
1156 | '@babel/helper-plugin-utils': 7.22.5 | ||
1157 | dev: true | ||
1158 | |||
1159 | /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.23.0): | ||
1160 | resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} | ||
1161 | engines: {node: '>=6.9.0'} | ||
1162 | peerDependencies: | ||
1163 | '@babel/core': ^7.0.0-0 | ||
1164 | dependencies: | ||
1165 | '@babel/core': 7.23.0 | ||
1166 | '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.0) | ||
1167 | '@babel/helper-plugin-utils': 7.22.5 | ||
1168 | dev: true | ||
1169 | |||
1170 | /@babel/plugin-transform-class-static-block@7.22.11(@babel/core@7.23.0): | ||
1171 | resolution: {integrity: sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==} | ||
1172 | engines: {node: '>=6.9.0'} | ||
1173 | peerDependencies: | ||
1174 | '@babel/core': ^7.12.0 | ||
1175 | dependencies: | ||
1176 | '@babel/core': 7.23.0 | ||
1177 | '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.0) | ||
1178 | '@babel/helper-plugin-utils': 7.22.5 | ||
1179 | '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.0) | ||
1180 | dev: true | ||
1181 | |||
1182 | /@babel/plugin-transform-classes@7.22.15(@babel/core@7.23.0): | ||
1183 | resolution: {integrity: sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==} | ||
1184 | engines: {node: '>=6.9.0'} | ||
1185 | peerDependencies: | ||
1186 | '@babel/core': ^7.0.0-0 | ||
1187 | dependencies: | ||
1188 | '@babel/core': 7.23.0 | ||
1189 | '@babel/helper-annotate-as-pure': 7.22.5 | ||
1190 | '@babel/helper-compilation-targets': 7.22.15 | ||
1191 | '@babel/helper-environment-visitor': 7.22.20 | ||
1192 | '@babel/helper-function-name': 7.23.0 | ||
1193 | '@babel/helper-optimise-call-expression': 7.22.5 | ||
1194 | '@babel/helper-plugin-utils': 7.22.5 | ||
1195 | '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.0) | ||
1196 | '@babel/helper-split-export-declaration': 7.22.6 | ||
1197 | globals: 11.12.0 | ||
1198 | dev: true | ||
1199 | |||
1200 | /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.23.0): | ||
1201 | resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} | ||
1202 | engines: {node: '>=6.9.0'} | ||
1203 | peerDependencies: | ||
1204 | '@babel/core': ^7.0.0-0 | ||
1205 | dependencies: | ||
1206 | '@babel/core': 7.23.0 | ||
1207 | '@babel/helper-plugin-utils': 7.22.5 | ||
1208 | '@babel/template': 7.22.15 | ||
1209 | dev: true | ||
1210 | |||
1211 | /@babel/plugin-transform-destructuring@7.23.0(@babel/core@7.23.0): | ||
1212 | resolution: {integrity: sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==} | ||
1213 | engines: {node: '>=6.9.0'} | ||
1214 | peerDependencies: | ||
1215 | '@babel/core': ^7.0.0-0 | ||
1216 | dependencies: | ||
1217 | '@babel/core': 7.23.0 | ||
1218 | '@babel/helper-plugin-utils': 7.22.5 | ||
1219 | dev: true | ||
1220 | |||
1221 | /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.23.0): | ||
1222 | resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} | ||
1223 | engines: {node: '>=6.9.0'} | ||
1224 | peerDependencies: | ||
1225 | '@babel/core': ^7.0.0-0 | ||
1226 | dependencies: | ||
1227 | '@babel/core': 7.23.0 | ||
1228 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.0) | ||
1229 | '@babel/helper-plugin-utils': 7.22.5 | ||
1230 | dev: true | ||
1231 | |||
1232 | /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.23.0): | ||
1233 | resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} | ||
1234 | engines: {node: '>=6.9.0'} | ||
1235 | peerDependencies: | ||
1236 | '@babel/core': ^7.0.0-0 | ||
1237 | dependencies: | ||
1238 | '@babel/core': 7.23.0 | ||
1239 | '@babel/helper-plugin-utils': 7.22.5 | ||
1240 | dev: true | ||
1241 | |||
1242 | /@babel/plugin-transform-dynamic-import@7.22.11(@babel/core@7.23.0): | ||
1243 | resolution: {integrity: sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==} | ||
1244 | engines: {node: '>=6.9.0'} | ||
1245 | peerDependencies: | ||
1246 | '@babel/core': ^7.0.0-0 | ||
1247 | dependencies: | ||
1248 | '@babel/core': 7.23.0 | ||
1249 | '@babel/helper-plugin-utils': 7.22.5 | ||
1250 | '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.0) | ||
1251 | dev: true | ||
1252 | |||
1253 | /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.23.0): | ||
1254 | resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} | ||
1255 | engines: {node: '>=6.9.0'} | ||
1256 | peerDependencies: | ||
1257 | '@babel/core': ^7.0.0-0 | ||
1258 | dependencies: | ||
1259 | '@babel/core': 7.23.0 | ||
1260 | '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 | ||
1261 | '@babel/helper-plugin-utils': 7.22.5 | ||
1262 | dev: true | ||
1263 | |||
1264 | /@babel/plugin-transform-export-namespace-from@7.22.11(@babel/core@7.23.0): | ||
1265 | resolution: {integrity: sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==} | ||
1266 | engines: {node: '>=6.9.0'} | ||
1267 | peerDependencies: | ||
1268 | '@babel/core': ^7.0.0-0 | ||
1269 | dependencies: | ||
1270 | '@babel/core': 7.23.0 | ||
1271 | '@babel/helper-plugin-utils': 7.22.5 | ||
1272 | '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.0) | ||
1273 | dev: true | ||
1274 | |||
1275 | /@babel/plugin-transform-for-of@7.22.15(@babel/core@7.23.0): | ||
1276 | resolution: {integrity: sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==} | ||
1277 | engines: {node: '>=6.9.0'} | ||
1278 | peerDependencies: | ||
1279 | '@babel/core': ^7.0.0-0 | ||
1280 | dependencies: | ||
1281 | '@babel/core': 7.23.0 | ||
1282 | '@babel/helper-plugin-utils': 7.22.5 | ||
1283 | dev: true | ||
1284 | |||
1285 | /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.23.0): | ||
1286 | resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} | ||
1287 | engines: {node: '>=6.9.0'} | ||
1288 | peerDependencies: | ||
1289 | '@babel/core': ^7.0.0-0 | ||
1290 | dependencies: | ||
1291 | '@babel/core': 7.23.0 | ||
1292 | '@babel/helper-compilation-targets': 7.22.15 | ||
1293 | '@babel/helper-function-name': 7.23.0 | ||
1294 | '@babel/helper-plugin-utils': 7.22.5 | ||
1295 | dev: true | ||
1296 | |||
1297 | /@babel/plugin-transform-json-strings@7.22.11(@babel/core@7.23.0): | ||
1298 | resolution: {integrity: sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==} | ||
1299 | engines: {node: '>=6.9.0'} | ||
1300 | peerDependencies: | ||
1301 | '@babel/core': ^7.0.0-0 | ||
1302 | dependencies: | ||
1303 | '@babel/core': 7.23.0 | ||
1304 | '@babel/helper-plugin-utils': 7.22.5 | ||
1305 | '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.0) | ||
1306 | dev: true | ||
1307 | |||
1308 | /@babel/plugin-transform-literals@7.22.5(@babel/core@7.23.0): | ||
1309 | resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} | ||
1310 | engines: {node: '>=6.9.0'} | ||
1311 | peerDependencies: | ||
1312 | '@babel/core': ^7.0.0-0 | ||
1313 | dependencies: | ||
1314 | '@babel/core': 7.23.0 | ||
1315 | '@babel/helper-plugin-utils': 7.22.5 | ||
1316 | dev: true | ||
1317 | |||
1318 | /@babel/plugin-transform-logical-assignment-operators@7.22.11(@babel/core@7.23.0): | ||
1319 | resolution: {integrity: sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==} | ||
1320 | engines: {node: '>=6.9.0'} | ||
1321 | peerDependencies: | ||
1322 | '@babel/core': ^7.0.0-0 | ||
1323 | dependencies: | ||
1324 | '@babel/core': 7.23.0 | ||
1325 | '@babel/helper-plugin-utils': 7.22.5 | ||
1326 | '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.0) | ||
1327 | dev: true | ||
1328 | |||
1329 | /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.23.0): | ||
1330 | resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} | ||
1331 | engines: {node: '>=6.9.0'} | ||
1332 | peerDependencies: | ||
1333 | '@babel/core': ^7.0.0-0 | ||
1334 | dependencies: | ||
1335 | '@babel/core': 7.23.0 | ||
1336 | '@babel/helper-plugin-utils': 7.22.5 | ||
1337 | dev: true | ||
1338 | |||
1339 | /@babel/plugin-transform-modules-amd@7.23.0(@babel/core@7.23.0): | ||
1340 | resolution: {integrity: sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==} | ||
1341 | engines: {node: '>=6.9.0'} | ||
1342 | peerDependencies: | ||
1343 | '@babel/core': ^7.0.0-0 | ||
1344 | dependencies: | ||
1345 | '@babel/core': 7.23.0 | ||
1346 | '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) | ||
1347 | '@babel/helper-plugin-utils': 7.22.5 | ||
1348 | dev: true | ||
1349 | |||
1350 | /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.0): | ||
1351 | resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==} | ||
1352 | engines: {node: '>=6.9.0'} | ||
1353 | peerDependencies: | ||
1354 | '@babel/core': ^7.0.0-0 | ||
1355 | dependencies: | ||
1356 | '@babel/core': 7.23.0 | ||
1357 | '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) | ||
1358 | '@babel/helper-plugin-utils': 7.22.5 | ||
1359 | '@babel/helper-simple-access': 7.22.5 | ||
1360 | dev: true | ||
1361 | |||
1362 | /@babel/plugin-transform-modules-systemjs@7.23.0(@babel/core@7.23.0): | ||
1363 | resolution: {integrity: sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==} | ||
1364 | engines: {node: '>=6.9.0'} | ||
1365 | peerDependencies: | ||
1366 | '@babel/core': ^7.0.0-0 | ||
1367 | dependencies: | ||
1368 | '@babel/core': 7.23.0 | ||
1369 | '@babel/helper-hoist-variables': 7.22.5 | ||
1370 | '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) | ||
1371 | '@babel/helper-plugin-utils': 7.22.5 | ||
1372 | '@babel/helper-validator-identifier': 7.22.20 | ||
1373 | dev: true | ||
1374 | |||
1375 | /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.23.0): | ||
1376 | resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} | ||
1377 | engines: {node: '>=6.9.0'} | ||
1378 | peerDependencies: | ||
1379 | '@babel/core': ^7.0.0-0 | ||
1380 | dependencies: | ||
1381 | '@babel/core': 7.23.0 | ||
1382 | '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) | ||
1383 | '@babel/helper-plugin-utils': 7.22.5 | ||
1384 | dev: true | ||
1385 | |||
1386 | /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.0): | ||
1387 | resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} | ||
1388 | engines: {node: '>=6.9.0'} | ||
1389 | peerDependencies: | ||
1390 | '@babel/core': ^7.0.0 | ||
1391 | dependencies: | ||
1392 | '@babel/core': 7.23.0 | ||
1393 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.0) | ||
1394 | '@babel/helper-plugin-utils': 7.22.5 | ||
1395 | dev: true | ||
1396 | |||
1397 | /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.23.0): | ||
1398 | resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} | ||
1399 | engines: {node: '>=6.9.0'} | ||
1400 | peerDependencies: | ||
1401 | '@babel/core': ^7.0.0-0 | ||
1402 | dependencies: | ||
1403 | '@babel/core': 7.23.0 | ||
1404 | '@babel/helper-plugin-utils': 7.22.5 | ||
1405 | dev: true | ||
1406 | |||
1407 | /@babel/plugin-transform-nullish-coalescing-operator@7.22.11(@babel/core@7.23.0): | ||
1408 | resolution: {integrity: sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==} | ||
1409 | engines: {node: '>=6.9.0'} | ||
1410 | peerDependencies: | ||
1411 | '@babel/core': ^7.0.0-0 | ||
1412 | dependencies: | ||
1413 | '@babel/core': 7.23.0 | ||
1414 | '@babel/helper-plugin-utils': 7.22.5 | ||
1415 | '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.0) | ||
1416 | dev: true | ||
1417 | |||
1418 | /@babel/plugin-transform-numeric-separator@7.22.11(@babel/core@7.23.0): | ||
1419 | resolution: {integrity: sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==} | ||
1420 | engines: {node: '>=6.9.0'} | ||
1421 | peerDependencies: | ||
1422 | '@babel/core': ^7.0.0-0 | ||
1423 | dependencies: | ||
1424 | '@babel/core': 7.23.0 | ||
1425 | '@babel/helper-plugin-utils': 7.22.5 | ||
1426 | '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.0) | ||
1427 | dev: true | ||
1428 | |||
1429 | /@babel/plugin-transform-object-rest-spread@7.22.15(@babel/core@7.23.0): | ||
1430 | resolution: {integrity: sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==} | ||
1431 | engines: {node: '>=6.9.0'} | ||
1432 | peerDependencies: | ||
1433 | '@babel/core': ^7.0.0-0 | ||
1434 | dependencies: | ||
1435 | '@babel/compat-data': 7.22.20 | ||
1436 | '@babel/core': 7.23.0 | ||
1437 | '@babel/helper-compilation-targets': 7.22.15 | ||
1438 | '@babel/helper-plugin-utils': 7.22.5 | ||
1439 | '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.0) | ||
1440 | '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.0) | ||
1441 | dev: true | ||
1442 | |||
1443 | /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.23.0): | ||
1444 | resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} | ||
1445 | engines: {node: '>=6.9.0'} | ||
1446 | peerDependencies: | ||
1447 | '@babel/core': ^7.0.0-0 | ||
1448 | dependencies: | ||
1449 | '@babel/core': 7.23.0 | ||
1450 | '@babel/helper-plugin-utils': 7.22.5 | ||
1451 | '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.0) | ||
1452 | dev: true | ||
1453 | |||
1454 | /@babel/plugin-transform-optional-catch-binding@7.22.11(@babel/core@7.23.0): | ||
1455 | resolution: {integrity: sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==} | ||
1456 | engines: {node: '>=6.9.0'} | ||
1457 | peerDependencies: | ||
1458 | '@babel/core': ^7.0.0-0 | ||
1459 | dependencies: | ||
1460 | '@babel/core': 7.23.0 | ||
1461 | '@babel/helper-plugin-utils': 7.22.5 | ||
1462 | '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.0) | ||
1463 | dev: true | ||
1464 | |||
1465 | /@babel/plugin-transform-optional-chaining@7.23.0(@babel/core@7.23.0): | ||
1466 | resolution: {integrity: sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==} | ||
1467 | engines: {node: '>=6.9.0'} | ||
1468 | peerDependencies: | ||
1469 | '@babel/core': ^7.0.0-0 | ||
1470 | dependencies: | ||
1471 | '@babel/core': 7.23.0 | ||
1472 | '@babel/helper-plugin-utils': 7.22.5 | ||
1473 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 | ||
1474 | '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.0) | ||
1475 | dev: true | ||
1476 | |||
1477 | /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.23.0): | ||
1478 | resolution: {integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==} | ||
1479 | engines: {node: '>=6.9.0'} | ||
1480 | peerDependencies: | ||
1481 | '@babel/core': ^7.0.0-0 | ||
1482 | dependencies: | ||
1483 | '@babel/core': 7.23.0 | ||
1484 | '@babel/helper-plugin-utils': 7.22.5 | ||
1485 | dev: true | ||
1486 | |||
1487 | /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.23.0): | ||
1488 | resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} | ||
1489 | engines: {node: '>=6.9.0'} | ||
1490 | peerDependencies: | ||
1491 | '@babel/core': ^7.0.0-0 | ||
1492 | dependencies: | ||
1493 | '@babel/core': 7.23.0 | ||
1494 | '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.0) | ||
1495 | '@babel/helper-plugin-utils': 7.22.5 | ||
1496 | dev: true | ||
1497 | |||
1498 | /@babel/plugin-transform-private-property-in-object@7.22.11(@babel/core@7.23.0): | ||
1499 | resolution: {integrity: sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==} | ||
1500 | engines: {node: '>=6.9.0'} | ||
1501 | peerDependencies: | ||
1502 | '@babel/core': ^7.0.0-0 | ||
1503 | dependencies: | ||
1504 | '@babel/core': 7.23.0 | ||
1505 | '@babel/helper-annotate-as-pure': 7.22.5 | ||
1506 | '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.0) | ||
1507 | '@babel/helper-plugin-utils': 7.22.5 | ||
1508 | '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.0) | ||
1509 | dev: true | ||
1510 | |||
1511 | /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.23.0): | ||
1512 | resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} | ||
1513 | engines: {node: '>=6.9.0'} | ||
1514 | peerDependencies: | ||
1515 | '@babel/core': ^7.0.0-0 | ||
1516 | dependencies: | ||
1517 | '@babel/core': 7.23.0 | ||
1518 | '@babel/helper-plugin-utils': 7.22.5 | ||
1519 | dev: true | ||
1520 | |||
1521 | /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.23.0): | ||
1522 | resolution: {integrity: sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==} | ||
1523 | engines: {node: '>=6.9.0'} | ||
1524 | peerDependencies: | ||
1525 | '@babel/core': ^7.0.0-0 | ||
1526 | dependencies: | ||
1527 | '@babel/core': 7.23.0 | ||
1528 | '@babel/helper-plugin-utils': 7.22.5 | ||
1529 | regenerator-transform: 0.15.2 | ||
1530 | dev: true | ||
1531 | |||
1532 | /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.23.0): | ||
1533 | resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} | ||
1534 | engines: {node: '>=6.9.0'} | ||
1535 | peerDependencies: | ||
1536 | '@babel/core': ^7.0.0-0 | ||
1537 | dependencies: | ||
1538 | '@babel/core': 7.23.0 | ||
1539 | '@babel/helper-plugin-utils': 7.22.5 | ||
1540 | dev: true | ||
1541 | |||
1542 | /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.23.0): | ||
1543 | resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} | ||
1544 | engines: {node: '>=6.9.0'} | ||
1545 | peerDependencies: | ||
1546 | '@babel/core': ^7.0.0-0 | ||
1547 | dependencies: | ||
1548 | '@babel/core': 7.23.0 | ||
1549 | '@babel/helper-plugin-utils': 7.22.5 | ||
1550 | dev: true | ||
1551 | |||
1552 | /@babel/plugin-transform-spread@7.22.5(@babel/core@7.23.0): | ||
1553 | resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} | ||
1554 | engines: {node: '>=6.9.0'} | ||
1555 | peerDependencies: | ||
1556 | '@babel/core': ^7.0.0-0 | ||
1557 | dependencies: | ||
1558 | '@babel/core': 7.23.0 | ||
1559 | '@babel/helper-plugin-utils': 7.22.5 | ||
1560 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 | ||
1561 | dev: true | ||
1562 | |||
1563 | /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.23.0): | ||
1564 | resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} | ||
1565 | engines: {node: '>=6.9.0'} | ||
1566 | peerDependencies: | ||
1567 | '@babel/core': ^7.0.0-0 | ||
1568 | dependencies: | ||
1569 | '@babel/core': 7.23.0 | ||
1570 | '@babel/helper-plugin-utils': 7.22.5 | ||
1571 | dev: true | ||
1572 | |||
1573 | /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.23.0): | ||
1574 | resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} | ||
1575 | engines: {node: '>=6.9.0'} | ||
1576 | peerDependencies: | ||
1577 | '@babel/core': ^7.0.0-0 | ||
1578 | dependencies: | ||
1579 | '@babel/core': 7.23.0 | ||
1580 | '@babel/helper-plugin-utils': 7.22.5 | ||
1581 | dev: true | ||
1582 | |||
1583 | /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.23.0): | ||
1584 | resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} | ||
1585 | engines: {node: '>=6.9.0'} | ||
1586 | peerDependencies: | ||
1587 | '@babel/core': ^7.0.0-0 | ||
1588 | dependencies: | ||
1589 | '@babel/core': 7.23.0 | ||
1590 | '@babel/helper-plugin-utils': 7.22.5 | ||
1591 | dev: true | ||
1592 | |||
1593 | /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.23.0): | ||
1594 | resolution: {integrity: sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==} | ||
1595 | engines: {node: '>=6.9.0'} | ||
1596 | peerDependencies: | ||
1597 | '@babel/core': ^7.0.0-0 | ||
1598 | dependencies: | ||
1599 | '@babel/core': 7.23.0 | ||
1600 | '@babel/helper-plugin-utils': 7.22.5 | ||
1601 | dev: true | ||
1602 | |||
1603 | /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.23.0): | ||
1604 | resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} | ||
1605 | engines: {node: '>=6.9.0'} | ||
1606 | peerDependencies: | ||
1607 | '@babel/core': ^7.0.0-0 | ||
1608 | dependencies: | ||
1609 | '@babel/core': 7.23.0 | ||
1610 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.0) | ||
1611 | '@babel/helper-plugin-utils': 7.22.5 | ||
1612 | dev: true | ||
1613 | |||
1614 | /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.23.0): | ||
1615 | resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} | ||
1616 | engines: {node: '>=6.9.0'} | ||
1617 | peerDependencies: | ||
1618 | '@babel/core': ^7.0.0-0 | ||
1619 | dependencies: | ||
1620 | '@babel/core': 7.23.0 | ||
1621 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.0) | ||
1622 | '@babel/helper-plugin-utils': 7.22.5 | ||
1623 | dev: true | ||
1624 | |||
1625 | /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.23.0): | ||
1626 | resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} | ||
1627 | engines: {node: '>=6.9.0'} | ||
1628 | peerDependencies: | ||
1629 | '@babel/core': ^7.0.0 | ||
1630 | dependencies: | ||
1631 | '@babel/core': 7.23.0 | ||
1632 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.0) | ||
1633 | '@babel/helper-plugin-utils': 7.22.5 | ||
1634 | dev: true | ||
1635 | |||
1636 | /@babel/preset-env@7.22.20(@babel/core@7.23.0): | ||
1637 | resolution: {integrity: sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg==} | ||
1638 | engines: {node: '>=6.9.0'} | ||
1639 | peerDependencies: | ||
1640 | '@babel/core': ^7.0.0-0 | ||
1641 | dependencies: | ||
1642 | '@babel/compat-data': 7.22.20 | ||
1643 | '@babel/core': 7.23.0 | ||
1644 | '@babel/helper-compilation-targets': 7.22.15 | ||
1645 | '@babel/helper-plugin-utils': 7.22.5 | ||
1646 | '@babel/helper-validator-option': 7.22.15 | ||
1647 | '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.15(@babel/core@7.23.0) | ||
1648 | '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.15(@babel/core@7.23.0) | ||
1649 | '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.0) | ||
1650 | '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.0) | ||
1651 | '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.0) | ||
1652 | '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.0) | ||
1653 | '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.0) | ||
1654 | '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.0) | ||
1655 | '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.0) | ||
1656 | '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.23.0) | ||
1657 | '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.0) | ||
1658 | '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.0) | ||
1659 | '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.0) | ||
1660 | '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.0) | ||
1661 | '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.0) | ||
1662 | '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.0) | ||
1663 | '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.0) | ||
1664 | '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.0) | ||
1665 | '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.0) | ||
1666 | '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.0) | ||
1667 | '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.0) | ||
1668 | '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.23.0) | ||
1669 | '@babel/plugin-transform-async-generator-functions': 7.22.15(@babel/core@7.23.0) | ||
1670 | '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.23.0) | ||
1671 | '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.23.0) | ||
1672 | '@babel/plugin-transform-block-scoping': 7.23.0(@babel/core@7.23.0) | ||
1673 | '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.23.0) | ||
1674 | '@babel/plugin-transform-class-static-block': 7.22.11(@babel/core@7.23.0) | ||
1675 | '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.23.0) | ||
1676 | '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.23.0) | ||
1677 | '@babel/plugin-transform-destructuring': 7.23.0(@babel/core@7.23.0) | ||
1678 | '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.23.0) | ||
1679 | '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.23.0) | ||
1680 | '@babel/plugin-transform-dynamic-import': 7.22.11(@babel/core@7.23.0) | ||
1681 | '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.23.0) | ||
1682 | '@babel/plugin-transform-export-namespace-from': 7.22.11(@babel/core@7.23.0) | ||
1683 | '@babel/plugin-transform-for-of': 7.22.15(@babel/core@7.23.0) | ||
1684 | '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.23.0) | ||
1685 | '@babel/plugin-transform-json-strings': 7.22.11(@babel/core@7.23.0) | ||
1686 | '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.23.0) | ||
1687 | '@babel/plugin-transform-logical-assignment-operators': 7.22.11(@babel/core@7.23.0) | ||
1688 | '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.23.0) | ||
1689 | '@babel/plugin-transform-modules-amd': 7.23.0(@babel/core@7.23.0) | ||
1690 | '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.0) | ||
1691 | '@babel/plugin-transform-modules-systemjs': 7.23.0(@babel/core@7.23.0) | ||
1692 | '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.23.0) | ||
1693 | '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.0) | ||
1694 | '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.23.0) | ||
1695 | '@babel/plugin-transform-nullish-coalescing-operator': 7.22.11(@babel/core@7.23.0) | ||
1696 | '@babel/plugin-transform-numeric-separator': 7.22.11(@babel/core@7.23.0) | ||
1697 | '@babel/plugin-transform-object-rest-spread': 7.22.15(@babel/core@7.23.0) | ||
1698 | '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.23.0) | ||
1699 | '@babel/plugin-transform-optional-catch-binding': 7.22.11(@babel/core@7.23.0) | ||
1700 | '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.0) | ||
1701 | '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.0) | ||
1702 | '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.23.0) | ||
1703 | '@babel/plugin-transform-private-property-in-object': 7.22.11(@babel/core@7.23.0) | ||
1704 | '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.23.0) | ||
1705 | '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.23.0) | ||
1706 | '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.23.0) | ||
1707 | '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.23.0) | ||
1708 | '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.23.0) | ||
1709 | '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.23.0) | ||
1710 | '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.23.0) | ||
1711 | '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.23.0) | ||
1712 | '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.23.0) | ||
1713 | '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.23.0) | ||
1714 | '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.23.0) | ||
1715 | '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.23.0) | ||
1716 | '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.0) | ||
1717 | '@babel/types': 7.23.0 | ||
1718 | babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.23.0) | ||
1719 | babel-plugin-polyfill-corejs3: 0.8.4(@babel/core@7.23.0) | ||
1720 | babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.23.0) | ||
1721 | core-js-compat: 3.32.2 | ||
1722 | semver: 6.3.1 | ||
1723 | transitivePeerDependencies: | ||
1724 | - supports-color | ||
1725 | dev: true | ||
1726 | |||
1727 | /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.0): | ||
1728 | resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} | ||
1729 | peerDependencies: | ||
1730 | '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 | ||
1731 | dependencies: | ||
1732 | '@babel/core': 7.23.0 | ||
1733 | '@babel/helper-plugin-utils': 7.22.5 | ||
1734 | '@babel/types': 7.23.0 | ||
1735 | esutils: 2.0.3 | ||
1736 | dev: true | ||
1737 | |||
1738 | /@babel/regjsgen@0.8.0: | ||
1739 | resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} | ||
1740 | dev: true | ||
1741 | |||
1742 | /@babel/runtime@7.23.1: | ||
1743 | resolution: {integrity: sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==} | ||
1744 | engines: {node: '>=6.9.0'} | ||
1745 | dependencies: | ||
1746 | regenerator-runtime: 0.14.0 | ||
1747 | dev: true | ||
1748 | |||
1749 | /@babel/template@7.22.15: | ||
1750 | resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} | ||
1751 | engines: {node: '>=6.9.0'} | ||
1752 | dependencies: | ||
1753 | '@babel/code-frame': 7.22.13 | ||
1754 | '@babel/parser': 7.23.0 | ||
1755 | '@babel/types': 7.23.0 | ||
1756 | dev: true | ||
1757 | |||
1758 | /@babel/traverse@7.23.0: | ||
1759 | resolution: {integrity: sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==} | ||
1760 | engines: {node: '>=6.9.0'} | ||
1761 | dependencies: | ||
1762 | '@babel/code-frame': 7.22.13 | ||
1763 | '@babel/generator': 7.23.0 | ||
1764 | '@babel/helper-environment-visitor': 7.22.20 | ||
1765 | '@babel/helper-function-name': 7.23.0 | ||
1766 | '@babel/helper-hoist-variables': 7.22.5 | ||
1767 | '@babel/helper-split-export-declaration': 7.22.6 | ||
1768 | '@babel/parser': 7.23.0 | ||
1769 | '@babel/types': 7.23.0 | ||
1770 | debug: 4.3.4 | ||
1771 | globals: 11.12.0 | ||
1772 | transitivePeerDependencies: | ||
1773 | - supports-color | ||
1774 | dev: true | ||
1775 | |||
1776 | /@babel/types@7.23.0: | ||
1777 | resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} | ||
1778 | engines: {node: '>=6.9.0'} | ||
1779 | dependencies: | ||
1780 | '@babel/helper-string-parser': 7.22.5 | ||
1781 | '@babel/helper-validator-identifier': 7.22.20 | ||
1782 | to-fast-properties: 2.0.0 | ||
1783 | dev: true | ||
1784 | |||
1785 | /@colors/colors@1.5.0: | ||
323 | resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} | 1786 | resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} |
324 | engines: {node: '>=0.1.90'} | 1787 | engines: {node: '>=0.1.90'} |
325 | dev: false | 1788 | requiresBuild: true |
1789 | optional: true | ||
326 | 1790 | ||
327 | /@dabh/diagnostics/2.0.3: | 1791 | /@discoveryjs/json-ext@0.5.7: |
328 | resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} | 1792 | resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} |
1793 | engines: {node: '>=10.0.0'} | ||
1794 | dev: true | ||
1795 | |||
1796 | /@eslint-community/eslint-utils@4.4.0(eslint@8.46.0): | ||
1797 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} | ||
1798 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | ||
1799 | peerDependencies: | ||
1800 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 | ||
329 | dependencies: | 1801 | dependencies: |
330 | colorspace: 1.1.4 | 1802 | eslint: 8.46.0 |
331 | enabled: 2.0.0 | 1803 | eslint-visitor-keys: 3.4.3 |
332 | kuler: 2.0.0 | 1804 | dev: true |
333 | dev: false | ||
334 | 1805 | ||
335 | /@eslint/eslintrc/0.4.3: | 1806 | /@eslint-community/regexpp@4.9.0: |
336 | resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} | 1807 | resolution: {integrity: sha512-zJmuCWj2VLBt4c25CfBIbMZLGLyhkvs7LznyVX5HfpzeocThgIj5XQK4L+g3U36mMcx8bPMhGyPpwCATamC4jQ==} |
337 | engines: {node: ^10.12.0 || >=12.0.0} | 1808 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} |
1809 | dev: true | ||
1810 | |||
1811 | /@eslint/eslintrc@2.1.2: | ||
1812 | resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} | ||
1813 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | ||
338 | dependencies: | 1814 | dependencies: |
339 | ajv: 6.12.6 | 1815 | ajv: 6.12.6 |
340 | debug: 4.3.4 | 1816 | debug: 4.3.4 |
341 | espree: 7.3.1 | 1817 | espree: 9.6.1 |
342 | globals: 13.18.0 | 1818 | globals: 13.22.0 |
343 | ignore: 4.0.6 | 1819 | ignore: 5.2.4 |
344 | import-fresh: 3.3.0 | 1820 | import-fresh: 3.3.0 |
345 | js-yaml: 3.14.1 | 1821 | js-yaml: 4.1.0 |
346 | minimatch: 3.1.2 | 1822 | minimatch: 3.1.2 |
347 | strip-json-comments: 3.1.1 | 1823 | strip-json-comments: 3.1.1 |
348 | transitivePeerDependencies: | 1824 | transitivePeerDependencies: |
349 | - supports-color | 1825 | - supports-color |
350 | dev: true | 1826 | dev: true |
351 | 1827 | ||
352 | /@humanwhocodes/config-array/0.5.0: | 1828 | /@eslint/js@8.50.0: |
353 | resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} | 1829 | resolution: {integrity: sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==} |
1830 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | ||
1831 | dev: true | ||
1832 | |||
1833 | /@faker-js/faker@8.1.0: | ||
1834 | resolution: {integrity: sha512-38DT60rumHfBYynif3lmtxMqMqmsOQIxQgEuPZxCk2yUYN0eqWpTACgxi0VpidvsJB8CRxCpvP7B3anK85FjtQ==} | ||
1835 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} | ||
1836 | dev: false | ||
1837 | |||
1838 | /@gar/promisify@1.1.3: | ||
1839 | resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} | ||
1840 | requiresBuild: true | ||
1841 | dev: false | ||
1842 | optional: true | ||
1843 | |||
1844 | /@humanwhocodes/config-array@0.11.11: | ||
1845 | resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} | ||
354 | engines: {node: '>=10.10.0'} | 1846 | engines: {node: '>=10.10.0'} |
355 | dependencies: | 1847 | dependencies: |
356 | '@humanwhocodes/object-schema': 1.2.1 | 1848 | '@humanwhocodes/object-schema': 1.2.1 |
@@ -360,599 +1852,1925 @@ packages: | |||
360 | - supports-color | 1852 | - supports-color |
361 | dev: true | 1853 | dev: true |
362 | 1854 | ||
363 | /@humanwhocodes/object-schema/1.2.1: | 1855 | /@humanwhocodes/module-importer@1.0.1: |
1856 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} | ||
1857 | engines: {node: '>=12.22'} | ||
1858 | dev: true | ||
1859 | |||
1860 | /@humanwhocodes/object-schema@1.2.1: | ||
364 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} | 1861 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} |
365 | dev: true | 1862 | dev: true |
366 | 1863 | ||
367 | /@sentry/core/5.30.0: | 1864 | /@japa/api-client@1.4.4(@japa/runner@2.5.1): |
368 | resolution: {integrity: sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==} | 1865 | resolution: {integrity: sha512-7YVDWMWDvUGRlAxOS2QmYTyfxsY+EC0fiVz/w7J4qIT2oYhl1TVfJ/R1WWRoLe/KuZr2yIUNlp7OdStVjESB5A==} |
369 | engines: {node: '>=6'} | 1866 | peerDependencies: |
1867 | '@japa/runner': ^2.2.3 | ||
1868 | dependencies: | ||
1869 | '@japa/runner': 2.5.1 | ||
1870 | '@poppinss/hooks': 6.0.2-0 | ||
1871 | '@types/superagent': 4.1.19 | ||
1872 | cookie: 0.5.0 | ||
1873 | macroable: 7.0.2 | ||
1874 | set-cookie-parser: 2.6.0 | ||
1875 | superagent: 8.1.2 | ||
1876 | transitivePeerDependencies: | ||
1877 | - supports-color | ||
1878 | dev: true | ||
1879 | |||
1880 | /@japa/assert@1.4.1(@japa/runner@2.5.1)(openapi-types@12.1.3): | ||
1881 | resolution: {integrity: sha512-IyacnyaGzHqKTUbnOproPluHGWybt0ix0UsISAnjK62aTlDS4pOYPXkCDexk21/iReXNLtFgKM/RrDPDAUfrqA==} | ||
1882 | peerDependencies: | ||
1883 | '@japa/runner': ^2.1.1 | ||
370 | dependencies: | 1884 | dependencies: |
371 | '@sentry/hub': 5.30.0 | 1885 | '@japa/runner': 2.5.1 |
372 | '@sentry/minimal': 5.30.0 | 1886 | '@types/chai': 4.3.6 |
373 | '@sentry/types': 5.30.0 | 1887 | api-contract-validator: 2.2.8(openapi-types@12.1.3) |
374 | '@sentry/utils': 5.30.0 | 1888 | chai: 4.3.10 |
375 | tslib: 1.14.1 | 1889 | macroable: 7.0.2 |
376 | dev: false | 1890 | transitivePeerDependencies: |
1891 | - openapi-types | ||
1892 | dev: true | ||
377 | 1893 | ||
378 | /@sentry/hub/5.30.0: | 1894 | /@japa/base-reporter@1.1.2: |
379 | resolution: {integrity: sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==} | 1895 | resolution: {integrity: sha512-6MYs/EsXjouFPNUQL3VGllryZ5enI5rqhvQbY2Dzh3Zmhu22DWw6v9d2pxucrFptDTtQ38MBPVL/BIeZAafmOw==} |
380 | engines: {node: '>=6'} | ||
381 | dependencies: | 1896 | dependencies: |
382 | '@sentry/types': 5.30.0 | 1897 | '@japa/errors-printer': 2.1.0 |
383 | '@sentry/utils': 5.30.0 | 1898 | '@poppinss/cliui': 3.0.5 |
384 | tslib: 1.14.1 | 1899 | ms: 2.1.3 |
385 | dev: false | 1900 | dev: true |
386 | 1901 | ||
387 | /@sentry/minimal/5.30.0: | 1902 | /@japa/core@7.3.3: |
388 | resolution: {integrity: sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==} | 1903 | resolution: {integrity: sha512-3mkWlzWVALZANFfMK6Q6xtYGM3mpzZeeGGUVQGDt2OOxvL8FDADVxHrRn9BFc1V4fVJO4jR/QH5utrb+RfCF5g==} |
389 | engines: {node: '>=6'} | ||
390 | dependencies: | 1904 | dependencies: |
391 | '@sentry/hub': 5.30.0 | 1905 | '@poppinss/hooks': 6.0.2-0 |
392 | '@sentry/types': 5.30.0 | 1906 | async-retry: 1.3.3 |
393 | tslib: 1.14.1 | 1907 | emittery: 0.13.1 |
1908 | macroable: 7.0.2 | ||
1909 | time-span: 4.0.0 | ||
1910 | dev: true | ||
1911 | |||
1912 | /@japa/errors-printer@2.1.0: | ||
1913 | resolution: {integrity: sha512-iZUrB58e29jbRxb7lxocz5uHt9mQ1q7iojs8Gh1kIKmvaPx0KMqce77JDtqYzu2+95WjmppAvM6au1l1WYJmpw==} | ||
1914 | dependencies: | ||
1915 | '@poppinss/cliui': 3.0.5 | ||
1916 | jest-diff: 29.7.0 | ||
1917 | youch: 3.2.3 | ||
1918 | youch-terminal: 2.2.2 | ||
1919 | dev: true | ||
1920 | |||
1921 | /@japa/preset-adonis@1.2.0(@adonisjs/core@5.9.0)(@japa/runner@2.5.1)(openapi-types@12.1.3): | ||
1922 | resolution: {integrity: sha512-jcvQCN9U5WA4kdKDtYuV6DZMzrZomxho3MASS6yhnJsSqSW6jgFDNwhOgSzY7AyPgxmVAf3jZ6JKd7r2USctlA==} | ||
1923 | peerDependencies: | ||
1924 | '@adonisjs/core': ^5.0.0 | ||
1925 | '@japa/runner': ^2.0.0 | ||
1926 | dependencies: | ||
1927 | '@adonisjs/core': 5.9.0 | ||
1928 | '@japa/api-client': 1.4.4(@japa/runner@2.5.1) | ||
1929 | '@japa/assert': 1.4.1(@japa/runner@2.5.1)(openapi-types@12.1.3) | ||
1930 | '@japa/run-failed-tests': 1.1.1(@japa/runner@2.5.1) | ||
1931 | '@japa/runner': 2.5.1 | ||
1932 | '@japa/spec-reporter': 1.3.3 | ||
1933 | transitivePeerDependencies: | ||
1934 | - openapi-types | ||
1935 | - supports-color | ||
1936 | dev: true | ||
1937 | |||
1938 | /@japa/run-failed-tests@1.1.1(@japa/runner@2.5.1): | ||
1939 | resolution: {integrity: sha512-lMv1nAtKBpX7CH8K+HHRr2aaCTAJ9Q3i7DG12MmU2A/EDJFuP7e9ZASE8O0UTlk5Goc+DR6mzuFXG3R351J89w==} | ||
1940 | peerDependencies: | ||
1941 | '@japa/runner': ^2.2.3 | ||
1942 | dependencies: | ||
1943 | '@japa/runner': 2.5.1 | ||
1944 | '@poppinss/cliui': 3.0.5 | ||
1945 | find-cache-dir: 3.3.2 | ||
1946 | fs-extra: 11.1.1 | ||
1947 | dev: true | ||
1948 | |||
1949 | /@japa/runner@2.5.1: | ||
1950 | resolution: {integrity: sha512-p1zjniMCiGxRnZkUs5WtZjTQhbXcnK0aM2Wu4Qc+w+MBpmOrw5J2zJuge0FweepTUR9CT3r2x65uw4qIshy8XQ==} | ||
1951 | dependencies: | ||
1952 | '@japa/core': 7.3.3 | ||
1953 | '@japa/errors-printer': 2.1.0 | ||
1954 | '@poppinss/cliui': 3.0.5 | ||
1955 | '@poppinss/hooks': 6.0.2-0 | ||
1956 | fast-glob: 3.3.1 | ||
1957 | getopts: 2.3.0 | ||
1958 | inclusion: 1.0.1 | ||
1959 | dev: true | ||
1960 | |||
1961 | /@japa/spec-reporter@1.3.3: | ||
1962 | resolution: {integrity: sha512-EOOjvQVmmWZDKxmO+f0v/BSNeKzKkeJSrNwEldkF40zZWdHX2J3Jb2MJowE5DgSOQCiG/OG2UFen0I+XLnPoxQ==} | ||
1963 | dependencies: | ||
1964 | '@japa/base-reporter': 1.1.2 | ||
1965 | '@japa/errors-printer': 2.1.0 | ||
1966 | '@poppinss/cliui': 3.0.5 | ||
1967 | ms: 2.1.3 | ||
1968 | dev: true | ||
1969 | |||
1970 | /@jest/schemas@29.6.3: | ||
1971 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} | ||
1972 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} | ||
1973 | dependencies: | ||
1974 | '@sinclair/typebox': 0.27.8 | ||
1975 | dev: true | ||
1976 | |||
1977 | /@jest/types@25.5.0: | ||
1978 | resolution: {integrity: sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==} | ||
1979 | engines: {node: '>= 8.3'} | ||
1980 | dependencies: | ||
1981 | '@types/istanbul-lib-coverage': 2.0.4 | ||
1982 | '@types/istanbul-reports': 1.1.2 | ||
1983 | '@types/yargs': 15.0.16 | ||
1984 | chalk: 3.0.0 | ||
1985 | dev: true | ||
1986 | |||
1987 | /@jest/types@29.6.3: | ||
1988 | resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} | ||
1989 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} | ||
1990 | dependencies: | ||
1991 | '@jest/schemas': 29.6.3 | ||
1992 | '@types/istanbul-lib-coverage': 2.0.4 | ||
1993 | '@types/istanbul-reports': 3.0.2 | ||
1994 | '@types/node': 20.7.2 | ||
1995 | '@types/yargs': 17.0.26 | ||
1996 | chalk: 4.1.2 | ||
1997 | dev: true | ||
1998 | |||
1999 | /@jridgewell/gen-mapping@0.3.3: | ||
2000 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} | ||
2001 | engines: {node: '>=6.0.0'} | ||
2002 | dependencies: | ||
2003 | '@jridgewell/set-array': 1.1.2 | ||
2004 | '@jridgewell/sourcemap-codec': 1.4.15 | ||
2005 | '@jridgewell/trace-mapping': 0.3.19 | ||
2006 | dev: true | ||
2007 | |||
2008 | /@jridgewell/resolve-uri@3.1.1: | ||
2009 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} | ||
2010 | engines: {node: '>=6.0.0'} | ||
2011 | dev: true | ||
2012 | |||
2013 | /@jridgewell/set-array@1.1.2: | ||
2014 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} | ||
2015 | engines: {node: '>=6.0.0'} | ||
2016 | dev: true | ||
2017 | |||
2018 | /@jridgewell/source-map@0.3.5: | ||
2019 | resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} | ||
2020 | dependencies: | ||
2021 | '@jridgewell/gen-mapping': 0.3.3 | ||
2022 | '@jridgewell/trace-mapping': 0.3.19 | ||
2023 | dev: true | ||
2024 | |||
2025 | /@jridgewell/sourcemap-codec@1.4.15: | ||
2026 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} | ||
2027 | dev: true | ||
2028 | |||
2029 | /@jridgewell/trace-mapping@0.3.19: | ||
2030 | resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} | ||
2031 | dependencies: | ||
2032 | '@jridgewell/resolve-uri': 3.1.1 | ||
2033 | '@jridgewell/sourcemap-codec': 1.4.15 | ||
2034 | dev: true | ||
2035 | |||
2036 | /@jsdevtools/ono@7.1.3: | ||
2037 | resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} | ||
2038 | dev: true | ||
2039 | |||
2040 | /@kdf/salt@2.0.1: | ||
2041 | resolution: {integrity: sha512-1RBY7HcGYuWBm0+4ygjdRerN+mhpuT5picGB6+azqUXsz/IZljegrKkeHRiV6wuxY8n4HrxOuw8ou7JuGxRWdQ==} | ||
2042 | engines: {node: '>=10'} | ||
394 | dev: false | 2043 | dev: false |
395 | 2044 | ||
396 | /@sentry/node/5.30.0: | 2045 | /@leichtgewicht/ip-codec@2.0.4: |
397 | resolution: {integrity: sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==} | 2046 | resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} |
398 | engines: {node: '>=6'} | 2047 | dev: true |
2048 | |||
2049 | /@mapbox/node-pre-gyp@1.0.11: | ||
2050 | resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} | ||
2051 | hasBin: true | ||
399 | dependencies: | 2052 | dependencies: |
400 | '@sentry/core': 5.30.0 | 2053 | detect-libc: 2.0.2 |
401 | '@sentry/hub': 5.30.0 | ||
402 | '@sentry/tracing': 5.30.0 | ||
403 | '@sentry/types': 5.30.0 | ||
404 | '@sentry/utils': 5.30.0 | ||
405 | cookie: 0.4.2 | ||
406 | https-proxy-agent: 5.0.1 | 2054 | https-proxy-agent: 5.0.1 |
407 | lru_map: 0.3.3 | 2055 | make-dir: 3.1.0 |
408 | tslib: 1.14.1 | 2056 | node-fetch: 2.7.0 |
2057 | nopt: 5.0.0 | ||
2058 | npmlog: 5.0.1 | ||
2059 | rimraf: 3.0.2 | ||
2060 | semver: 7.5.4 | ||
2061 | tar: 6.2.0 | ||
409 | transitivePeerDependencies: | 2062 | transitivePeerDependencies: |
2063 | - encoding | ||
410 | - supports-color | 2064 | - supports-color |
411 | dev: false | 2065 | dev: false |
412 | 2066 | ||
413 | /@sentry/tracing/5.30.0: | 2067 | /@mrmlnc/readdir-enhanced@2.2.1: |
414 | resolution: {integrity: sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==} | 2068 | resolution: {integrity: sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==} |
415 | engines: {node: '>=6'} | 2069 | engines: {node: '>=4'} |
416 | dependencies: | 2070 | dependencies: |
417 | '@sentry/hub': 5.30.0 | 2071 | call-me-maybe: 1.0.2 |
418 | '@sentry/minimal': 5.30.0 | 2072 | glob-to-regexp: 0.3.0 |
419 | '@sentry/types': 5.30.0 | 2073 | dev: true |
420 | '@sentry/utils': 5.30.0 | 2074 | |
421 | tslib: 1.14.1 | 2075 | /@nodelib/fs.scandir@2.1.5: |
2076 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} | ||
2077 | engines: {node: '>= 8'} | ||
2078 | dependencies: | ||
2079 | '@nodelib/fs.stat': 2.0.5 | ||
2080 | run-parallel: 1.2.0 | ||
2081 | |||
2082 | /@nodelib/fs.stat@1.1.3: | ||
2083 | resolution: {integrity: sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==} | ||
2084 | engines: {node: '>= 6'} | ||
2085 | dev: true | ||
2086 | |||
2087 | /@nodelib/fs.stat@2.0.5: | ||
2088 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} | ||
2089 | engines: {node: '>= 8'} | ||
2090 | |||
2091 | /@nodelib/fs.walk@1.2.8: | ||
2092 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} | ||
2093 | engines: {node: '>= 8'} | ||
2094 | dependencies: | ||
2095 | '@nodelib/fs.scandir': 2.1.5 | ||
2096 | fastq: 1.15.0 | ||
2097 | |||
2098 | /@npmcli/fs@1.1.1: | ||
2099 | resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} | ||
2100 | requiresBuild: true | ||
2101 | dependencies: | ||
2102 | '@gar/promisify': 1.1.3 | ||
2103 | semver: 7.5.4 | ||
422 | dev: false | 2104 | dev: false |
2105 | optional: true | ||
423 | 2106 | ||
424 | /@sentry/types/5.30.0: | 2107 | /@npmcli/move-file@1.1.2: |
425 | resolution: {integrity: sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==} | 2108 | resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} |
426 | engines: {node: '>=6'} | 2109 | engines: {node: '>=10'} |
2110 | deprecated: This functionality has been moved to @npmcli/fs | ||
2111 | requiresBuild: true | ||
2112 | dependencies: | ||
2113 | mkdirp: 1.0.4 | ||
2114 | rimraf: 3.0.2 | ||
427 | dev: false | 2115 | dev: false |
2116 | optional: true | ||
428 | 2117 | ||
429 | /@sentry/utils/5.30.0: | 2118 | /@nuxt/friendly-errors-webpack-plugin@2.5.2(webpack@5.88.2): |
430 | resolution: {integrity: sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==} | 2119 | resolution: {integrity: sha512-LLc+90lnxVbpKkMqk5z1EWpXoODhc6gRkqqXJCInJwF5xabHAE7biFvbULfvTRmtaTzAaP8IV4HQDLUgeAUTTw==} |
431 | engines: {node: '>=6'} | 2120 | engines: {node: '>=8.0.0', npm: '>=5.0.0'} |
2121 | peerDependencies: | ||
2122 | webpack: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 | ||
432 | dependencies: | 2123 | dependencies: |
433 | '@sentry/types': 5.30.0 | 2124 | chalk: 2.4.2 |
434 | tslib: 1.14.1 | 2125 | consola: 2.15.3 |
2126 | error-stack-parser: 2.1.4 | ||
2127 | string-width: 4.2.3 | ||
2128 | webpack: 5.88.2(webpack-cli@5.1.4) | ||
2129 | dev: true | ||
2130 | |||
2131 | /@phc/format@1.0.0: | ||
2132 | resolution: {integrity: sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==} | ||
2133 | engines: {node: '>=10'} | ||
2134 | |||
2135 | /@pkgr/utils@2.4.2: | ||
2136 | resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} | ||
2137 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} | ||
2138 | dependencies: | ||
2139 | cross-spawn: 7.0.3 | ||
2140 | fast-glob: 3.3.1 | ||
2141 | is-glob: 4.0.3 | ||
2142 | open: 9.1.0 | ||
2143 | picocolors: 1.0.0 | ||
2144 | tslib: 2.6.2 | ||
2145 | dev: true | ||
2146 | |||
2147 | /@poppinss/chokidar-ts@3.3.5: | ||
2148 | resolution: {integrity: sha512-Ht//xB2ZPa16EDH/bmaWEBWunsBTnBYdnv3nKwXHrqNHDfcYX1DHcJmcNORRH9YLOOuVsTmqDcpiAdTn06LaHQ==} | ||
2149 | dependencies: | ||
2150 | builtin-modules: 3.3.0 | ||
2151 | chokidar: 3.5.3 | ||
2152 | debug: 4.3.4 | ||
2153 | emittery: 0.10.2 | ||
2154 | fs-extra: 10.1.0 | ||
2155 | mem: 8.1.1 | ||
2156 | picomatch: 2.3.1 | ||
2157 | transitivePeerDependencies: | ||
2158 | - supports-color | ||
2159 | dev: true | ||
2160 | |||
2161 | /@poppinss/cliui@3.0.5: | ||
2162 | resolution: {integrity: sha512-9TCwhJ6hQDAv7LWredEQL7eSA97kQ/i5Td80T7InV9z9rOXT8keywAM0pSvTUS01bwCeiZQVoT4r/G67DRiPJA==} | ||
2163 | dependencies: | ||
2164 | '@poppinss/colors': 3.0.3 | ||
2165 | cli-boxes: 3.0.0 | ||
2166 | cli-table3: 0.6.3 | ||
2167 | color-support: 1.1.3 | ||
2168 | log-update: 4.0.0 | ||
2169 | pretty-hrtime: 1.0.3 | ||
2170 | string-width: 4.2.3 | ||
2171 | |||
2172 | /@poppinss/co-body@1.2.0: | ||
2173 | resolution: {integrity: sha512-1aJ06XrtQ8gueo91+Vc7TTSeXECsW1pWDCKumtuGL+9xsjJvP6n567YuimwHuH99wFMIhyNW5U1g2C/4wjvXCQ==} | ||
2174 | dependencies: | ||
2175 | '@poppinss/utils': 5.0.0 | ||
2176 | inflation: 2.0.0 | ||
2177 | qs: 6.11.2 | ||
2178 | raw-body: 2.5.2 | ||
2179 | type-is: 1.6.18 | ||
2180 | |||
2181 | /@poppinss/colors@3.0.3: | ||
2182 | resolution: {integrity: sha512-jiZcp91PvIs5s4Wz4gEVY9J2tqH6H1++mZmsrC3TmFam9gbVPUJPEubPM5j4BQYJre7bjs9nkIbYFcWMOFHIVQ==} | ||
2183 | dependencies: | ||
2184 | color-support: 1.1.3 | ||
2185 | kleur: 4.1.5 | ||
2186 | |||
2187 | /@poppinss/file-generator@1.0.2: | ||
2188 | resolution: {integrity: sha512-rRob//4jLbUVbDSsNRihloKGgpyVsWdFQWUmONxX/gyv4koT1OlVoc3ccWgk7Y/sEa2cFxj3zrFs+wdT09iXWw==} | ||
2189 | dependencies: | ||
2190 | bytes: 3.1.2 | ||
2191 | |||
2192 | /@poppinss/hooks@5.0.3(@adonisjs/application@5.3.0): | ||
2193 | resolution: {integrity: sha512-M5a151VUl+RslVP5qwDW+u+0VmzKt5Nfplzdx2nrtXol3yVlLN3u2Jp6UADESid3DDI7IRHmFrA3sQusey3eUA==} | ||
2194 | peerDependencies: | ||
2195 | '@adonisjs/application': '>=4.0.0' | ||
2196 | peerDependenciesMeta: | ||
2197 | '@adonisjs/application': | ||
2198 | optional: true | ||
2199 | dependencies: | ||
2200 | '@adonisjs/application': 5.3.0 | ||
435 | dev: false | 2201 | dev: false |
436 | 2202 | ||
437 | /@sindresorhus/is/0.7.0: | 2203 | /@poppinss/hooks@6.0.2-0: |
438 | resolution: {integrity: sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==} | 2204 | resolution: {integrity: sha512-mG0hnQlxgflvxyM6t/XO8z/FwotsYRXPhtLZ3cz3iyk4t8xaNtOihSANBcvqdkxZCtGBvotNIf/GnES9hvlfSQ==} |
439 | engines: {node: '>=4'} | 2205 | dev: true |
2206 | |||
2207 | /@poppinss/inspect@1.0.1: | ||
2208 | resolution: {integrity: sha512-kLeEaBSGhlleyYvKc7c9s3uE6xv7cwyulE0EgHf4jU/CL96h0yC4mkdw1wvC1l1PYYQozCGy46FwMBAAMOobCA==} | ||
440 | dev: false | 2209 | dev: false |
441 | 2210 | ||
442 | /@slynova/flydrive/0.3.1: | 2211 | /@poppinss/manager@5.0.2: |
443 | resolution: {integrity: sha512-/C3chxZRqonxjQwj70WOyqtw0JGjBr6rjvkcrGlDedUXi5YoiJiTVHwD4ry6tHJKwOi3PtxpWO9RZwSKElVWzw==} | 2212 | resolution: {integrity: sha512-c5F3EKztq/iw0J+BfNu5rSI5/ji+kjts4rJaC/VvIzpTWzbRorb7UR9J32T8cLtTwjNHbmxk3BAU402lvL2JFA==} |
2213 | |||
2214 | /@poppinss/matchit@3.1.2: | ||
2215 | resolution: {integrity: sha512-Bx+jY+vmdQFmwYiHliiPjr+oVBaGnh79B1h1FSAm3jME1QylLFt8PPYC0ymO8Q5PzJj/KuE3jeTnZhRHOWqq8g==} | ||
2216 | dependencies: | ||
2217 | '@arr/every': 1.0.1 | ||
2218 | |||
2219 | /@poppinss/multiparty@2.0.1: | ||
2220 | resolution: {integrity: sha512-Pf3V9PFyZDIkDBBiAOT2hdmA+1l/+hverHbUnMzNzwtwgO50s2ZPt5KxUydVA0hceg9gryo5unQ0WUF1SO9tkQ==} | ||
444 | dependencies: | 2221 | dependencies: |
445 | create-output-stream: 0.0.1 | 2222 | http-errors: 2.0.0 |
446 | fs-extra: 6.0.1 | 2223 | safe-buffer: 5.2.1 |
447 | node-exceptions: 3.0.0 | 2224 | uid-safe: 2.1.5 |
448 | resetable: 1.0.3 | 2225 | |
2226 | /@poppinss/prompts@2.0.2: | ||
2227 | resolution: {integrity: sha512-jTrE8U5rnHTZNpBvPauFVDMQZZuEnfABbJUEXfq0uu8oGJnPaaA+y0bQbyqVf4yWqgRGldgrzAwNz739hIEnPQ==} | ||
2228 | dependencies: | ||
2229 | '@poppinss/colors': 3.0.3 | ||
2230 | enquirer: 2.4.1 | ||
2231 | |||
2232 | /@poppinss/utils@3.3.1: | ||
2233 | resolution: {integrity: sha512-k4MFt+4JhOWJZ9D2xpEcG/mpZyXVXYT+dSOg83vHK1xhXl+7r0IYBXRKWX2+To7/90KJaWlwpcdCAalXE8Debg==} | ||
2234 | dependencies: | ||
2235 | '@types/bytes': 3.1.2 | ||
2236 | '@types/he': 1.2.1 | ||
2237 | buffer-alloc: 1.2.0 | ||
2238 | bytes: 3.1.2 | ||
2239 | change-case: 4.1.2 | ||
2240 | cuid: 2.1.8 | ||
2241 | flattie: 1.1.0 | ||
2242 | fs-readdir-recursive: 1.1.0 | ||
2243 | he: 1.2.0 | ||
2244 | kind-of: 6.0.3 | ||
2245 | lodash: 4.17.21 | ||
2246 | ms: 2.1.3 | ||
2247 | pluralize: 8.0.0 | ||
2248 | require-all: 3.0.0 | ||
2249 | resolve-from: 5.0.0 | ||
2250 | slugify: 1.6.6 | ||
2251 | truncatise: 0.0.8 | ||
449 | dev: false | 2252 | dev: false |
450 | 2253 | ||
451 | /@types/json5/0.0.29: | 2254 | /@poppinss/utils@4.0.4: |
452 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} | 2255 | resolution: {integrity: sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==} |
2256 | dependencies: | ||
2257 | '@poppinss/file-generator': 1.0.2 | ||
2258 | '@types/bytes': 3.1.2 | ||
2259 | '@types/he': 1.2.1 | ||
2260 | bytes: 3.1.2 | ||
2261 | change-case: 4.1.2 | ||
2262 | cuid: 2.1.8 | ||
2263 | flattie: 1.1.0 | ||
2264 | fs-readdir-recursive: 1.1.0 | ||
2265 | he: 1.2.0 | ||
2266 | kind-of: 6.0.3 | ||
2267 | lodash: 4.17.21 | ||
2268 | ms: 2.1.3 | ||
2269 | pluralize: 8.0.0 | ||
2270 | require-all: 3.0.0 | ||
2271 | resolve-from: 5.0.0 | ||
2272 | slugify: 1.6.6 | ||
2273 | truncatise: 0.0.8 | ||
2274 | |||
2275 | /@poppinss/utils@5.0.0: | ||
2276 | resolution: {integrity: sha512-SpJL5p4Nx3bRCpCf62KagZLUHLvJD+VDylGpXAeP2G5qb3s6SSOBlpaFmer4GxdyTqLIUt0PRCzF1TbpNU+qZw==} | ||
2277 | dependencies: | ||
2278 | '@poppinss/file-generator': 1.0.2 | ||
2279 | '@types/bytes': 3.1.2 | ||
2280 | '@types/he': 1.2.1 | ||
2281 | bytes: 3.1.2 | ||
2282 | change-case: 4.1.2 | ||
2283 | cuid: 2.1.8 | ||
2284 | flattie: 1.1.0 | ||
2285 | fs-readdir-recursive: 1.1.0 | ||
2286 | he: 1.2.0 | ||
2287 | kind-of: 6.0.3 | ||
2288 | lodash: 4.17.21 | ||
2289 | ms: 2.1.3 | ||
2290 | pluralize: 8.0.0 | ||
2291 | require-all: 3.0.0 | ||
2292 | resolve-from: 5.0.0 | ||
2293 | slugify: 1.6.6 | ||
2294 | truncatise: 0.0.8 | ||
2295 | |||
2296 | /@sinclair/typebox@0.27.8: | ||
2297 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} | ||
453 | dev: true | 2298 | dev: true |
454 | 2299 | ||
455 | /@types/keyv/3.1.4: | 2300 | /@sindresorhus/is@4.6.0: |
456 | resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} | 2301 | resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} |
2302 | engines: {node: '>=10'} | ||
2303 | dev: false | ||
2304 | |||
2305 | /@symfony/webpack-encore@4.4.0(@babel/core@7.23.0)(@babel/preset-env@7.22.20)(eslint@8.46.0)(postcss@8.4.31)(typescript@5.1.6)(webpack-cli@5.1.4)(webpack@5.88.2): | ||
2306 | resolution: {integrity: sha512-p3n2Z16sGV6odZ3ihIU+gupYc55KfrfCt62+Gppe8MUo6QuT5Bk2cXXjR4Hb89KvCRDHnjYEWVfnewRsfE8TRQ==} | ||
2307 | engines: {node: '>=14.0.0'} | ||
2308 | hasBin: true | ||
2309 | peerDependencies: | ||
2310 | '@babel/core': ^7.17.0 | ||
2311 | '@babel/plugin-transform-react-jsx': ^7.12.11 | ||
2312 | '@babel/preset-env': ^7.16.0 | ||
2313 | '@babel/preset-react': ^7.0.0 | ||
2314 | '@babel/preset-typescript': ^7.0.0 | ||
2315 | '@symfony/stimulus-bridge': ^3.0.0 | ||
2316 | '@vue/babel-helper-vue-jsx-merge-props': ^1.0.0 | ||
2317 | '@vue/babel-preset-jsx': ^1.0.0 | ||
2318 | '@vue/compiler-sfc': ^2.6 || ^3.0.2 | ||
2319 | eslint: ^8.0.0 | ||
2320 | eslint-webpack-plugin: ^3.1.0 || ^4.0.0 | ||
2321 | file-loader: ^6.0.0 | ||
2322 | fork-ts-checker-webpack-plugin: ^7.0.0 | ||
2323 | handlebars: ^4.7.7 | ||
2324 | handlebars-loader: ^1.7.0 | ||
2325 | less: ^4.0.0 | ||
2326 | less-loader: ^11.0.0 | ||
2327 | postcss: ^8.3.0 | ||
2328 | postcss-loader: ^7.0.0 | ||
2329 | sass: ^1.17.0 | ||
2330 | sass-loader: ^13.0.0 | ||
2331 | stylus: ^0.58.1 | ||
2332 | stylus-loader: ^7.0.0 | ||
2333 | ts-loader: ^9.0.0 | ||
2334 | typescript: ^4.2.2 || ^5.0.0 | ||
2335 | vue: ^2.6 || ^3.2.14 | ||
2336 | vue-loader: ^15.0.11 || ^17.0.0 | ||
2337 | vue-template-compiler: ^2.5 | ||
2338 | webpack: ^5.72 | ||
2339 | webpack-cli: ^4.9.1 || ^5.0.1 | ||
2340 | webpack-notifier: ^1.15.0 | ||
2341 | peerDependenciesMeta: | ||
2342 | '@babel/plugin-transform-react-jsx': | ||
2343 | optional: true | ||
2344 | '@babel/preset-react': | ||
2345 | optional: true | ||
2346 | '@babel/preset-typescript': | ||
2347 | optional: true | ||
2348 | '@symfony/stimulus-bridge': | ||
2349 | optional: true | ||
2350 | '@vue/babel-helper-vue-jsx-merge-props': | ||
2351 | optional: true | ||
2352 | '@vue/babel-preset-jsx': | ||
2353 | optional: true | ||
2354 | '@vue/compiler-sfc': | ||
2355 | optional: true | ||
2356 | eslint: | ||
2357 | optional: true | ||
2358 | eslint-webpack-plugin: | ||
2359 | optional: true | ||
2360 | file-loader: | ||
2361 | optional: true | ||
2362 | fork-ts-checker-webpack-plugin: | ||
2363 | optional: true | ||
2364 | handlebars: | ||
2365 | optional: true | ||
2366 | handlebars-loader: | ||
2367 | optional: true | ||
2368 | less: | ||
2369 | optional: true | ||
2370 | less-loader: | ||
2371 | optional: true | ||
2372 | postcss: | ||
2373 | optional: true | ||
2374 | postcss-loader: | ||
2375 | optional: true | ||
2376 | sass: | ||
2377 | optional: true | ||
2378 | sass-loader: | ||
2379 | optional: true | ||
2380 | stylus: | ||
2381 | optional: true | ||
2382 | stylus-loader: | ||
2383 | optional: true | ||
2384 | ts-loader: | ||
2385 | optional: true | ||
2386 | typescript: | ||
2387 | optional: true | ||
2388 | vue: | ||
2389 | optional: true | ||
2390 | vue-loader: | ||
2391 | optional: true | ||
2392 | vue-template-compiler: | ||
2393 | optional: true | ||
2394 | webpack-notifier: | ||
2395 | optional: true | ||
2396 | dependencies: | ||
2397 | '@babel/core': 7.23.0 | ||
2398 | '@babel/preset-env': 7.22.20(@babel/core@7.23.0) | ||
2399 | '@nuxt/friendly-errors-webpack-plugin': 2.5.2(webpack@5.88.2) | ||
2400 | assets-webpack-plugin: 7.0.0(webpack@5.88.2) | ||
2401 | babel-loader: 8.3.0(@babel/core@7.23.0)(webpack@5.88.2) | ||
2402 | chalk: 4.1.2 | ||
2403 | clean-webpack-plugin: 4.0.0(webpack@5.88.2) | ||
2404 | css-loader: 6.8.1(webpack@5.88.2) | ||
2405 | css-minimizer-webpack-plugin: 5.0.1(webpack@5.88.2) | ||
2406 | eslint: 8.46.0 | ||
2407 | fast-levenshtein: 3.0.0 | ||
2408 | mini-css-extract-plugin: 2.7.6(webpack@5.88.2) | ||
2409 | pkg-up: 3.1.0 | ||
2410 | postcss: 8.4.31 | ||
2411 | pretty-error: 4.0.0 | ||
2412 | resolve-url-loader: 5.0.0 | ||
2413 | semver: 7.5.4 | ||
2414 | style-loader: 3.3.3(webpack@5.88.2) | ||
2415 | sync-rpc: 1.3.6 | ||
2416 | tapable: 2.2.1 | ||
2417 | terser-webpack-plugin: 5.3.9(webpack@5.88.2) | ||
2418 | tmp: 0.2.1 | ||
2419 | typescript: 5.1.6 | ||
2420 | webpack: 5.88.2(webpack-cli@5.1.4) | ||
2421 | webpack-cli: 5.1.4(webpack@5.88.2) | ||
2422 | webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.88.2) | ||
2423 | yargs-parser: 21.1.1 | ||
2424 | transitivePeerDependencies: | ||
2425 | - '@parcel/css' | ||
2426 | - '@swc/core' | ||
2427 | - '@swc/css' | ||
2428 | - bufferutil | ||
2429 | - clean-css | ||
2430 | - csso | ||
2431 | - debug | ||
2432 | - esbuild | ||
2433 | - lightningcss | ||
2434 | - supports-color | ||
2435 | - uglify-js | ||
2436 | - utf-8-validate | ||
2437 | dev: true | ||
2438 | |||
2439 | /@szmarczak/http-timer@4.0.6: | ||
2440 | resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} | ||
2441 | engines: {node: '>=10'} | ||
457 | dependencies: | 2442 | dependencies: |
458 | '@types/node': 18.11.12 | 2443 | defer-to-connect: 2.0.1 |
459 | dev: false | 2444 | dev: false |
460 | 2445 | ||
461 | /@types/node/18.11.12: | 2446 | /@tokenizer/token@0.3.0: |
462 | resolution: {integrity: sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg==} | 2447 | resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} |
2448 | |||
2449 | /@tootallnate/once@1.1.2: | ||
2450 | resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} | ||
2451 | engines: {node: '>= 6'} | ||
2452 | requiresBuild: true | ||
463 | dev: false | 2453 | dev: false |
2454 | optional: true | ||
464 | 2455 | ||
465 | /@types/responselike/1.0.0: | 2456 | /@trysound/sax@0.2.0: |
466 | resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} | 2457 | resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} |
2458 | engines: {node: '>=10.13.0'} | ||
2459 | dev: true | ||
2460 | |||
2461 | /@ts-morph/common@0.17.0: | ||
2462 | resolution: {integrity: sha512-RMSSvSfs9kb0VzkvQ2NWobwnj7TxCA9vI/IjR9bDHqgAyVbu2T0DN4wiKVqomyDWqO7dPr/tErSfq7urQ1Q37g==} | ||
467 | dependencies: | 2463 | dependencies: |
468 | '@types/node': 18.11.12 | 2464 | fast-glob: 3.3.1 |
2465 | minimatch: 5.1.6 | ||
2466 | mkdirp: 1.0.4 | ||
2467 | path-browserify: 1.0.1 | ||
469 | dev: false | 2468 | dev: false |
470 | 2469 | ||
471 | /@types/stack-trace/0.0.29: | 2470 | /@types/bcrypt@5.0.0: |
472 | resolution: {integrity: sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==} | 2471 | resolution: {integrity: sha512-agtcFKaruL8TmcvqbndlqHPSJgsolhf/qPWchFlgnW1gECTN/nKbFcoFnvKAQRFfKbh+BO6A3SWdJu9t+xF3Lw==} |
473 | dev: false | 2472 | dependencies: |
2473 | '@types/node': 20.7.2 | ||
2474 | dev: true | ||
474 | 2475 | ||
475 | /abbrev/1.1.1: | 2476 | /@types/body-parser@1.19.3: |
476 | resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} | 2477 | resolution: {integrity: sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ==} |
2478 | dependencies: | ||
2479 | '@types/connect': 3.4.36 | ||
2480 | '@types/node': 20.7.2 | ||
2481 | dev: true | ||
2482 | |||
2483 | /@types/bonjour@3.5.11: | ||
2484 | resolution: {integrity: sha512-isGhjmBtLIxdHBDl2xGwUzEM8AOyOvWsADWq7rqirdi/ZQoHnLWErHvsThcEzTX8juDRiZtzp2Qkv5bgNh6mAg==} | ||
2485 | dependencies: | ||
2486 | '@types/node': 20.7.2 | ||
2487 | dev: true | ||
2488 | |||
2489 | /@types/bytes@3.1.2: | ||
2490 | resolution: {integrity: sha512-92b6q7CSYBMVZDtMZh5PuKm3LjZwcU7s6H8e9sU20Z1tOrTuXN+Hz3VuP9E8axiQRaCoiEOMN1duqPCEIhamrQ==} | ||
2491 | |||
2492 | /@types/cacheable-request@6.0.3: | ||
2493 | resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} | ||
2494 | dependencies: | ||
2495 | '@types/http-cache-semantics': 4.0.2 | ||
2496 | '@types/keyv': 3.1.4 | ||
2497 | '@types/node': 20.7.2 | ||
2498 | '@types/responselike': 1.0.1 | ||
477 | dev: false | 2499 | dev: false |
478 | 2500 | ||
479 | /accepts/1.3.8: | 2501 | /@types/chai@4.3.6: |
480 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} | 2502 | resolution: {integrity: sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==} |
481 | engines: {node: '>= 0.6'} | 2503 | dev: true |
2504 | |||
2505 | /@types/connect-history-api-fallback@1.5.1: | ||
2506 | resolution: {integrity: sha512-iaQslNbARe8fctL5Lk+DsmgWOM83lM+7FzP0eQUJs1jd3kBE8NWqBTIT2S8SqQOJjxvt2eyIjpOuYeRXq2AdMw==} | ||
482 | dependencies: | 2507 | dependencies: |
483 | mime-types: 2.1.35 | 2508 | '@types/express-serve-static-core': 4.17.37 |
484 | negotiator: 0.6.3 | 2509 | '@types/node': 20.7.2 |
2510 | dev: true | ||
2511 | |||
2512 | /@types/connect@3.4.36: | ||
2513 | resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} | ||
2514 | dependencies: | ||
2515 | '@types/node': 20.7.2 | ||
2516 | dev: true | ||
2517 | |||
2518 | /@types/cookiejar@2.1.2: | ||
2519 | resolution: {integrity: sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==} | ||
2520 | dev: true | ||
2521 | |||
2522 | /@types/eslint-scope@3.7.5: | ||
2523 | resolution: {integrity: sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==} | ||
2524 | dependencies: | ||
2525 | '@types/eslint': 8.44.3 | ||
2526 | '@types/estree': 1.0.2 | ||
2527 | dev: true | ||
2528 | |||
2529 | /@types/eslint@8.44.3: | ||
2530 | resolution: {integrity: sha512-iM/WfkwAhwmPff3wZuPLYiHX18HI24jU8k1ZSH7P8FHwxTjZ2P6CoX2wnF43oprR+YXJM6UUxATkNvyv/JHd+g==} | ||
2531 | dependencies: | ||
2532 | '@types/estree': 1.0.2 | ||
2533 | '@types/json-schema': 7.0.13 | ||
2534 | dev: true | ||
2535 | |||
2536 | /@types/estree@1.0.2: | ||
2537 | resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==} | ||
2538 | dev: true | ||
2539 | |||
2540 | /@types/express-serve-static-core@4.17.37: | ||
2541 | resolution: {integrity: sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==} | ||
2542 | dependencies: | ||
2543 | '@types/node': 20.7.2 | ||
2544 | '@types/qs': 6.9.8 | ||
2545 | '@types/range-parser': 1.2.5 | ||
2546 | '@types/send': 0.17.2 | ||
2547 | dev: true | ||
2548 | |||
2549 | /@types/express@4.17.18: | ||
2550 | resolution: {integrity: sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ==} | ||
2551 | dependencies: | ||
2552 | '@types/body-parser': 1.19.3 | ||
2553 | '@types/express-serve-static-core': 4.17.37 | ||
2554 | '@types/qs': 6.9.8 | ||
2555 | '@types/serve-static': 1.15.3 | ||
2556 | dev: true | ||
2557 | |||
2558 | /@types/fs-extra@11.0.1: | ||
2559 | resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} | ||
2560 | dependencies: | ||
2561 | '@types/jsonfile': 6.1.2 | ||
2562 | '@types/node': 20.7.2 | ||
2563 | dev: true | ||
2564 | |||
2565 | /@types/fs-extra@9.0.13: | ||
2566 | resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} | ||
2567 | dependencies: | ||
2568 | '@types/node': 20.7.2 | ||
2569 | |||
2570 | /@types/glob@7.2.0: | ||
2571 | resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} | ||
2572 | dependencies: | ||
2573 | '@types/minimatch': 5.1.2 | ||
2574 | '@types/node': 20.7.2 | ||
2575 | dev: true | ||
2576 | |||
2577 | /@types/he@1.2.1: | ||
2578 | resolution: {integrity: sha512-CdNmJMcSqX1BiP3iSsWt+VgixndRIDGzWyaGpBnW3i5heATSk5bJu2j3buutsoBQNjyryqxaNpr8M7fRsGL15w==} | ||
2579 | |||
2580 | /@types/http-cache-semantics@4.0.2: | ||
2581 | resolution: {integrity: sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==} | ||
485 | dev: false | 2582 | dev: false |
486 | 2583 | ||
487 | /acorn-jsx/5.3.2_acorn@7.4.1: | 2584 | /@types/http-errors@2.0.2: |
488 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} | 2585 | resolution: {integrity: sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg==} |
489 | peerDependencies: | 2586 | dev: true |
490 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 | 2587 | |
2588 | /@types/http-proxy@1.17.12: | ||
2589 | resolution: {integrity: sha512-kQtujO08dVtQ2wXAuSFfk9ASy3sug4+ogFR8Kd8UgP8PEuc1/G/8yjYRmp//PcDNJEUKOza/MrQu15bouEUCiw==} | ||
491 | dependencies: | 2590 | dependencies: |
492 | acorn: 7.4.1 | 2591 | '@types/node': 20.7.2 |
493 | dev: true | 2592 | dev: true |
494 | 2593 | ||
495 | /acorn-node/1.8.2: | 2594 | /@types/istanbul-lib-coverage@2.0.4: |
496 | resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} | 2595 | resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} |
2596 | dev: true | ||
2597 | |||
2598 | /@types/istanbul-lib-report@3.0.1: | ||
2599 | resolution: {integrity: sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==} | ||
497 | dependencies: | 2600 | dependencies: |
498 | acorn: 7.4.1 | 2601 | '@types/istanbul-lib-coverage': 2.0.4 |
499 | acorn-walk: 7.2.0 | 2602 | dev: true |
500 | xtend: 4.0.2 | 2603 | |
2604 | /@types/istanbul-reports@1.1.2: | ||
2605 | resolution: {integrity: sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==} | ||
2606 | dependencies: | ||
2607 | '@types/istanbul-lib-coverage': 2.0.4 | ||
2608 | '@types/istanbul-lib-report': 3.0.1 | ||
2609 | dev: true | ||
2610 | |||
2611 | /@types/istanbul-reports@3.0.2: | ||
2612 | resolution: {integrity: sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==} | ||
2613 | dependencies: | ||
2614 | '@types/istanbul-lib-report': 3.0.1 | ||
2615 | dev: true | ||
2616 | |||
2617 | /@types/json-schema@7.0.13: | ||
2618 | resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==} | ||
2619 | dev: true | ||
2620 | |||
2621 | /@types/json5@0.0.29: | ||
2622 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} | ||
2623 | dev: true | ||
2624 | |||
2625 | /@types/jsonfile@6.1.2: | ||
2626 | resolution: {integrity: sha512-8t92P+oeW4d/CRQfJaSqEwXujrhH4OEeHRjGU3v1Q8mUS8GPF3yiX26sw4svv6faL2HfBtGTe2xWIoVgN3dy9w==} | ||
2627 | dependencies: | ||
2628 | '@types/node': 20.7.2 | ||
2629 | dev: true | ||
2630 | |||
2631 | /@types/keyv@3.1.4: | ||
2632 | resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} | ||
2633 | dependencies: | ||
2634 | '@types/node': 20.7.2 | ||
501 | dev: false | 2635 | dev: false |
502 | 2636 | ||
503 | /acorn-walk/7.2.0: | 2637 | /@types/luxon@3.3.1: |
504 | resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} | 2638 | resolution: {integrity: sha512-XOS5nBcgEeP2PpcqJHjCWhUCAzGfXIU8ILOSLpx2FhxqMW9KdxgCGXNOEKGVBfveKtIpztHzKK5vSRVLyW/NqA==} |
505 | engines: {node: '>=0.4.0'} | 2639 | |
2640 | /@types/mime@1.3.3: | ||
2641 | resolution: {integrity: sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg==} | ||
2642 | dev: true | ||
2643 | |||
2644 | /@types/mime@3.0.2: | ||
2645 | resolution: {integrity: sha512-Wj+fqpTLtTbG7c0tH47dkahefpLKEbB+xAZuLq7b4/IDHPl/n6VoXcyUQ2bypFlbSwvCr0y+bD4euTTqTJsPxQ==} | ||
2646 | dev: true | ||
2647 | |||
2648 | /@types/minimatch@5.1.2: | ||
2649 | resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} | ||
2650 | dev: true | ||
2651 | |||
2652 | /@types/node-fetch@2.6.4: | ||
2653 | resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==} | ||
2654 | dependencies: | ||
2655 | '@types/node': 20.7.2 | ||
2656 | form-data: 3.0.1 | ||
2657 | dev: true | ||
2658 | |||
2659 | /@types/node@20.7.2: | ||
2660 | resolution: {integrity: sha512-RcdC3hOBOauLP+r/kRt27NrByYtDjsXyAuSbR87O6xpsvi763WI+5fbSIvYJrXnt9w4RuxhV6eAXfIs7aaf/FQ==} | ||
2661 | |||
2662 | /@types/normalize-package-data@2.4.2: | ||
2663 | resolution: {integrity: sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==} | ||
2664 | dev: true | ||
2665 | |||
2666 | /@types/pino-pretty@5.0.0: | ||
2667 | resolution: {integrity: sha512-N1uzqSzioqz8R3AkDbSJwcfDWeI3YMPNapSQQhnB2ISU4NYgUIcAh+hYT5ygqBM+klX4htpEhXMmoJv3J7GrdA==} | ||
2668 | deprecated: This is a stub types definition. pino-pretty provides its own type definitions, so you do not need this installed. | ||
2669 | dependencies: | ||
2670 | pino-pretty: 10.2.0 | ||
2671 | |||
2672 | /@types/pino-std-serializers@4.0.0: | ||
2673 | resolution: {integrity: sha512-gXfUZx2xIBbFYozGms53fT0nvkacx/+62c8iTxrEqH5PkIGAQvDbXg2774VWOycMPbqn5YJBQ3BMsg4Li3dWbg==} | ||
2674 | deprecated: This is a stub types definition. pino-std-serializers provides its own type definitions, so you do not need this installed. | ||
2675 | dependencies: | ||
2676 | pino-std-serializers: 6.2.2 | ||
2677 | |||
2678 | /@types/pino@6.3.12: | ||
2679 | resolution: {integrity: sha512-dsLRTq8/4UtVSpJgl9aeqHvbh6pzdmjYD3C092SYgLD2TyoCqHpTJk6vp8DvCTGGc7iowZ2MoiYiVUUCcu7muw==} | ||
2680 | dependencies: | ||
2681 | '@types/node': 20.7.2 | ||
2682 | '@types/pino-pretty': 5.0.0 | ||
2683 | '@types/pino-std-serializers': 4.0.0 | ||
2684 | sonic-boom: 2.8.0 | ||
2685 | |||
2686 | /@types/proxy-addr@2.0.1: | ||
2687 | resolution: {integrity: sha512-fLqXRu+ihH+/V7AB12siUu84uloauJ7SdBMrHARcHQN/yYIa0d9uQSYxSWnMRF0892N2/CJzPVYP3ltgtkkgsQ==} | ||
2688 | dependencies: | ||
2689 | '@types/node': 20.7.2 | ||
2690 | dev: true | ||
2691 | |||
2692 | /@types/qs@6.9.8: | ||
2693 | resolution: {integrity: sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==} | ||
2694 | dev: true | ||
2695 | |||
2696 | /@types/range-parser@1.2.5: | ||
2697 | resolution: {integrity: sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==} | ||
2698 | dev: true | ||
2699 | |||
2700 | /@types/responselike@1.0.1: | ||
2701 | resolution: {integrity: sha512-TiGnitEDxj2X0j+98Eqk5lv/Cij8oHd32bU4D/Yw6AOq7vvTk0gSD2GPj0G/HkvhMoVsdlhYF4yqqlyPBTM6Sg==} | ||
2702 | dependencies: | ||
2703 | '@types/node': 20.7.2 | ||
506 | dev: false | 2704 | dev: false |
507 | 2705 | ||
508 | /acorn/7.4.1: | 2706 | /@types/retry@0.12.0: |
509 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} | 2707 | resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} |
510 | engines: {node: '>=0.4.0'} | 2708 | dev: true |
511 | hasBin: true | ||
512 | 2709 | ||
513 | /agent-base/6.0.2: | 2710 | /@types/semver@7.5.0: |
514 | resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} | 2711 | resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} |
515 | engines: {node: '>= 6.0.0'} | 2712 | dev: true |
2713 | |||
2714 | /@types/send@0.17.2: | ||
2715 | resolution: {integrity: sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==} | ||
2716 | dependencies: | ||
2717 | '@types/mime': 1.3.3 | ||
2718 | '@types/node': 20.7.2 | ||
2719 | dev: true | ||
2720 | |||
2721 | /@types/serve-index@1.9.2: | ||
2722 | resolution: {integrity: sha512-asaEIoc6J+DbBKXtO7p2shWUpKacZOoMBEGBgPG91P8xhO53ohzHWGCs4ScZo5pQMf5ukQzVT9fhX1WzpHihig==} | ||
2723 | dependencies: | ||
2724 | '@types/express': 4.17.18 | ||
2725 | dev: true | ||
2726 | |||
2727 | /@types/serve-static@1.15.3: | ||
2728 | resolution: {integrity: sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg==} | ||
2729 | dependencies: | ||
2730 | '@types/http-errors': 2.0.2 | ||
2731 | '@types/mime': 3.0.2 | ||
2732 | '@types/node': 20.7.2 | ||
2733 | dev: true | ||
2734 | |||
2735 | /@types/sockjs@0.3.34: | ||
2736 | resolution: {integrity: sha512-R+n7qBFnm/6jinlteC9DBL5dGiDGjWAvjo4viUanpnc/dG1y7uDoacXPIQ/PQEg1fI912SMHIa014ZjRpvDw4g==} | ||
2737 | dependencies: | ||
2738 | '@types/node': 20.7.2 | ||
2739 | dev: true | ||
2740 | |||
2741 | /@types/source-map-support@0.5.6: | ||
2742 | resolution: {integrity: sha512-b2nJ9YyXmkhGaa2b8VLM0kJ04xxwNyijcq12/kDoomCt43qbHBeK2SLNJ9iJmETaAj+bKUT05PQUu3Q66GvLhQ==} | ||
2743 | dependencies: | ||
2744 | source-map: 0.6.1 | ||
2745 | dev: true | ||
2746 | |||
2747 | /@types/superagent@4.1.19: | ||
2748 | resolution: {integrity: sha512-McM1mlc7PBZpCaw0fw/36uFqo0YeA6m8JqoyE4OfqXsZCIg0hPP2xdE6FM7r6fdprDZHlJwDpydUj1R++93hCA==} | ||
2749 | dependencies: | ||
2750 | '@types/cookiejar': 2.1.2 | ||
2751 | '@types/node': 20.7.2 | ||
2752 | dev: true | ||
2753 | |||
2754 | /@types/tar-fs@2.0.2: | ||
2755 | resolution: {integrity: sha512-XuZRAvdo7FbDfgQCNkc8NOdSae5XtG+of2mTSgJ85G4OG0miN4E8BTGT+JBTLO87RQ7iCwsIDCqCsHnf2IaSXA==} | ||
2756 | dependencies: | ||
2757 | '@types/node': 20.7.2 | ||
2758 | '@types/tar-stream': 3.1.1 | ||
2759 | dev: true | ||
2760 | |||
2761 | /@types/tar-stream@3.1.1: | ||
2762 | resolution: {integrity: sha512-/1E+a09mAFQwhlEHqiS3LuNWIBiyrn0HqUWZk2IyGzodu9zkXbaT5vl94iGlZGnG2IONVFZd84SFhns3MhhAQQ==} | ||
2763 | dependencies: | ||
2764 | '@types/node': 20.7.2 | ||
2765 | dev: true | ||
2766 | |||
2767 | /@types/targz@1.0.1: | ||
2768 | resolution: {integrity: sha512-Uf5QxuLICkVOmSyDhPicBpIXk2oLIqaldObfr/WsTKTAPk666OpbeL0wZuNXwc5yg9OH1cBVj1rpMHGBJe4ilg==} | ||
2769 | dependencies: | ||
2770 | '@types/tar-fs': 2.0.2 | ||
2771 | dev: true | ||
2772 | |||
2773 | /@types/uuid@9.0.2: | ||
2774 | resolution: {integrity: sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ==} | ||
2775 | dev: true | ||
2776 | |||
2777 | /@types/validator@13.11.2: | ||
2778 | resolution: {integrity: sha512-nIKVVQKT6kGKysnNt+xLobr+pFJNssJRi2s034wgWeFBUx01fI8BeHTW2TcRp7VcFu9QCYG8IlChTuovcm0oKQ==} | ||
2779 | |||
2780 | /@types/ws@8.5.6: | ||
2781 | resolution: {integrity: sha512-8B5EO9jLVCy+B58PLHvLDuOD8DRVMgQzq8d55SjLCOn9kqGyqOvy27exVaTio1q1nX5zLu8/6N0n2ThSxOM6tg==} | ||
2782 | dependencies: | ||
2783 | '@types/node': 20.7.2 | ||
2784 | dev: true | ||
2785 | |||
2786 | /@types/yargs-parser@21.0.1: | ||
2787 | resolution: {integrity: sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==} | ||
2788 | dev: true | ||
2789 | |||
2790 | /@types/yargs@15.0.16: | ||
2791 | resolution: {integrity: sha512-2FeD5qezW3FvLpZ0JpfuaEWepgNLl9b2gQYiz/ce0NhoB1W/D+VZu98phITXkADYerfr/jb7JcDcVhITsc9bwg==} | ||
2792 | dependencies: | ||
2793 | '@types/yargs-parser': 21.0.1 | ||
2794 | dev: true | ||
2795 | |||
2796 | /@types/yargs@17.0.26: | ||
2797 | resolution: {integrity: sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw==} | ||
516 | dependencies: | 2798 | dependencies: |
2799 | '@types/yargs-parser': 21.0.1 | ||
2800 | dev: true | ||
2801 | |||
2802 | /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6): | ||
2803 | resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} | ||
2804 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | ||
2805 | peerDependencies: | ||
2806 | '@typescript-eslint/parser': ^5.0.0 | ||
2807 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 | ||
2808 | typescript: '*' | ||
2809 | peerDependenciesMeta: | ||
2810 | typescript: | ||
2811 | optional: true | ||
2812 | dependencies: | ||
2813 | '@eslint-community/regexpp': 4.9.0 | ||
2814 | '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) | ||
2815 | '@typescript-eslint/scope-manager': 5.62.0 | ||
2816 | '@typescript-eslint/type-utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) | ||
2817 | '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) | ||
517 | debug: 4.3.4 | 2818 | debug: 4.3.4 |
2819 | eslint: 8.46.0 | ||
2820 | graphemer: 1.4.0 | ||
2821 | ignore: 5.2.4 | ||
2822 | natural-compare-lite: 1.4.0 | ||
2823 | semver: 7.5.4 | ||
2824 | tsutils: 3.21.0(typescript@5.1.6) | ||
2825 | typescript: 5.1.6 | ||
518 | transitivePeerDependencies: | 2826 | transitivePeerDependencies: |
519 | - supports-color | 2827 | - supports-color |
520 | dev: false | 2828 | dev: true |
521 | 2829 | ||
522 | /ajv/6.12.6: | 2830 | /@typescript-eslint/eslint-plugin@6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0)(typescript@5.1.6): |
523 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} | 2831 | resolution: {integrity: sha512-rClGrMuyS/3j0ETa1Ui7s6GkLhfZGKZL3ZrChLeAiACBE/tRc1wq8SNZESUuluxhLj9FkUefRs2l6bCIArWBiQ==} |
2832 | engines: {node: ^16.0.0 || >=18.0.0} | ||
2833 | peerDependencies: | ||
2834 | '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha | ||
2835 | eslint: ^7.0.0 || ^8.0.0 | ||
2836 | typescript: '*' | ||
2837 | peerDependenciesMeta: | ||
2838 | typescript: | ||
2839 | optional: true | ||
524 | dependencies: | 2840 | dependencies: |
525 | fast-deep-equal: 3.1.3 | 2841 | '@eslint-community/regexpp': 4.9.0 |
526 | fast-json-stable-stringify: 2.1.0 | 2842 | '@typescript-eslint/parser': 6.2.0(eslint@8.46.0)(typescript@5.1.6) |
527 | json-schema-traverse: 0.4.1 | 2843 | '@typescript-eslint/scope-manager': 6.2.0 |
528 | uri-js: 4.4.1 | 2844 | '@typescript-eslint/type-utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) |
2845 | '@typescript-eslint/utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) | ||
2846 | '@typescript-eslint/visitor-keys': 6.2.0 | ||
2847 | debug: 4.3.4 | ||
2848 | eslint: 8.46.0 | ||
2849 | graphemer: 1.4.0 | ||
2850 | ignore: 5.2.4 | ||
2851 | natural-compare: 1.4.0 | ||
2852 | natural-compare-lite: 1.4.0 | ||
2853 | semver: 7.5.4 | ||
2854 | ts-api-utils: 1.0.3(typescript@5.1.6) | ||
2855 | typescript: 5.1.6 | ||
2856 | transitivePeerDependencies: | ||
2857 | - supports-color | ||
2858 | dev: true | ||
529 | 2859 | ||
530 | /ajv/8.11.2: | 2860 | /@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6): |
531 | resolution: {integrity: sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==} | 2861 | resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} |
2862 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | ||
2863 | peerDependencies: | ||
2864 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 | ||
2865 | typescript: '*' | ||
2866 | peerDependenciesMeta: | ||
2867 | typescript: | ||
2868 | optional: true | ||
532 | dependencies: | 2869 | dependencies: |
533 | fast-deep-equal: 3.1.3 | 2870 | '@typescript-eslint/scope-manager': 5.62.0 |
534 | json-schema-traverse: 1.0.0 | 2871 | '@typescript-eslint/types': 5.62.0 |
535 | require-from-string: 2.0.2 | 2872 | '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) |
536 | uri-js: 4.4.1 | 2873 | debug: 4.3.4 |
2874 | eslint: 8.46.0 | ||
2875 | typescript: 5.1.6 | ||
2876 | transitivePeerDependencies: | ||
2877 | - supports-color | ||
537 | dev: true | 2878 | dev: true |
538 | 2879 | ||
539 | /all-contributors-cli/6.24.0: | 2880 | /@typescript-eslint/parser@6.2.0(eslint@8.46.0)(typescript@5.1.6): |
540 | resolution: {integrity: sha512-7oSKr2PnqxsOotuSwciltcFTS1eVRdjR0cn99hbElfff7gRQBShVhsf/XBprY41sLcgqTk0l0MKgKv6QNgZdMg==} | 2881 | resolution: {integrity: sha512-igVYOqtiK/UsvKAmmloQAruAdUHihsOCvplJpplPZ+3h4aDkC/UKZZNKgB6h93ayuYLuEymU3h8nF1xMRbh37g==} |
541 | engines: {node: '>=4'} | 2882 | engines: {node: ^16.0.0 || >=18.0.0} |
542 | hasBin: true | 2883 | peerDependencies: |
2884 | eslint: ^7.0.0 || ^8.0.0 | ||
2885 | typescript: '*' | ||
2886 | peerDependenciesMeta: | ||
2887 | typescript: | ||
2888 | optional: true | ||
543 | dependencies: | 2889 | dependencies: |
544 | '@babel/runtime': 7.20.6 | 2890 | '@typescript-eslint/scope-manager': 6.2.0 |
545 | async: 3.2.4 | 2891 | '@typescript-eslint/types': 6.2.0 |
546 | chalk: 4.1.2 | 2892 | '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) |
547 | didyoumean: 1.2.2 | 2893 | '@typescript-eslint/visitor-keys': 6.2.0 |
548 | inquirer: 7.3.3 | 2894 | debug: 4.3.4 |
549 | json-fixer: 1.6.15 | 2895 | eslint: 8.46.0 |
550 | lodash: 4.17.21 | 2896 | typescript: 5.1.6 |
551 | node-fetch: 2.6.7 | ||
552 | pify: 5.0.0 | ||
553 | yargs: 15.4.1 | ||
554 | transitivePeerDependencies: | 2897 | transitivePeerDependencies: |
555 | - encoding | 2898 | - supports-color |
556 | dev: true | 2899 | dev: true |
557 | 2900 | ||
558 | /ansi-bgblack/0.1.1: | 2901 | /@typescript-eslint/scope-manager@5.62.0: |
559 | resolution: {integrity: sha512-tp8M/NCmSr6/skdteeo9UgJ2G1rG88X3ZVNZWXUxFw4Wh0PAGaAAWQS61sfBt/1QNcwMTY3EBKOMPujwioJLaw==} | 2902 | resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} |
560 | engines: {node: '>=0.10.0'} | 2903 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
561 | dependencies: | 2904 | dependencies: |
562 | ansi-wrap: 0.1.0 | 2905 | '@typescript-eslint/types': 5.62.0 |
563 | dev: false | 2906 | '@typescript-eslint/visitor-keys': 5.62.0 |
2907 | dev: true | ||
564 | 2908 | ||
565 | /ansi-bgblue/0.1.1: | 2909 | /@typescript-eslint/scope-manager@6.2.0: |
566 | resolution: {integrity: sha512-R8JmX2Xv3+ichUQE99oL+LvjsyK+CDWo/BtVb4QUz3hOfmf2bdEmiDot3fQcpn2WAHW3toSRdjSLm6bgtWRDlA==} | 2910 | resolution: {integrity: sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q==} |
567 | engines: {node: '>=0.10.0'} | 2911 | engines: {node: ^16.0.0 || >=18.0.0} |
568 | dependencies: | 2912 | dependencies: |
569 | ansi-wrap: 0.1.0 | 2913 | '@typescript-eslint/types': 6.2.0 |
570 | dev: false | 2914 | '@typescript-eslint/visitor-keys': 6.2.0 |
2915 | dev: true | ||
571 | 2916 | ||
572 | /ansi-bgcyan/0.1.1: | 2917 | /@typescript-eslint/type-utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): |
573 | resolution: {integrity: sha512-6SByK9q2H978bmqzuzA5NPT1lRDXl3ODLz/DjC4URO5f/HqK7dnRKfoO/xQLx/makOz7zWIbRf6+Uf7bmaPSkQ==} | 2918 | resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} |
574 | engines: {node: '>=0.10.0'} | 2919 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
2920 | peerDependencies: | ||
2921 | eslint: '*' | ||
2922 | typescript: '*' | ||
2923 | peerDependenciesMeta: | ||
2924 | typescript: | ||
2925 | optional: true | ||
575 | dependencies: | 2926 | dependencies: |
576 | ansi-wrap: 0.1.0 | 2927 | '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) |
577 | dev: false | 2928 | '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) |
2929 | debug: 4.3.4 | ||
2930 | eslint: 8.46.0 | ||
2931 | tsutils: 3.21.0(typescript@5.1.6) | ||
2932 | typescript: 5.1.6 | ||
2933 | transitivePeerDependencies: | ||
2934 | - supports-color | ||
2935 | dev: true | ||
578 | 2936 | ||
579 | /ansi-bggreen/0.1.1: | 2937 | /@typescript-eslint/type-utils@6.2.0(eslint@8.46.0)(typescript@5.1.6): |
580 | resolution: {integrity: sha512-8TRtOKmIPOuxjpklrkhUbqD2NnVb4WZQuIjXrT+TGKFKzl7NrL7wuNvEap3leMt2kQaCngIN1ZzazSbJNzF+Aw==} | 2938 | resolution: {integrity: sha512-DnGZuNU2JN3AYwddYIqrVkYW0uUQdv0AY+kz2M25euVNlujcN2u+rJgfJsBFlUEzBB6OQkUqSZPyuTLf2bP5mw==} |
581 | engines: {node: '>=0.10.0'} | 2939 | engines: {node: ^16.0.0 || >=18.0.0} |
2940 | peerDependencies: | ||
2941 | eslint: ^7.0.0 || ^8.0.0 | ||
2942 | typescript: '*' | ||
2943 | peerDependenciesMeta: | ||
2944 | typescript: | ||
2945 | optional: true | ||
582 | dependencies: | 2946 | dependencies: |
583 | ansi-wrap: 0.1.0 | 2947 | '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) |
584 | dev: false | 2948 | '@typescript-eslint/utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) |
2949 | debug: 4.3.4 | ||
2950 | eslint: 8.46.0 | ||
2951 | ts-api-utils: 1.0.3(typescript@5.1.6) | ||
2952 | typescript: 5.1.6 | ||
2953 | transitivePeerDependencies: | ||
2954 | - supports-color | ||
2955 | dev: true | ||
585 | 2956 | ||
586 | /ansi-bgmagenta/0.1.1: | 2957 | /@typescript-eslint/types@5.62.0: |
587 | resolution: {integrity: sha512-UZYhobiGAlV4NiwOlKAKbkCyxOl1PPZNvdIdl/Ce5by45vwiyNdBetwHk/AjIpo1Ji9z+eE29PUBAjjfVmz5SA==} | 2958 | resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} |
588 | engines: {node: '>=0.10.0'} | 2959 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
2960 | dev: true | ||
2961 | |||
2962 | /@typescript-eslint/types@6.2.0: | ||
2963 | resolution: {integrity: sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA==} | ||
2964 | engines: {node: ^16.0.0 || >=18.0.0} | ||
2965 | dev: true | ||
2966 | |||
2967 | /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6): | ||
2968 | resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} | ||
2969 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | ||
2970 | peerDependencies: | ||
2971 | typescript: '*' | ||
2972 | peerDependenciesMeta: | ||
2973 | typescript: | ||
2974 | optional: true | ||
589 | dependencies: | 2975 | dependencies: |
590 | ansi-wrap: 0.1.0 | 2976 | '@typescript-eslint/types': 5.62.0 |
591 | dev: false | 2977 | '@typescript-eslint/visitor-keys': 5.62.0 |
2978 | debug: 4.3.4 | ||
2979 | globby: 11.1.0 | ||
2980 | is-glob: 4.0.3 | ||
2981 | semver: 7.5.4 | ||
2982 | tsutils: 3.21.0(typescript@5.1.6) | ||
2983 | typescript: 5.1.6 | ||
2984 | transitivePeerDependencies: | ||
2985 | - supports-color | ||
2986 | dev: true | ||
592 | 2987 | ||
593 | /ansi-bgred/0.1.1: | 2988 | /@typescript-eslint/typescript-estree@6.2.0(typescript@5.1.6): |
594 | resolution: {integrity: sha512-BpPHMnYmRBhcjY5knRWKjQmPDPvYU7wrgBSW34xj7JCH9+a/SEIV7+oSYVOgMFopRIadOz9Qm4zIy+mEBvUOPA==} | 2989 | resolution: {integrity: sha512-Mts6+3HQMSM+LZCglsc2yMIny37IhUgp1Qe8yJUYVyO6rHP7/vN0vajKu3JvHCBIy8TSiKddJ/Zwu80jhnGj1w==} |
595 | engines: {node: '>=0.10.0'} | 2990 | engines: {node: ^16.0.0 || >=18.0.0} |
2991 | peerDependencies: | ||
2992 | typescript: '*' | ||
2993 | peerDependenciesMeta: | ||
2994 | typescript: | ||
2995 | optional: true | ||
596 | dependencies: | 2996 | dependencies: |
597 | ansi-wrap: 0.1.0 | 2997 | '@typescript-eslint/types': 6.2.0 |
598 | dev: false | 2998 | '@typescript-eslint/visitor-keys': 6.2.0 |
2999 | debug: 4.3.4 | ||
3000 | globby: 11.1.0 | ||
3001 | is-glob: 4.0.3 | ||
3002 | semver: 7.5.4 | ||
3003 | ts-api-utils: 1.0.3(typescript@5.1.6) | ||
3004 | typescript: 5.1.6 | ||
3005 | transitivePeerDependencies: | ||
3006 | - supports-color | ||
3007 | dev: true | ||
599 | 3008 | ||
600 | /ansi-bgwhite/0.1.1: | 3009 | /@typescript-eslint/utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): |
601 | resolution: {integrity: sha512-KIF19t+HOYOorUnHTOhZpeZ3bJsjzStBG2hSGM0WZ8YQQe4c7lj9CtwnucscJDPrNwfdz6GBF+pFkVfvHBq6uw==} | 3010 | resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} |
602 | engines: {node: '>=0.10.0'} | 3011 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
3012 | peerDependencies: | ||
3013 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 | ||
3014 | dependencies: | ||
3015 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) | ||
3016 | '@types/json-schema': 7.0.13 | ||
3017 | '@types/semver': 7.5.0 | ||
3018 | '@typescript-eslint/scope-manager': 5.62.0 | ||
3019 | '@typescript-eslint/types': 5.62.0 | ||
3020 | '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) | ||
3021 | eslint: 8.46.0 | ||
3022 | eslint-scope: 5.1.1 | ||
3023 | semver: 7.5.4 | ||
3024 | transitivePeerDependencies: | ||
3025 | - supports-color | ||
3026 | - typescript | ||
3027 | dev: true | ||
3028 | |||
3029 | /@typescript-eslint/utils@6.2.0(eslint@8.46.0)(typescript@5.1.6): | ||
3030 | resolution: {integrity: sha512-RCFrC1lXiX1qEZN8LmLrxYRhOkElEsPKTVSNout8DMzf8PeWoQG7Rxz2SadpJa3VSh5oYKGwt7j7X/VRg+Y3OQ==} | ||
3031 | engines: {node: ^16.0.0 || >=18.0.0} | ||
3032 | peerDependencies: | ||
3033 | eslint: ^7.0.0 || ^8.0.0 | ||
3034 | dependencies: | ||
3035 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) | ||
3036 | '@types/json-schema': 7.0.13 | ||
3037 | '@types/semver': 7.5.0 | ||
3038 | '@typescript-eslint/scope-manager': 6.2.0 | ||
3039 | '@typescript-eslint/types': 6.2.0 | ||
3040 | '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) | ||
3041 | eslint: 8.46.0 | ||
3042 | semver: 7.5.4 | ||
3043 | transitivePeerDependencies: | ||
3044 | - supports-color | ||
3045 | - typescript | ||
3046 | dev: true | ||
3047 | |||
3048 | /@typescript-eslint/visitor-keys@5.62.0: | ||
3049 | resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} | ||
3050 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | ||
603 | dependencies: | 3051 | dependencies: |
604 | ansi-wrap: 0.1.0 | 3052 | '@typescript-eslint/types': 5.62.0 |
605 | dev: false | 3053 | eslint-visitor-keys: 3.4.3 |
3054 | dev: true | ||
606 | 3055 | ||
607 | /ansi-bgyellow/0.1.1: | 3056 | /@typescript-eslint/visitor-keys@6.2.0: |
608 | resolution: {integrity: sha512-WyRoOFSIvOeM7e7YdlSjfAV82Z6K1+VUVbygIQ7C/VGzWYuO/d30F0PG7oXeo4uSvSywR0ozixDQvtXJEorq4Q==} | 3057 | resolution: {integrity: sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ==} |
609 | engines: {node: '>=0.10.0'} | 3058 | engines: {node: ^16.0.0 || >=18.0.0} |
610 | dependencies: | 3059 | dependencies: |
611 | ansi-wrap: 0.1.0 | 3060 | '@typescript-eslint/types': 6.2.0 |
612 | dev: false | 3061 | eslint-visitor-keys: 3.4.3 |
3062 | dev: true | ||
613 | 3063 | ||
614 | /ansi-black/0.1.1: | 3064 | /@webassemblyjs/ast@1.11.6: |
615 | resolution: {integrity: sha512-hl7re02lWus7lFOUG6zexhoF5gssAfG5whyr/fOWK9hxNjUFLTjhbU/b4UHWOh2dbJu9/STSUv+80uWYzYkbTQ==} | 3065 | resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} |
616 | engines: {node: '>=0.10.0'} | ||
617 | dependencies: | 3066 | dependencies: |
618 | ansi-wrap: 0.1.0 | 3067 | '@webassemblyjs/helper-numbers': 1.11.6 |
619 | dev: false | 3068 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6 |
3069 | dev: true | ||
620 | 3070 | ||
621 | /ansi-blue/0.1.1: | 3071 | /@webassemblyjs/floating-point-hex-parser@1.11.6: |
622 | resolution: {integrity: sha512-8Um59dYNDdQyoczlf49RgWLzYgC2H/28W3JAIyOAU/+WkMcfZmaznm+0i1ikrE0jME6Ypk9CJ9CY2+vxbPs7Fg==} | 3072 | resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} |
623 | engines: {node: '>=0.10.0'} | 3073 | dev: true |
3074 | |||
3075 | /@webassemblyjs/helper-api-error@1.11.6: | ||
3076 | resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} | ||
3077 | dev: true | ||
3078 | |||
3079 | /@webassemblyjs/helper-buffer@1.11.6: | ||
3080 | resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==} | ||
3081 | dev: true | ||
3082 | |||
3083 | /@webassemblyjs/helper-numbers@1.11.6: | ||
3084 | resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} | ||
624 | dependencies: | 3085 | dependencies: |
625 | ansi-wrap: 0.1.0 | 3086 | '@webassemblyjs/floating-point-hex-parser': 1.11.6 |
626 | dev: false | 3087 | '@webassemblyjs/helper-api-error': 1.11.6 |
3088 | '@xtuc/long': 4.2.2 | ||
3089 | dev: true | ||
627 | 3090 | ||
628 | /ansi-bold/0.1.1: | 3091 | /@webassemblyjs/helper-wasm-bytecode@1.11.6: |
629 | resolution: {integrity: sha512-wWKwcViX1E28U6FohtWOP4sHFyArELHJ2p7+3BzbibqJiuISeskq6t7JnrLisUngMF5zMhgmXVw8Equjzz9OlA==} | 3092 | resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} |
630 | engines: {node: '>=0.10.0'} | 3093 | dev: true |
3094 | |||
3095 | /@webassemblyjs/helper-wasm-section@1.11.6: | ||
3096 | resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==} | ||
631 | dependencies: | 3097 | dependencies: |
632 | ansi-wrap: 0.1.0 | 3098 | '@webassemblyjs/ast': 1.11.6 |
633 | dev: false | 3099 | '@webassemblyjs/helper-buffer': 1.11.6 |
3100 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6 | ||
3101 | '@webassemblyjs/wasm-gen': 1.11.6 | ||
3102 | dev: true | ||
634 | 3103 | ||
635 | /ansi-colors/0.2.0: | 3104 | /@webassemblyjs/ieee754@1.11.6: |
636 | resolution: {integrity: sha512-ScRNUT0TovnYw6+Xo3iKh6G+VXDw2Ds7ZRnMIuKBgHY02DgvT2T2K22/tc/916Fi0W/5Z1RzDaHQwnp75hqdbA==} | 3105 | resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} |
637 | engines: {node: '>=0.10.0'} | ||
638 | dependencies: | 3106 | dependencies: |
639 | ansi-bgblack: 0.1.1 | 3107 | '@xtuc/ieee754': 1.2.0 |
640 | ansi-bgblue: 0.1.1 | 3108 | dev: true |
641 | ansi-bgcyan: 0.1.1 | 3109 | |
642 | ansi-bggreen: 0.1.1 | 3110 | /@webassemblyjs/leb128@1.11.6: |
643 | ansi-bgmagenta: 0.1.1 | 3111 | resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} |
644 | ansi-bgred: 0.1.1 | ||
645 | ansi-bgwhite: 0.1.1 | ||
646 | ansi-bgyellow: 0.1.1 | ||
647 | ansi-black: 0.1.1 | ||
648 | ansi-blue: 0.1.1 | ||
649 | ansi-bold: 0.1.1 | ||
650 | ansi-cyan: 0.1.1 | ||
651 | ansi-dim: 0.1.1 | ||
652 | ansi-gray: 0.1.1 | ||
653 | ansi-green: 0.1.1 | ||
654 | ansi-grey: 0.1.1 | ||
655 | ansi-hidden: 0.1.1 | ||
656 | ansi-inverse: 0.1.1 | ||
657 | ansi-italic: 0.1.1 | ||
658 | ansi-magenta: 0.1.1 | ||
659 | ansi-red: 0.1.1 | ||
660 | ansi-reset: 0.1.1 | ||
661 | ansi-strikethrough: 0.1.1 | ||
662 | ansi-underline: 0.1.1 | ||
663 | ansi-white: 0.1.1 | ||
664 | ansi-yellow: 0.1.1 | ||
665 | lazy-cache: 2.0.2 | ||
666 | dev: false | ||
667 | |||
668 | /ansi-colors/1.1.0: | ||
669 | resolution: {integrity: sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==} | ||
670 | engines: {node: '>=0.10.0'} | ||
671 | dependencies: | 3112 | dependencies: |
672 | ansi-wrap: 0.1.0 | 3113 | '@xtuc/long': 4.2.2 |
673 | dev: false | 3114 | dev: true |
674 | 3115 | ||
675 | /ansi-colors/4.1.3: | 3116 | /@webassemblyjs/utf8@1.11.6: |
676 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} | 3117 | resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} |
677 | engines: {node: '>=6'} | ||
678 | dev: true | 3118 | dev: true |
679 | 3119 | ||
680 | /ansi-cyan/0.1.1: | 3120 | /@webassemblyjs/wasm-edit@1.11.6: |
681 | resolution: {integrity: sha512-eCjan3AVo/SxZ0/MyIYRtkpxIu/H3xZN7URr1vXVrISxeyz8fUFz0FJziamK4sS8I+t35y4rHg1b2PklyBe/7A==} | 3121 | resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==} |
682 | engines: {node: '>=0.10.0'} | ||
683 | dependencies: | 3122 | dependencies: |
684 | ansi-wrap: 0.1.0 | 3123 | '@webassemblyjs/ast': 1.11.6 |
685 | dev: false | 3124 | '@webassemblyjs/helper-buffer': 1.11.6 |
3125 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6 | ||
3126 | '@webassemblyjs/helper-wasm-section': 1.11.6 | ||
3127 | '@webassemblyjs/wasm-gen': 1.11.6 | ||
3128 | '@webassemblyjs/wasm-opt': 1.11.6 | ||
3129 | '@webassemblyjs/wasm-parser': 1.11.6 | ||
3130 | '@webassemblyjs/wast-printer': 1.11.6 | ||
3131 | dev: true | ||
686 | 3132 | ||
687 | /ansi-dim/0.1.1: | 3133 | /@webassemblyjs/wasm-gen@1.11.6: |
688 | resolution: {integrity: sha512-zAfb1fokXsq4BoZBkL0eK+6MfFctbzX3R4UMcoWrL1n2WHewFKentTvOZv2P11u6P4NtW/V47hVjaN7fJiefOg==} | 3134 | resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==} |
689 | engines: {node: '>=0.10.0'} | ||
690 | dependencies: | 3135 | dependencies: |
691 | ansi-wrap: 0.1.0 | 3136 | '@webassemblyjs/ast': 1.11.6 |
692 | dev: false | 3137 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6 |
3138 | '@webassemblyjs/ieee754': 1.11.6 | ||
3139 | '@webassemblyjs/leb128': 1.11.6 | ||
3140 | '@webassemblyjs/utf8': 1.11.6 | ||
3141 | dev: true | ||
693 | 3142 | ||
694 | /ansi-escapes/4.3.2: | 3143 | /@webassemblyjs/wasm-opt@1.11.6: |
695 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} | 3144 | resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==} |
696 | engines: {node: '>=8'} | ||
697 | dependencies: | 3145 | dependencies: |
698 | type-fest: 0.21.3 | 3146 | '@webassemblyjs/ast': 1.11.6 |
3147 | '@webassemblyjs/helper-buffer': 1.11.6 | ||
3148 | '@webassemblyjs/wasm-gen': 1.11.6 | ||
3149 | '@webassemblyjs/wasm-parser': 1.11.6 | ||
699 | dev: true | 3150 | dev: true |
700 | 3151 | ||
701 | /ansi-gray/0.1.1: | 3152 | /@webassemblyjs/wasm-parser@1.11.6: |
702 | resolution: {integrity: sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==} | 3153 | resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==} |
703 | engines: {node: '>=0.10.0'} | ||
704 | dependencies: | 3154 | dependencies: |
705 | ansi-wrap: 0.1.0 | 3155 | '@webassemblyjs/ast': 1.11.6 |
706 | dev: false | 3156 | '@webassemblyjs/helper-api-error': 1.11.6 |
3157 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6 | ||
3158 | '@webassemblyjs/ieee754': 1.11.6 | ||
3159 | '@webassemblyjs/leb128': 1.11.6 | ||
3160 | '@webassemblyjs/utf8': 1.11.6 | ||
3161 | dev: true | ||
707 | 3162 | ||
708 | /ansi-green/0.1.1: | 3163 | /@webassemblyjs/wast-printer@1.11.6: |
709 | resolution: {integrity: sha512-WJ70OI4jCaMy52vGa/ypFSKFb/TrYNPaQ2xco5nUwE0C5H8piume/uAZNNdXXiMQ6DbRmiE7l8oNBHu05ZKkrw==} | 3164 | resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==} |
710 | engines: {node: '>=0.10.0'} | ||
711 | dependencies: | 3165 | dependencies: |
712 | ansi-wrap: 0.1.0 | 3166 | '@webassemblyjs/ast': 1.11.6 |
713 | dev: false | 3167 | '@xtuc/long': 4.2.2 |
3168 | dev: true | ||
714 | 3169 | ||
715 | /ansi-grey/0.1.1: | 3170 | /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.88.2): |
716 | resolution: {integrity: sha512-+J1nM4lC+whSvf3T4jsp1KR+C63lypb+VkkwtLQMc1Dlt+nOvdZpFT0wwFTYoSlSwCcLUAaOpHF6kPkYpSa24A==} | 3171 | resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} |
717 | engines: {node: '>=0.10.0'} | 3172 | engines: {node: '>=14.15.0'} |
3173 | peerDependencies: | ||
3174 | webpack: 5.x.x | ||
3175 | webpack-cli: 5.x.x | ||
718 | dependencies: | 3176 | dependencies: |
719 | ansi-wrap: 0.1.0 | 3177 | webpack: 5.88.2(webpack-cli@5.1.4) |
720 | dev: false | 3178 | webpack-cli: 5.1.4(webpack@5.88.2) |
3179 | dev: true | ||
721 | 3180 | ||
722 | /ansi-hidden/0.1.1: | 3181 | /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.88.2): |
723 | resolution: {integrity: sha512-8gB1bo9ym9qZ/Obvrse1flRsfp2RE+40B23DhQcKxY+GSeaOJblLnzBOxzvmLTWbi5jNON3as7wd9rC0fNK73Q==} | 3182 | resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} |
724 | engines: {node: '>=0.10.0'} | 3183 | engines: {node: '>=14.15.0'} |
3184 | peerDependencies: | ||
3185 | webpack: 5.x.x | ||
3186 | webpack-cli: 5.x.x | ||
725 | dependencies: | 3187 | dependencies: |
726 | ansi-wrap: 0.1.0 | 3188 | webpack: 5.88.2(webpack-cli@5.1.4) |
727 | dev: false | 3189 | webpack-cli: 5.1.4(webpack@5.88.2) |
3190 | dev: true | ||
728 | 3191 | ||
729 | /ansi-inverse/0.1.1: | 3192 | /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.88.2): |
730 | resolution: {integrity: sha512-Kq8Z0dBRhQhDMN/Rso1Nu9niwiTsRkJncfJZXiyj7ApbfJrGrrubHXqXI37feJZkYcIx6SlTBdNCeK0OQ6X6ag==} | 3193 | resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} |
731 | engines: {node: '>=0.10.0'} | 3194 | engines: {node: '>=14.15.0'} |
3195 | peerDependencies: | ||
3196 | webpack: 5.x.x | ||
3197 | webpack-cli: 5.x.x | ||
3198 | webpack-dev-server: '*' | ||
3199 | peerDependenciesMeta: | ||
3200 | webpack-dev-server: | ||
3201 | optional: true | ||
732 | dependencies: | 3202 | dependencies: |
733 | ansi-wrap: 0.1.0 | 3203 | webpack: 5.88.2(webpack-cli@5.1.4) |
3204 | webpack-cli: 5.1.4(webpack@5.88.2) | ||
3205 | dev: true | ||
3206 | |||
3207 | /@xtuc/ieee754@1.2.0: | ||
3208 | resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} | ||
3209 | dev: true | ||
3210 | |||
3211 | /@xtuc/long@4.2.2: | ||
3212 | resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} | ||
3213 | dev: true | ||
3214 | |||
3215 | /abbrev@1.1.1: | ||
3216 | resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} | ||
3217 | requiresBuild: true | ||
734 | dev: false | 3218 | dev: false |
735 | 3219 | ||
736 | /ansi-italic/0.1.1: | 3220 | /abort-controller@3.0.0: |
737 | resolution: {integrity: sha512-jreCxifSAqbaBvcibeQxcwhQDbEj7gF69XnpA6x83qbECEBaRBD1epqskrmov1z4B+zzQuEdwbWxgzvhKa+PkA==} | 3221 | resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} |
738 | engines: {node: '>=0.10.0'} | 3222 | engines: {node: '>=6.5'} |
3223 | dependencies: | ||
3224 | event-target-shim: 5.0.1 | ||
3225 | |||
3226 | /abstract-logging@2.0.1: | ||
3227 | resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} | ||
3228 | |||
3229 | /accepts@1.3.8: | ||
3230 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} | ||
3231 | engines: {node: '>= 0.6'} | ||
739 | dependencies: | 3232 | dependencies: |
740 | ansi-wrap: 0.1.0 | 3233 | mime-types: 2.1.35 |
3234 | negotiator: 0.6.3 | ||
3235 | |||
3236 | /acorn-class-fields@1.0.0(acorn@8.10.0): | ||
3237 | resolution: {integrity: sha512-l+1FokF34AeCXGBHkrXFmml9nOIRI+2yBnBpO5MaVAaTIJ96irWLtcCxX+7hAp6USHFCe+iyyBB4ZhxV807wmA==} | ||
3238 | engines: {node: '>=4.8.2'} | ||
3239 | peerDependencies: | ||
3240 | acorn: ^6 || ^7 || ^8 | ||
3241 | dependencies: | ||
3242 | acorn: 8.10.0 | ||
3243 | acorn-private-class-elements: 1.0.0(acorn@8.10.0) | ||
741 | dev: false | 3244 | dev: false |
742 | 3245 | ||
743 | /ansi-magenta/0.1.1: | 3246 | /acorn-import-assertions@1.9.0(acorn@8.10.0): |
744 | resolution: {integrity: sha512-A1Giu+HRwyWuiXKyXPw2AhG1yWZjNHWO+5mpt+P+VWYkmGRpLPry0O5gmlJQEvpjNpl4RjFV7DJQ4iozWOmkbQ==} | 3247 | resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} |
745 | engines: {node: '>=0.10.0'} | 3248 | peerDependencies: |
3249 | acorn: ^8 | ||
3250 | dependencies: | ||
3251 | acorn: 8.10.0 | ||
3252 | dev: true | ||
3253 | |||
3254 | /acorn-jsx@5.3.2(acorn@8.10.0): | ||
3255 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} | ||
3256 | peerDependencies: | ||
3257 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 | ||
3258 | dependencies: | ||
3259 | acorn: 8.10.0 | ||
3260 | dev: true | ||
3261 | |||
3262 | /acorn-private-class-elements@1.0.0(acorn@8.10.0): | ||
3263 | resolution: {integrity: sha512-zYNcZtxKgVCg1brS39BEou86mIao1EV7eeREG+6WMwKbuYTeivRRs6S2XdWnboRde6G9wKh2w+WBydEyJsJ6mg==} | ||
3264 | engines: {node: '>=4.8.2'} | ||
3265 | peerDependencies: | ||
3266 | acorn: ^6.1.0 || ^7 || ^8 | ||
746 | dependencies: | 3267 | dependencies: |
747 | ansi-wrap: 0.1.0 | 3268 | acorn: 8.10.0 |
748 | dev: false | 3269 | dev: false |
749 | 3270 | ||
750 | /ansi-red/0.1.1: | 3271 | /acorn-private-methods@1.0.0(acorn@8.10.0): |
751 | resolution: {integrity: sha512-ewaIr5y+9CUTGFwZfpECUbFlGcC0GCw1oqR9RI6h1gQCd9Aj2GxSckCnPsVJnmfMZbwFYE+leZGASgkWl06Jow==} | 3272 | resolution: {integrity: sha512-Jou2L3nfwfPpFdmmHObI3yUpVPM1bPohTUAZCyVDw5Efyn9LSS6E36neRLCRfIr8QjskAfdxRdABOrvP4c/gwQ==} |
752 | engines: {node: '>=0.10.0'} | 3273 | engines: {node: '>=4.8.2'} |
3274 | peerDependencies: | ||
3275 | acorn: ^6 || ^7 || ^8 | ||
753 | dependencies: | 3276 | dependencies: |
754 | ansi-wrap: 0.1.0 | 3277 | acorn: 8.10.0 |
3278 | acorn-private-class-elements: 1.0.0(acorn@8.10.0) | ||
755 | dev: false | 3279 | dev: false |
756 | 3280 | ||
757 | /ansi-regex/2.1.1: | 3281 | /acorn-static-class-features@1.0.0(acorn@8.10.0): |
758 | resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} | 3282 | resolution: {integrity: sha512-XZJECjbmMOKvMHiNzbiPXuXpLAJfN3dAKtfIYbk1eHiWdsutlek+gS7ND4B8yJ3oqvHo1NxfafnezVmq7NXK0A==} |
759 | engines: {node: '>=0.10.0'} | 3283 | engines: {node: '>=4.8.2'} |
3284 | peerDependencies: | ||
3285 | acorn: ^6.1.0 || ^7 || ^8 | ||
3286 | dependencies: | ||
3287 | acorn: 8.10.0 | ||
3288 | acorn-private-class-elements: 1.0.0(acorn@8.10.0) | ||
760 | dev: false | 3289 | dev: false |
761 | 3290 | ||
762 | /ansi-regex/3.0.1: | 3291 | /acorn-walk@8.2.0: |
763 | resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} | 3292 | resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} |
764 | engines: {node: '>=4'} | 3293 | engines: {node: '>=0.4.0'} |
765 | dev: false | 3294 | dev: false |
766 | 3295 | ||
767 | /ansi-regex/5.0.1: | 3296 | /acorn@8.10.0: |
768 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} | 3297 | resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} |
769 | engines: {node: '>=8'} | 3298 | engines: {node: '>=0.4.0'} |
3299 | hasBin: true | ||
3300 | |||
3301 | /adjust-sourcemap-loader@4.0.0: | ||
3302 | resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==} | ||
3303 | engines: {node: '>=8.9'} | ||
3304 | dependencies: | ||
3305 | loader-utils: 2.0.4 | ||
3306 | regex-parser: 2.2.11 | ||
770 | dev: true | 3307 | dev: true |
771 | 3308 | ||
772 | /ansi-reset/0.1.1: | 3309 | /adonis-preset-ts@2.1.0: |
773 | resolution: {integrity: sha512-n+D0qD3B+h/lP0dSwXX1SZMoXufdUVotLMwUuvXa50LtBAh3f+WV8b5nFMfLL/hgoPBUt+rG/pqqzF8krlZKcw==} | 3310 | resolution: {integrity: sha512-cQH/NP250gOF9k3TTDhVsTOPSAvyH4MhKVZ4ryYiihA+vnP27sut1gVIrRas3Evl5d2wEgWVGI5DgdP/ZFSk0w==} |
774 | engines: {node: '>=0.10.0'} | 3311 | dev: true |
3312 | |||
3313 | /agent-base@6.0.2: | ||
3314 | resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} | ||
3315 | engines: {node: '>= 6.0.0'} | ||
775 | dependencies: | 3316 | dependencies: |
776 | ansi-wrap: 0.1.0 | 3317 | debug: 4.3.4 |
3318 | transitivePeerDependencies: | ||
3319 | - supports-color | ||
777 | dev: false | 3320 | dev: false |
778 | 3321 | ||
779 | /ansi-strikethrough/0.1.1: | 3322 | /agentkeepalive@4.5.0: |
780 | resolution: {integrity: sha512-gWkLPDvHH2pC9YEKqp8dIl0mg3sRglMPvioqGDIOXiwxjxUwIJ1gF86E2o4R5yLNh8IAkwHbaMtASkJfkQ2hIA==} | 3323 | resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} |
781 | engines: {node: '>=0.10.0'} | 3324 | engines: {node: '>= 8.0.0'} |
3325 | requiresBuild: true | ||
782 | dependencies: | 3326 | dependencies: |
783 | ansi-wrap: 0.1.0 | 3327 | humanize-ms: 1.2.1 |
784 | dev: false | 3328 | dev: false |
3329 | optional: true | ||
785 | 3330 | ||
786 | /ansi-styles/3.2.1: | 3331 | /aggregate-error@3.1.0: |
3332 | resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} | ||
3333 | engines: {node: '>=8'} | ||
3334 | dependencies: | ||
3335 | clean-stack: 2.2.0 | ||
3336 | indent-string: 4.0.0 | ||
3337 | |||
3338 | /ajv-formats@2.1.1(ajv@8.12.0): | ||
3339 | resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} | ||
3340 | peerDependencies: | ||
3341 | ajv: ^8.0.0 | ||
3342 | peerDependenciesMeta: | ||
3343 | ajv: | ||
3344 | optional: true | ||
3345 | dependencies: | ||
3346 | ajv: 8.12.0 | ||
3347 | dev: true | ||
3348 | |||
3349 | /ajv-keywords@3.5.2(ajv@6.12.6): | ||
3350 | resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} | ||
3351 | peerDependencies: | ||
3352 | ajv: ^6.9.1 | ||
3353 | dependencies: | ||
3354 | ajv: 6.12.6 | ||
3355 | dev: true | ||
3356 | |||
3357 | /ajv-keywords@5.1.0(ajv@8.12.0): | ||
3358 | resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} | ||
3359 | peerDependencies: | ||
3360 | ajv: ^8.8.2 | ||
3361 | dependencies: | ||
3362 | ajv: 8.12.0 | ||
3363 | fast-deep-equal: 3.1.3 | ||
3364 | dev: true | ||
3365 | |||
3366 | /ajv@6.12.6: | ||
3367 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} | ||
3368 | dependencies: | ||
3369 | fast-deep-equal: 3.1.3 | ||
3370 | fast-json-stable-stringify: 2.1.0 | ||
3371 | json-schema-traverse: 0.4.1 | ||
3372 | uri-js: 4.4.1 | ||
3373 | dev: true | ||
3374 | |||
3375 | /ajv@8.12.0: | ||
3376 | resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} | ||
3377 | dependencies: | ||
3378 | fast-deep-equal: 3.1.3 | ||
3379 | json-schema-traverse: 1.0.0 | ||
3380 | require-from-string: 2.0.2 | ||
3381 | uri-js: 4.4.1 | ||
3382 | dev: true | ||
3383 | |||
3384 | /ansi-colors@4.1.3: | ||
3385 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} | ||
3386 | engines: {node: '>=6'} | ||
3387 | |||
3388 | /ansi-escapes@4.3.2: | ||
3389 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} | ||
3390 | engines: {node: '>=8'} | ||
3391 | dependencies: | ||
3392 | type-fest: 0.21.3 | ||
3393 | |||
3394 | /ansi-escapes@6.2.0: | ||
3395 | resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} | ||
3396 | engines: {node: '>=14.16'} | ||
3397 | dependencies: | ||
3398 | type-fest: 3.13.1 | ||
3399 | dev: true | ||
3400 | |||
3401 | /ansi-html-community@0.0.8: | ||
3402 | resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} | ||
3403 | engines: {'0': node >= 0.8.0} | ||
3404 | hasBin: true | ||
3405 | dev: true | ||
3406 | |||
3407 | /ansi-regex@2.1.1: | ||
3408 | resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} | ||
3409 | engines: {node: '>=0.10.0'} | ||
3410 | dev: true | ||
3411 | |||
3412 | /ansi-regex@5.0.1: | ||
3413 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} | ||
3414 | engines: {node: '>=8'} | ||
3415 | |||
3416 | /ansi-styles@2.2.1: | ||
3417 | resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} | ||
3418 | engines: {node: '>=0.10.0'} | ||
3419 | dev: true | ||
3420 | |||
3421 | /ansi-styles@3.2.1: | ||
787 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} | 3422 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} |
788 | engines: {node: '>=4'} | 3423 | engines: {node: '>=4'} |
789 | dependencies: | 3424 | dependencies: |
790 | color-convert: 1.9.3 | 3425 | color-convert: 1.9.3 |
791 | dev: true | 3426 | dev: true |
792 | 3427 | ||
793 | /ansi-styles/4.3.0: | 3428 | /ansi-styles@4.3.0: |
794 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} | 3429 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} |
795 | engines: {node: '>=8'} | 3430 | engines: {node: '>=8'} |
796 | dependencies: | 3431 | dependencies: |
797 | color-convert: 2.0.1 | 3432 | color-convert: 2.0.1 |
3433 | |||
3434 | /ansi-styles@5.2.0: | ||
3435 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} | ||
3436 | engines: {node: '>=10'} | ||
798 | dev: true | 3437 | dev: true |
799 | 3438 | ||
800 | /ansi-underline/0.1.1: | 3439 | /ansicolors@0.3.2: |
801 | resolution: {integrity: sha512-D+Bzwio/0/a0Fu5vJzrIT6bFk43TW46vXfSvzysOTEHcXOAUJTVMHWDbELIzGU4AVxVw2rCTb7YyWS4my2cSKQ==} | 3440 | resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} |
802 | engines: {node: '>=0.10.0'} | 3441 | dev: true |
803 | dependencies: | ||
804 | ansi-wrap: 0.1.0 | ||
805 | dev: false | ||
806 | 3442 | ||
807 | /ansi-white/0.1.1: | 3443 | /anymatch@3.1.3: |
808 | resolution: {integrity: sha512-DJHaF2SRzBb9wZBgqIJNjjTa7JUJTO98sHeTS1sDopyKKRopL1KpaJ20R6W2f/ZGras8bYyIZDtNwYOVXNgNFg==} | 3444 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} |
809 | engines: {node: '>=0.10.0'} | 3445 | engines: {node: '>= 8'} |
810 | dependencies: | 3446 | dependencies: |
811 | ansi-wrap: 0.1.0 | 3447 | normalize-path: 3.0.0 |
812 | dev: false | 3448 | picomatch: 2.3.1 |
3449 | dev: true | ||
813 | 3450 | ||
814 | /ansi-wrap/0.1.0: | 3451 | /api-contract-validator@2.2.8(openapi-types@12.1.3): |
815 | resolution: {integrity: sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==} | 3452 | resolution: {integrity: sha512-YM3rMcrIp8Thf/WWbVBXBGX793Mm3Phw2pn3VbJpiZkpeTCTtF10huKPrzQ2gSIaK5GjAhTRJMAOyf+rsS7MAw==} |
816 | engines: {node: '>=0.10.0'} | 3453 | engines: {node: '>=8'} |
817 | dev: false | 3454 | dependencies: |
3455 | api-schema-builder: 2.0.11(openapi-types@12.1.3) | ||
3456 | chalk: 3.0.0 | ||
3457 | columnify: 1.6.0 | ||
3458 | jest-diff: 25.5.0 | ||
3459 | jest-matcher-utils: 25.5.0 | ||
3460 | lodash.flatten: 4.4.0 | ||
3461 | lodash.get: 4.4.2 | ||
3462 | lodash.set: 4.3.2 | ||
3463 | uri-js: 4.4.1 | ||
3464 | transitivePeerDependencies: | ||
3465 | - openapi-types | ||
3466 | dev: true | ||
818 | 3467 | ||
819 | /ansi-yellow/0.1.1: | 3468 | /api-schema-builder@2.0.11(openapi-types@12.1.3): |
820 | resolution: {integrity: sha512-6E3D4BQLXHLl3c/NwirWVZ+BCkMq2qsYxdeAGGOijKrx09FaqU+HktFL6QwAwNvgJiMLnv6AQ2C1gFZx0h1CBg==} | 3469 | resolution: {integrity: sha512-85zbwf8MtPWodhfnmQRW5YD/fuGR12FP+8TbcYai5wbRnoUmPYLftLSbp7NB6zQMPb61Gjz+ApPUSyTdcCos7g==} |
821 | engines: {node: '>=0.10.0'} | 3470 | engines: {node: '>=8'} |
822 | dependencies: | 3471 | dependencies: |
823 | ansi-wrap: 0.1.0 | 3472 | ajv: 6.12.6 |
824 | dev: false | 3473 | clone-deep: 4.0.1 |
3474 | decimal.js: 10.4.3 | ||
3475 | js-yaml: 3.14.1 | ||
3476 | json-schema-deref-sync: 0.14.0 | ||
3477 | lodash.get: 4.4.2 | ||
3478 | openapi-schema-validator: 3.0.3 | ||
3479 | swagger-parser: 10.0.3(openapi-types@12.1.3) | ||
3480 | transitivePeerDependencies: | ||
3481 | - openapi-types | ||
3482 | dev: true | ||
825 | 3483 | ||
826 | /any-promise/0.1.0: | 3484 | /aproba@2.0.0: |
827 | resolution: {integrity: sha512-lqzY9o+BbeGHRCOyxQkt/Tgvz0IZhTmQiA+LxQW8wSNpcTbj8K+0cZiSEvbpNZZP9/11Gy7dnLO3GNWUXO4d1g==} | 3485 | resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} |
828 | dev: false | 3486 | dev: false |
829 | 3487 | ||
830 | /aproba/1.2.0: | 3488 | /are-we-there-yet@2.0.0: |
831 | resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} | 3489 | resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} |
3490 | engines: {node: '>=10'} | ||
3491 | dependencies: | ||
3492 | delegates: 1.0.0 | ||
3493 | readable-stream: 3.6.2 | ||
832 | dev: false | 3494 | dev: false |
833 | 3495 | ||
834 | /are-we-there-yet/1.1.7: | 3496 | /are-we-there-yet@3.0.1: |
835 | resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} | 3497 | resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} |
3498 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} | ||
3499 | requiresBuild: true | ||
836 | dependencies: | 3500 | dependencies: |
837 | delegates: 1.0.0 | 3501 | delegates: 1.0.0 |
838 | readable-stream: 2.3.7 | 3502 | readable-stream: 3.6.2 |
839 | dev: false | 3503 | dev: false |
3504 | optional: true | ||
840 | 3505 | ||
841 | /argparse/1.0.10: | 3506 | /argparse@1.0.10: |
842 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} | 3507 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} |
843 | dependencies: | 3508 | dependencies: |
844 | sprintf-js: 1.0.3 | 3509 | sprintf-js: 1.0.3 |
845 | dev: true | 3510 | dev: true |
846 | 3511 | ||
847 | /arr-diff/4.0.0: | 3512 | /argparse@2.0.1: |
3513 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} | ||
3514 | dev: true | ||
3515 | |||
3516 | /arr-diff@4.0.0: | ||
848 | resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} | 3517 | resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} |
849 | engines: {node: '>=0.10.0'} | 3518 | engines: {node: '>=0.10.0'} |
850 | dev: false | 3519 | dev: true |
851 | 3520 | ||
852 | /arr-flatten/1.1.0: | 3521 | /arr-flatten@1.1.0: |
853 | resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} | 3522 | resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} |
854 | engines: {node: '>=0.10.0'} | 3523 | engines: {node: '>=0.10.0'} |
855 | dev: false | 3524 | dev: true |
856 | 3525 | ||
857 | /arr-swap/1.0.1: | 3526 | /arr-union@3.1.0: |
858 | resolution: {integrity: sha512-SxBKd/By8+AaREcv/ZhFqmapfpqK4kyaQkUHwmJjlczI5ZtuuT5gofKHlCrSJ4oR7zXezFhv+7zsnLEdg9uGgQ==} | 3527 | resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} |
859 | engines: {node: '>=0.10.0'} | 3528 | engines: {node: '>=0.10.0'} |
3529 | dev: true | ||
3530 | |||
3531 | /array-buffer-byte-length@1.0.0: | ||
3532 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} | ||
860 | dependencies: | 3533 | dependencies: |
861 | is-number: 3.0.0 | 3534 | call-bind: 1.0.2 |
862 | dev: false | 3535 | is-array-buffer: 3.0.2 |
3536 | dev: true | ||
863 | 3537 | ||
864 | /arr-union/3.1.0: | 3538 | /array-flatten@1.1.1: |
865 | resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} | 3539 | resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} |
866 | engines: {node: '>=0.10.0'} | 3540 | dev: true |
867 | dev: false | ||
868 | 3541 | ||
869 | /array-each/1.0.1: | 3542 | /array-flatten@2.1.2: |
870 | resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} | 3543 | resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==} |
871 | engines: {node: '>=0.10.0'} | 3544 | dev: true |
872 | dev: false | ||
873 | 3545 | ||
874 | /array-includes/3.1.6: | 3546 | /array-includes@3.1.7: |
875 | resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} | 3547 | resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} |
876 | engines: {node: '>= 0.4'} | 3548 | engines: {node: '>= 0.4'} |
877 | dependencies: | 3549 | dependencies: |
878 | call-bind: 1.0.2 | 3550 | call-bind: 1.0.2 |
879 | define-properties: 1.1.4 | 3551 | define-properties: 1.2.1 |
880 | es-abstract: 1.20.5 | 3552 | es-abstract: 1.22.2 |
881 | get-intrinsic: 1.1.3 | 3553 | get-intrinsic: 1.2.1 |
882 | is-string: 1.0.7 | 3554 | is-string: 1.0.7 |
883 | dev: true | 3555 | dev: true |
884 | 3556 | ||
885 | /array-slice/1.1.0: | 3557 | /array-union@1.0.2: |
886 | resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} | 3558 | resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} |
887 | engines: {node: '>=0.10.0'} | 3559 | engines: {node: '>=0.10.0'} |
888 | dev: false | 3560 | dependencies: |
3561 | array-uniq: 1.0.3 | ||
3562 | dev: true | ||
889 | 3563 | ||
890 | /array-unique/0.3.2: | 3564 | /array-union@2.1.0: |
3565 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} | ||
3566 | engines: {node: '>=8'} | ||
3567 | dev: true | ||
3568 | |||
3569 | /array-uniq@1.0.3: | ||
3570 | resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} | ||
3571 | engines: {node: '>=0.10.0'} | ||
3572 | dev: true | ||
3573 | |||
3574 | /array-unique@0.3.2: | ||
891 | resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} | 3575 | resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} |
892 | engines: {node: '>=0.10.0'} | 3576 | engines: {node: '>=0.10.0'} |
893 | dev: false | 3577 | dev: true |
894 | 3578 | ||
895 | /array.prototype.flat/1.3.1: | 3579 | /array.prototype.findlastindex@1.2.3: |
896 | resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} | 3580 | resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} |
897 | engines: {node: '>= 0.4'} | 3581 | engines: {node: '>= 0.4'} |
898 | dependencies: | 3582 | dependencies: |
899 | call-bind: 1.0.2 | 3583 | call-bind: 1.0.2 |
900 | define-properties: 1.1.4 | 3584 | define-properties: 1.2.1 |
901 | es-abstract: 1.20.5 | 3585 | es-abstract: 1.22.2 |
902 | es-shim-unscopables: 1.0.0 | 3586 | es-shim-unscopables: 1.0.0 |
3587 | get-intrinsic: 1.2.1 | ||
903 | dev: true | 3588 | dev: true |
904 | 3589 | ||
905 | /asn1/0.2.6: | 3590 | /array.prototype.flat@1.3.2: |
906 | resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} | 3591 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} |
3592 | engines: {node: '>= 0.4'} | ||
907 | dependencies: | 3593 | dependencies: |
908 | safer-buffer: 2.1.2 | 3594 | call-bind: 1.0.2 |
909 | dev: false | 3595 | define-properties: 1.2.1 |
3596 | es-abstract: 1.22.2 | ||
3597 | es-shim-unscopables: 1.0.0 | ||
3598 | dev: true | ||
910 | 3599 | ||
911 | /assert-plus/1.0.0: | 3600 | /array.prototype.flatmap@1.3.2: |
912 | resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} | 3601 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} |
913 | engines: {node: '>=0.8'} | 3602 | engines: {node: '>= 0.4'} |
914 | dev: false | 3603 | dependencies: |
3604 | call-bind: 1.0.2 | ||
3605 | define-properties: 1.2.1 | ||
3606 | es-abstract: 1.22.2 | ||
3607 | es-shim-unscopables: 1.0.0 | ||
3608 | dev: true | ||
3609 | |||
3610 | /arraybuffer.prototype.slice@1.0.2: | ||
3611 | resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} | ||
3612 | engines: {node: '>= 0.4'} | ||
3613 | dependencies: | ||
3614 | array-buffer-byte-length: 1.0.0 | ||
3615 | call-bind: 1.0.2 | ||
3616 | define-properties: 1.2.1 | ||
3617 | es-abstract: 1.22.2 | ||
3618 | get-intrinsic: 1.2.1 | ||
3619 | is-array-buffer: 3.0.2 | ||
3620 | is-shared-array-buffer: 1.0.2 | ||
3621 | dev: true | ||
3622 | |||
3623 | /arrify@2.0.1: | ||
3624 | resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} | ||
3625 | engines: {node: '>=8'} | ||
3626 | dev: true | ||
3627 | |||
3628 | /as-table@1.0.55: | ||
3629 | resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} | ||
3630 | dependencies: | ||
3631 | printable-characters: 1.0.42 | ||
3632 | dev: true | ||
3633 | |||
3634 | /asap@2.0.6: | ||
3635 | resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} | ||
3636 | dev: true | ||
3637 | |||
3638 | /assertion-error@1.1.0: | ||
3639 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} | ||
3640 | dev: true | ||
3641 | |||
3642 | /assets-webpack-plugin@7.0.0(webpack@5.88.2): | ||
3643 | resolution: {integrity: sha512-DMZ9r6HFxynWeONRMhSOFTvTrmit5dovdoUKdJgCG03M6CC7XiwNImPH+Ad1jaVrQ2n59e05lBhte52xPt4MSA==} | ||
3644 | engines: {node: '>=10.x.x'} | ||
3645 | peerDependencies: | ||
3646 | webpack: '>=5.0.0' | ||
3647 | dependencies: | ||
3648 | camelcase: 6.3.0 | ||
3649 | escape-string-regexp: 4.0.0 | ||
3650 | lodash: 4.17.21 | ||
3651 | webpack: 5.88.2(webpack-cli@5.1.4) | ||
3652 | dev: true | ||
915 | 3653 | ||
916 | /assign-symbols/1.0.0: | 3654 | /assign-symbols@1.0.0: |
917 | resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} | 3655 | resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} |
918 | engines: {node: '>=0.10.0'} | 3656 | engines: {node: '>=0.10.0'} |
919 | dev: false | 3657 | dev: true |
920 | 3658 | ||
921 | /astral-regex/2.0.0: | 3659 | /astral-regex@2.0.0: |
922 | resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} | 3660 | resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} |
923 | engines: {node: '>=8'} | 3661 | engines: {node: '>=8'} |
924 | dev: true | ||
925 | 3662 | ||
926 | /async/3.2.4: | 3663 | /astring@1.8.6: |
927 | resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} | 3664 | resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} |
928 | 3665 | hasBin: true | |
929 | /asynckit/0.4.0: | ||
930 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} | ||
931 | dev: false | 3666 | dev: false |
932 | 3667 | ||
933 | /at-least-node/1.0.0: | 3668 | /async-retry@1.3.3: |
934 | resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} | 3669 | resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} |
935 | engines: {node: '>= 4.0.0'} | 3670 | dependencies: |
936 | dev: false | 3671 | retry: 0.13.1 |
3672 | dev: true | ||
3673 | |||
3674 | /asynckit@0.4.0: | ||
3675 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} | ||
3676 | dev: true | ||
937 | 3677 | ||
938 | /atob/2.1.2: | 3678 | /atob@2.1.2: |
939 | resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} | 3679 | resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} |
940 | engines: {node: '>= 4.5.0'} | 3680 | engines: {node: '>= 4.5.0'} |
941 | hasBin: true | 3681 | hasBin: true |
942 | dev: false | 3682 | dev: true |
943 | 3683 | ||
944 | /aws-sign2/0.7.0: | 3684 | /atomic-sleep@1.0.0: |
945 | resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} | 3685 | resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} |
946 | dev: false | 3686 | engines: {node: '>=8.0.0'} |
947 | 3687 | ||
948 | /aws4/1.11.0: | 3688 | /available-typed-arrays@1.0.5: |
949 | resolution: {integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==} | 3689 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} |
3690 | engines: {node: '>= 0.4'} | ||
3691 | |||
3692 | /aws-sdk@2.1425.0: | ||
3693 | resolution: {integrity: sha512-DbY5z7E8RsrX8/0pMBKMuh/rWFic3AghtU2AWkUdzxDi0cUSK7rOSPS/OIURU9Rh0jaNXoA0ujBDdx/CC5CvRA==} | ||
3694 | engines: {node: '>= 10.0.0'} | ||
3695 | dependencies: | ||
3696 | buffer: 4.9.2 | ||
3697 | events: 1.1.1 | ||
3698 | ieee754: 1.1.13 | ||
3699 | jmespath: 0.16.0 | ||
3700 | querystring: 0.2.0 | ||
3701 | sax: 1.2.1 | ||
3702 | url: 0.10.3 | ||
3703 | util: 0.12.5 | ||
3704 | uuid: 8.0.0 | ||
3705 | xml2js: 0.5.0 | ||
950 | dev: false | 3706 | dev: false |
951 | 3707 | ||
952 | /balanced-match/1.0.2: | 3708 | /babel-code-frame@6.26.0: |
3709 | resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==} | ||
3710 | dependencies: | ||
3711 | chalk: 1.1.3 | ||
3712 | esutils: 2.0.3 | ||
3713 | js-tokens: 3.0.2 | ||
3714 | dev: true | ||
3715 | |||
3716 | /babel-loader@8.3.0(@babel/core@7.23.0)(webpack@5.88.2): | ||
3717 | resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} | ||
3718 | engines: {node: '>= 8.9'} | ||
3719 | peerDependencies: | ||
3720 | '@babel/core': ^7.0.0 | ||
3721 | webpack: '>=2' | ||
3722 | dependencies: | ||
3723 | '@babel/core': 7.23.0 | ||
3724 | find-cache-dir: 3.3.2 | ||
3725 | loader-utils: 2.0.4 | ||
3726 | make-dir: 3.1.0 | ||
3727 | schema-utils: 2.7.1 | ||
3728 | webpack: 5.88.2(webpack-cli@5.1.4) | ||
3729 | dev: true | ||
3730 | |||
3731 | /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.23.0): | ||
3732 | resolution: {integrity: sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==} | ||
3733 | peerDependencies: | ||
3734 | '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 | ||
3735 | dependencies: | ||
3736 | '@babel/compat-data': 7.22.20 | ||
3737 | '@babel/core': 7.23.0 | ||
3738 | '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.23.0) | ||
3739 | semver: 6.3.1 | ||
3740 | transitivePeerDependencies: | ||
3741 | - supports-color | ||
3742 | dev: true | ||
3743 | |||
3744 | /babel-plugin-polyfill-corejs3@0.8.4(@babel/core@7.23.0): | ||
3745 | resolution: {integrity: sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg==} | ||
3746 | peerDependencies: | ||
3747 | '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 | ||
3748 | dependencies: | ||
3749 | '@babel/core': 7.23.0 | ||
3750 | '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.23.0) | ||
3751 | core-js-compat: 3.32.2 | ||
3752 | transitivePeerDependencies: | ||
3753 | - supports-color | ||
3754 | dev: true | ||
3755 | |||
3756 | /babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.23.0): | ||
3757 | resolution: {integrity: sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==} | ||
3758 | peerDependencies: | ||
3759 | '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 | ||
3760 | dependencies: | ||
3761 | '@babel/core': 7.23.0 | ||
3762 | '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.23.0) | ||
3763 | transitivePeerDependencies: | ||
3764 | - supports-color | ||
3765 | dev: true | ||
3766 | |||
3767 | /balanced-match@1.0.2: | ||
953 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} | 3768 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} |
954 | 3769 | ||
955 | /base/0.11.2: | 3770 | /base64-js@1.5.1: |
3771 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} | ||
3772 | |||
3773 | /base@0.11.2: | ||
956 | resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} | 3774 | resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} |
957 | engines: {node: '>=0.10.0'} | 3775 | engines: {node: '>=0.10.0'} |
958 | dependencies: | 3776 | dependencies: |
@@ -963,43 +3781,101 @@ packages: | |||
963 | isobject: 3.0.1 | 3781 | isobject: 3.0.1 |
964 | mixin-deep: 1.3.2 | 3782 | mixin-deep: 1.3.2 |
965 | pascalcase: 0.1.1 | 3783 | pascalcase: 0.1.1 |
966 | dev: false | 3784 | dev: true |
967 | 3785 | ||
968 | /basic-auth/2.0.1: | 3786 | /batch@0.6.1: |
969 | resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} | 3787 | resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} |
970 | engines: {node: '>= 0.8'} | 3788 | dev: true |
971 | dependencies: | ||
972 | safe-buffer: 5.1.2 | ||
973 | dev: false | ||
974 | 3789 | ||
975 | /bcrypt-pbkdf/1.0.2: | 3790 | /bcrypt@5.1.1: |
976 | resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} | 3791 | resolution: {integrity: sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==} |
3792 | engines: {node: '>= 10.0.0'} | ||
3793 | requiresBuild: true | ||
977 | dependencies: | 3794 | dependencies: |
978 | tweetnacl: 0.14.5 | 3795 | '@mapbox/node-pre-gyp': 1.0.11 |
3796 | node-addon-api: 5.1.0 | ||
3797 | transitivePeerDependencies: | ||
3798 | - encoding | ||
3799 | - supports-color | ||
979 | dev: false | 3800 | dev: false |
980 | 3801 | ||
981 | /bcryptjs/2.4.3: | 3802 | /big-integer@1.6.51: |
982 | resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} | 3803 | resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} |
983 | dev: false | 3804 | engines: {node: '>=0.6'} |
3805 | dev: true | ||
3806 | |||
3807 | /big.js@5.2.2: | ||
3808 | resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} | ||
3809 | dev: true | ||
984 | 3810 | ||
985 | /bignumber.js/9.0.0: | 3811 | /bignumber.js@9.0.0: |
986 | resolution: {integrity: sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==} | 3812 | resolution: {integrity: sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==} |
987 | dev: false | 3813 | dev: false |
988 | 3814 | ||
989 | /bl/1.2.3: | 3815 | /binary-extensions@2.2.0: |
3816 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} | ||
3817 | engines: {node: '>=8'} | ||
3818 | dev: true | ||
3819 | |||
3820 | /bl@1.2.3: | ||
990 | resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} | 3821 | resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} |
991 | dependencies: | 3822 | dependencies: |
992 | readable-stream: 2.3.7 | 3823 | readable-stream: 2.3.8 |
993 | safe-buffer: 5.2.1 | 3824 | safe-buffer: 5.2.1 |
994 | dev: false | 3825 | dev: false |
995 | 3826 | ||
996 | /brace-expansion/1.1.11: | 3827 | /body-parser@1.20.1: |
3828 | resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} | ||
3829 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} | ||
3830 | dependencies: | ||
3831 | bytes: 3.1.2 | ||
3832 | content-type: 1.0.5 | ||
3833 | debug: 2.6.9 | ||
3834 | depd: 2.0.0 | ||
3835 | destroy: 1.2.0 | ||
3836 | http-errors: 2.0.0 | ||
3837 | iconv-lite: 0.4.24 | ||
3838 | on-finished: 2.4.1 | ||
3839 | qs: 6.11.0 | ||
3840 | raw-body: 2.5.1 | ||
3841 | type-is: 1.6.18 | ||
3842 | unpipe: 1.0.0 | ||
3843 | transitivePeerDependencies: | ||
3844 | - supports-color | ||
3845 | dev: true | ||
3846 | |||
3847 | /bonjour-service@1.1.1: | ||
3848 | resolution: {integrity: sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==} | ||
3849 | dependencies: | ||
3850 | array-flatten: 2.1.2 | ||
3851 | dns-equal: 1.0.0 | ||
3852 | fast-deep-equal: 3.1.3 | ||
3853 | multicast-dns: 7.2.5 | ||
3854 | dev: true | ||
3855 | |||
3856 | /boolbase@1.0.0: | ||
3857 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} | ||
3858 | dev: true | ||
3859 | |||
3860 | /bplist-parser@0.2.0: | ||
3861 | resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} | ||
3862 | engines: {node: '>= 5.10.0'} | ||
3863 | dependencies: | ||
3864 | big-integer: 1.6.51 | ||
3865 | dev: true | ||
3866 | |||
3867 | /brace-expansion@1.1.11: | ||
997 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} | 3868 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} |
998 | dependencies: | 3869 | dependencies: |
999 | balanced-match: 1.0.2 | 3870 | balanced-match: 1.0.2 |
1000 | concat-map: 0.0.1 | 3871 | concat-map: 0.0.1 |
1001 | 3872 | ||
1002 | /braces/2.3.2: | 3873 | /brace-expansion@2.0.1: |
3874 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} | ||
3875 | dependencies: | ||
3876 | balanced-match: 1.0.2 | ||
3877 | |||
3878 | /braces@2.3.2: | ||
1003 | resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} | 3879 | resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} |
1004 | engines: {node: '>=0.10.0'} | 3880 | engines: {node: '>=0.10.0'} |
1005 | dependencies: | 3881 | dependencies: |
@@ -1015,49 +3891,116 @@ packages: | |||
1015 | to-regex: 3.0.2 | 3891 | to-regex: 3.0.2 |
1016 | transitivePeerDependencies: | 3892 | transitivePeerDependencies: |
1017 | - supports-color | 3893 | - supports-color |
1018 | dev: false | 3894 | dev: true |
1019 | 3895 | ||
1020 | /bson/1.1.6: | 3896 | /braces@3.0.2: |
1021 | resolution: {integrity: sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==} | 3897 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} |
1022 | engines: {node: '>=0.6.19'} | 3898 | engines: {node: '>=8'} |
1023 | dev: false | 3899 | dependencies: |
3900 | fill-range: 7.0.1 | ||
1024 | 3901 | ||
1025 | /btoa/1.2.1: | 3902 | /browserslist@4.22.1: |
1026 | resolution: {integrity: sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==} | 3903 | resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} |
1027 | engines: {node: '>= 0.4.0'} | 3904 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} |
1028 | hasBin: true | 3905 | hasBin: true |
1029 | dev: false | 3906 | dependencies: |
3907 | caniuse-lite: 1.0.30001541 | ||
3908 | electron-to-chromium: 1.4.537 | ||
3909 | node-releases: 2.0.13 | ||
3910 | update-browserslist-db: 1.0.13(browserslist@4.22.1) | ||
3911 | dev: true | ||
1030 | 3912 | ||
1031 | /buffer-alloc-unsafe/1.1.0: | 3913 | /buffer-alloc-unsafe@1.1.0: |
1032 | resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} | 3914 | resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} |
1033 | dev: false | 3915 | dev: false |
1034 | 3916 | ||
1035 | /buffer-alloc/1.2.0: | 3917 | /buffer-alloc@1.2.0: |
1036 | resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} | 3918 | resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} |
1037 | dependencies: | 3919 | dependencies: |
1038 | buffer-alloc-unsafe: 1.1.0 | 3920 | buffer-alloc-unsafe: 1.1.0 |
1039 | buffer-fill: 1.0.0 | 3921 | buffer-fill: 1.0.0 |
1040 | dev: false | 3922 | dev: false |
1041 | 3923 | ||
1042 | /buffer-equal-constant-time/1.0.1: | 3924 | /buffer-fill@1.0.0: |
1043 | resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} | ||
1044 | dev: false | ||
1045 | |||
1046 | /buffer-fill/1.0.0: | ||
1047 | resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} | 3925 | resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} |
1048 | dev: false | 3926 | dev: false |
1049 | 3927 | ||
1050 | /buffer-writer/2.0.0: | 3928 | /buffer-from@1.1.2: |
3929 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} | ||
3930 | |||
3931 | /buffer-writer@2.0.0: | ||
1051 | resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} | 3932 | resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} |
1052 | engines: {node: '>=4'} | 3933 | engines: {node: '>=4'} |
1053 | dev: false | 3934 | dev: false |
1054 | 3935 | ||
1055 | /bytes/3.1.2: | 3936 | /buffer@4.9.2: |
3937 | resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} | ||
3938 | dependencies: | ||
3939 | base64-js: 1.5.1 | ||
3940 | ieee754: 1.1.13 | ||
3941 | isarray: 1.0.0 | ||
3942 | dev: false | ||
3943 | |||
3944 | /buffer@6.0.3: | ||
3945 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} | ||
3946 | dependencies: | ||
3947 | base64-js: 1.5.1 | ||
3948 | ieee754: 1.2.1 | ||
3949 | |||
3950 | /builtin-modules@3.3.0: | ||
3951 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} | ||
3952 | engines: {node: '>=6'} | ||
3953 | dev: true | ||
3954 | |||
3955 | /builtins@1.0.3: | ||
3956 | resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} | ||
3957 | dev: true | ||
3958 | |||
3959 | /bundle-name@3.0.0: | ||
3960 | resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} | ||
3961 | engines: {node: '>=12'} | ||
3962 | dependencies: | ||
3963 | run-applescript: 5.0.0 | ||
3964 | dev: true | ||
3965 | |||
3966 | /bytes@3.0.0: | ||
3967 | resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} | ||
3968 | engines: {node: '>= 0.8'} | ||
3969 | dev: true | ||
3970 | |||
3971 | /bytes@3.1.2: | ||
1056 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} | 3972 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} |
1057 | engines: {node: '>= 0.8'} | 3973 | engines: {node: '>= 0.8'} |
3974 | |||
3975 | /cacache@15.3.0: | ||
3976 | resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} | ||
3977 | engines: {node: '>= 10'} | ||
3978 | requiresBuild: true | ||
3979 | dependencies: | ||
3980 | '@npmcli/fs': 1.1.1 | ||
3981 | '@npmcli/move-file': 1.1.2 | ||
3982 | chownr: 2.0.0 | ||
3983 | fs-minipass: 2.1.0 | ||
3984 | glob: 7.2.3 | ||
3985 | infer-owner: 1.0.4 | ||
3986 | lru-cache: 6.0.0 | ||
3987 | minipass: 3.3.6 | ||
3988 | minipass-collect: 1.0.2 | ||
3989 | minipass-flush: 1.0.5 | ||
3990 | minipass-pipeline: 1.2.4 | ||
3991 | mkdirp: 1.0.4 | ||
3992 | p-map: 4.0.0 | ||
3993 | promise-inflight: 1.0.1 | ||
3994 | rimraf: 3.0.2 | ||
3995 | ssri: 8.0.1 | ||
3996 | tar: 6.2.0 | ||
3997 | unique-filename: 1.1.1 | ||
3998 | transitivePeerDependencies: | ||
3999 | - bluebird | ||
1058 | dev: false | 4000 | dev: false |
4001 | optional: true | ||
1059 | 4002 | ||
1060 | /cache-base/1.0.1: | 4003 | /cache-base@1.0.1: |
1061 | resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} | 4004 | resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} |
1062 | engines: {node: '>=0.10.0'} | 4005 | engines: {node: '>=0.10.0'} |
1063 | dependencies: | 4006 | dependencies: |
@@ -1070,57 +4013,105 @@ packages: | |||
1070 | to-object-path: 0.3.0 | 4013 | to-object-path: 0.3.0 |
1071 | union-value: 1.0.1 | 4014 | union-value: 1.0.1 |
1072 | unset-value: 1.0.0 | 4015 | unset-value: 1.0.0 |
4016 | dev: true | ||
4017 | |||
4018 | /cacheable-lookup@5.0.4: | ||
4019 | resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} | ||
4020 | engines: {node: '>=10.6.0'} | ||
1073 | dev: false | 4021 | dev: false |
1074 | 4022 | ||
1075 | /cacheable-request/2.1.4: | 4023 | /cacheable-request@7.0.4: |
1076 | resolution: {integrity: sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==} | 4024 | resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} |
4025 | engines: {node: '>=8'} | ||
1077 | dependencies: | 4026 | dependencies: |
1078 | clone-response: 1.0.2 | 4027 | clone-response: 1.0.3 |
1079 | get-stream: 3.0.0 | 4028 | get-stream: 5.2.0 |
1080 | http-cache-semantics: 3.8.1 | 4029 | http-cache-semantics: 4.1.1 |
1081 | keyv: 3.0.0 | 4030 | keyv: 4.5.3 |
1082 | lowercase-keys: 1.0.0 | 4031 | lowercase-keys: 2.0.0 |
1083 | normalize-url: 2.0.1 | 4032 | normalize-url: 6.1.0 |
1084 | responselike: 1.0.2 | 4033 | responselike: 2.0.1 |
1085 | dev: false | 4034 | dev: false |
1086 | 4035 | ||
1087 | /call-bind/1.0.2: | 4036 | /call-bind@1.0.2: |
1088 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} | 4037 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} |
1089 | dependencies: | 4038 | dependencies: |
1090 | function-bind: 1.1.1 | 4039 | function-bind: 1.1.1 |
1091 | get-intrinsic: 1.1.3 | 4040 | get-intrinsic: 1.2.1 |
1092 | 4041 | ||
1093 | /caller-path/0.1.0: | 4042 | /call-me-maybe@1.0.2: |
1094 | resolution: {integrity: sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==} | 4043 | resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} |
1095 | engines: {node: '>=0.10.0'} | 4044 | dev: true |
4045 | |||
4046 | /callsites@3.1.0: | ||
4047 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} | ||
4048 | engines: {node: '>=6'} | ||
4049 | dev: true | ||
4050 | |||
4051 | /camel-case@4.1.2: | ||
4052 | resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} | ||
1096 | dependencies: | 4053 | dependencies: |
1097 | callsites: 0.2.0 | 4054 | pascal-case: 3.1.2 |
1098 | dev: false | 4055 | tslib: 2.6.2 |
1099 | 4056 | ||
1100 | /caller/1.1.0: | 4057 | /camelcase@6.3.0: |
1101 | resolution: {integrity: sha512-n+21IZC3j06YpCWaxmUy5AnVqhmCIM2bQtqQyy00HJlmStRt6kwDX5F9Z97pqwAB+G/tgSz6q/kUBbNyQzIubw==} | 4058 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} |
1102 | dev: false | 4059 | engines: {node: '>=10'} |
4060 | dev: true | ||
1103 | 4061 | ||
1104 | /callsites/0.2.0: | 4062 | /caniuse-api@3.0.0: |
1105 | resolution: {integrity: sha512-Zv4Dns9IbXXmPkgRRUjAaJQgfN4xX5p6+RQFhWUqscdvvK2xK/ZL8b3IXIJsj+4sD+f24NwnWy2BY8AJ82JB0A==} | 4063 | resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} |
1106 | engines: {node: '>=0.10.0'} | 4064 | dependencies: |
1107 | dev: false | 4065 | browserslist: 4.22.1 |
4066 | caniuse-lite: 1.0.30001541 | ||
4067 | lodash.memoize: 4.1.2 | ||
4068 | lodash.uniq: 4.5.0 | ||
4069 | dev: true | ||
1108 | 4070 | ||
1109 | /callsites/3.1.0: | 4071 | /caniuse-lite@1.0.30001541: |
1110 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} | 4072 | resolution: {integrity: sha512-bLOsqxDgTqUBkzxbNlSBt8annkDpQB9NdzdTbO2ooJ+eC/IQcvDspDc058g84ejCelF7vHUx57KIOjEecOHXaw==} |
1111 | engines: {node: '>=6'} | ||
1112 | dev: true | 4073 | dev: true |
1113 | 4074 | ||
1114 | /camelcase/5.3.1: | 4075 | /capital-case@1.0.4: |
1115 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} | 4076 | resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} |
1116 | engines: {node: '>=6'} | 4077 | dependencies: |
4078 | no-case: 3.0.4 | ||
4079 | tslib: 2.6.2 | ||
4080 | upper-case-first: 2.0.2 | ||
4081 | |||
4082 | /cardinal@2.1.1: | ||
4083 | resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} | ||
4084 | hasBin: true | ||
4085 | dependencies: | ||
4086 | ansicolors: 0.3.2 | ||
4087 | redeyed: 2.1.1 | ||
1117 | dev: true | 4088 | dev: true |
1118 | 4089 | ||
1119 | /caseless/0.12.0: | 4090 | /chai@4.3.10: |
1120 | resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} | 4091 | resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} |
1121 | dev: false | 4092 | engines: {node: '>=4'} |
4093 | dependencies: | ||
4094 | assertion-error: 1.1.0 | ||
4095 | check-error: 1.0.3 | ||
4096 | deep-eql: 4.1.3 | ||
4097 | get-func-name: 2.0.2 | ||
4098 | loupe: 2.3.6 | ||
4099 | pathval: 1.1.1 | ||
4100 | type-detect: 4.0.8 | ||
4101 | dev: true | ||
4102 | |||
4103 | /chalk@1.1.3: | ||
4104 | resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} | ||
4105 | engines: {node: '>=0.10.0'} | ||
4106 | dependencies: | ||
4107 | ansi-styles: 2.2.1 | ||
4108 | escape-string-regexp: 1.0.5 | ||
4109 | has-ansi: 2.0.0 | ||
4110 | strip-ansi: 3.0.1 | ||
4111 | supports-color: 2.0.0 | ||
4112 | dev: true | ||
1122 | 4113 | ||
1123 | /chalk/2.4.2: | 4114 | /chalk@2.4.2: |
1124 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} | 4115 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} |
1125 | engines: {node: '>=4'} | 4116 | engines: {node: '>=4'} |
1126 | dependencies: | 4117 | dependencies: |
@@ -1129,7 +4120,15 @@ packages: | |||
1129 | supports-color: 5.5.0 | 4120 | supports-color: 5.5.0 |
1130 | dev: true | 4121 | dev: true |
1131 | 4122 | ||
1132 | /chalk/4.1.2: | 4123 | /chalk@3.0.0: |
4124 | resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} | ||
4125 | engines: {node: '>=8'} | ||
4126 | dependencies: | ||
4127 | ansi-styles: 4.3.0 | ||
4128 | supports-color: 7.2.0 | ||
4129 | dev: true | ||
4130 | |||
4131 | /chalk@4.1.2: | ||
1133 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} | 4132 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} |
1134 | engines: {node: '>=10'} | 4133 | engines: {node: '>=10'} |
1135 | dependencies: | 4134 | dependencies: |
@@ -1137,35 +4136,72 @@ packages: | |||
1137 | supports-color: 7.2.0 | 4136 | supports-color: 7.2.0 |
1138 | dev: true | 4137 | dev: true |
1139 | 4138 | ||
1140 | /chance/1.1.9: | 4139 | /chalk@5.3.0: |
1141 | resolution: {integrity: sha512-TfxnA/DcZXRTA4OekA2zL9GH8qscbbl6X0ZqU4tXhGveVY/mXWvEQLt5GwZcYXTEyEFflVtj+pG8nc8EwSm1RQ==} | 4140 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} |
1142 | dev: false | 4141 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} |
4142 | dev: true | ||
4143 | |||
4144 | /change-case@4.1.2: | ||
4145 | resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} | ||
4146 | dependencies: | ||
4147 | camel-case: 4.1.2 | ||
4148 | capital-case: 1.0.4 | ||
4149 | constant-case: 3.0.4 | ||
4150 | dot-case: 3.0.4 | ||
4151 | header-case: 2.0.4 | ||
4152 | no-case: 3.0.4 | ||
4153 | param-case: 3.0.4 | ||
4154 | pascal-case: 3.1.2 | ||
4155 | path-case: 3.0.4 | ||
4156 | sentence-case: 3.0.4 | ||
4157 | snake-case: 3.0.4 | ||
4158 | tslib: 2.6.2 | ||
1143 | 4159 | ||
1144 | /chardet/0.7.0: | 4160 | /charenc@0.0.2: |
1145 | resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} | 4161 | resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} |
1146 | dev: true | 4162 | dev: true |
1147 | 4163 | ||
1148 | /choices-separator/2.0.0: | 4164 | /check-error@1.0.3: |
1149 | resolution: {integrity: sha512-BCKlzRcP2V6X+85TSKn09oGZkO2zK2zytGyZeHvM2s+kv/ydAzJtsc+rZqYRWNlojIBfkOnPxgKXrBefTFZbTQ==} | 4165 | resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} |
1150 | engines: {node: '>=0.10.0'} | ||
1151 | dependencies: | 4166 | dependencies: |
1152 | ansi-dim: 0.1.1 | 4167 | get-func-name: 2.0.2 |
1153 | debug: 2.6.9 | 4168 | dev: true |
1154 | strip-color: 0.1.0 | ||
1155 | transitivePeerDependencies: | ||
1156 | - supports-color | ||
1157 | dev: false | ||
1158 | 4169 | ||
1159 | /chownr/1.1.4: | 4170 | /chokidar@3.5.3: |
4171 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} | ||
4172 | engines: {node: '>= 8.10.0'} | ||
4173 | dependencies: | ||
4174 | anymatch: 3.1.3 | ||
4175 | braces: 3.0.2 | ||
4176 | glob-parent: 5.1.2 | ||
4177 | is-binary-path: 2.1.0 | ||
4178 | is-glob: 4.0.3 | ||
4179 | normalize-path: 3.0.0 | ||
4180 | readdirp: 3.6.0 | ||
4181 | optionalDependencies: | ||
4182 | fsevents: 2.3.3 | ||
4183 | dev: true | ||
4184 | |||
4185 | /chownr@1.1.4: | ||
1160 | resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} | 4186 | resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} |
1161 | dev: false | 4187 | dev: false |
1162 | 4188 | ||
1163 | /ci-info/3.7.0: | 4189 | /chownr@2.0.0: |
1164 | resolution: {integrity: sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==} | 4190 | resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} |
4191 | engines: {node: '>=10'} | ||
4192 | dev: false | ||
4193 | |||
4194 | /chrome-trace-event@1.0.3: | ||
4195 | resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} | ||
4196 | engines: {node: '>=6.0'} | ||
4197 | dev: true | ||
4198 | |||
4199 | /ci-info@3.8.0: | ||
4200 | resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} | ||
1165 | engines: {node: '>=8'} | 4201 | engines: {node: '>=8'} |
1166 | dev: true | 4202 | dev: true |
1167 | 4203 | ||
1168 | /class-utils/0.3.6: | 4204 | /class-utils@0.3.6: |
1169 | resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} | 4205 | resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} |
1170 | engines: {node: '>=0.10.0'} | 4206 | engines: {node: '>=0.10.0'} |
1171 | dependencies: | 4207 | dependencies: |
@@ -1173,238 +4209,315 @@ packages: | |||
1173 | define-property: 0.2.5 | 4209 | define-property: 0.2.5 |
1174 | isobject: 3.0.1 | 4210 | isobject: 3.0.1 |
1175 | static-extend: 0.1.2 | 4211 | static-extend: 0.1.2 |
1176 | dev: false | ||
1177 | |||
1178 | /cli-cursor/3.1.0: | ||
1179 | resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} | ||
1180 | engines: {node: '>=8'} | ||
1181 | dependencies: | ||
1182 | restore-cursor: 3.1.0 | ||
1183 | dev: true | 4212 | dev: true |
1184 | 4213 | ||
1185 | /cli-table/0.3.11: | 4214 | /clean-regexp@1.0.0: |
1186 | resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} | 4215 | resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} |
1187 | engines: {node: '>= 0.2.0'} | 4216 | engines: {node: '>=4'} |
1188 | dependencies: | 4217 | dependencies: |
1189 | colors: 1.0.3 | 4218 | escape-string-regexp: 1.0.5 |
1190 | dev: false | ||
1191 | |||
1192 | /cli-width/3.0.0: | ||
1193 | resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} | ||
1194 | engines: {node: '>= 10'} | ||
1195 | dev: true | 4219 | dev: true |
1196 | 4220 | ||
1197 | /cliui/6.0.0: | 4221 | /clean-stack@2.2.0: |
1198 | resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} | 4222 | resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} |
4223 | engines: {node: '>=6'} | ||
4224 | |||
4225 | /clean-webpack-plugin@4.0.0(webpack@5.88.2): | ||
4226 | resolution: {integrity: sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==} | ||
4227 | engines: {node: '>=10.0.0'} | ||
4228 | peerDependencies: | ||
4229 | webpack: '>=4.0.0 <6.0.0' | ||
1199 | dependencies: | 4230 | dependencies: |
1200 | string-width: 4.2.3 | 4231 | del: 4.1.1 |
1201 | strip-ansi: 6.0.1 | 4232 | webpack: 5.88.2(webpack-cli@5.1.4) |
1202 | wrap-ansi: 6.2.0 | ||
1203 | dev: true | 4233 | dev: true |
1204 | 4234 | ||
1205 | /clone-deep/0.3.0: | 4235 | /cli-boxes@3.0.0: |
1206 | resolution: {integrity: sha512-qp1do6NplYZZcLU+TQ93+A735g1kNcnH75QbC1olpKJphe36CqkjFEK0PyFSoZlI3/1jO5KnDg64xdwWiEH/zA==} | 4236 | resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} |
1207 | engines: {node: '>=0.10.0'} | 4237 | engines: {node: '>=10'} |
4238 | |||
4239 | /cli-cursor@3.1.0: | ||
4240 | resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} | ||
4241 | engines: {node: '>=8'} | ||
1208 | dependencies: | 4242 | dependencies: |
1209 | for-own: 1.0.0 | 4243 | restore-cursor: 3.1.0 |
1210 | is-plain-object: 2.0.4 | ||
1211 | kind-of: 3.2.2 | ||
1212 | shallow-clone: 0.1.2 | ||
1213 | dev: false | ||
1214 | 4244 | ||
1215 | /clone-deep/1.0.0: | 4245 | /cli-table3@0.6.3: |
1216 | resolution: {integrity: sha512-hmJRX8x1QOJVV+GUjOBzi6iauhPqc9hIF6xitWRBbiPZOBb6vGo/mDRIK9P74RTKSQK7AE8B0DDWY/vpRrPmQw==} | 4246 | resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} |
1217 | engines: {node: '>=0.10.0'} | 4247 | engines: {node: 10.* || >= 12.*} |
1218 | dependencies: | 4248 | dependencies: |
1219 | for-own: 1.0.0 | 4249 | string-width: 4.2.3 |
1220 | is-plain-object: 2.0.4 | 4250 | optionalDependencies: |
1221 | kind-of: 5.1.0 | 4251 | '@colors/colors': 1.5.0 |
1222 | shallow-clone: 1.0.0 | ||
1223 | dev: false | ||
1224 | 4252 | ||
1225 | /clone-deep/4.0.1: | 4253 | /clone-deep@4.0.1: |
1226 | resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} | 4254 | resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} |
1227 | engines: {node: '>=6'} | 4255 | engines: {node: '>=6'} |
1228 | dependencies: | 4256 | dependencies: |
1229 | is-plain-object: 2.0.4 | 4257 | is-plain-object: 2.0.4 |
1230 | kind-of: 6.0.3 | 4258 | kind-of: 6.0.3 |
1231 | shallow-clone: 3.0.1 | 4259 | shallow-clone: 3.0.1 |
1232 | dev: false | 4260 | dev: true |
1233 | 4261 | ||
1234 | /clone-response/1.0.2: | 4262 | /clone-response@1.0.3: |
1235 | resolution: {integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==} | 4263 | resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} |
1236 | dependencies: | 4264 | dependencies: |
1237 | mimic-response: 1.0.1 | 4265 | mimic-response: 1.0.1 |
1238 | dev: false | 4266 | dev: false |
1239 | 4267 | ||
1240 | /clone/2.1.2: | 4268 | /clone@1.0.4: |
1241 | resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} | 4269 | resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} |
1242 | engines: {node: '>=0.8'} | 4270 | engines: {node: '>=0.8'} |
1243 | dev: false | 4271 | dev: true |
1244 | 4272 | ||
1245 | /co-body/6.1.0: | 4273 | /clone@2.1.2: |
1246 | resolution: {integrity: sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==} | 4274 | resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} |
1247 | dependencies: | 4275 | engines: {node: '>=0.8'} |
1248 | inflation: 2.0.0 | 4276 | dev: true |
1249 | qs: 6.11.0 | ||
1250 | raw-body: 2.5.1 | ||
1251 | type-is: 1.6.18 | ||
1252 | dev: false | ||
1253 | 4277 | ||
1254 | /co-compose/4.0.0: | 4278 | /co-compose@7.0.3: |
1255 | resolution: {integrity: sha512-0wXLbbbkU49Pyj7Fjfu58wIoeLgyyRau3huJfxEimmytzI7M+o1XhK2ls872PjpOzyvw0U3KGLqxrIst8IHaWA==} | 4279 | resolution: {integrity: sha512-ZHLSLzeBXe5yaEyIHo9T92uVrbsBRLMXlG0G4/pSm9f6148l4mJTr1cii8Jl9ce+mbLmW5XqHURPC7gZFJNeZA==} |
1256 | dependencies: | ||
1257 | once: 1.4.0 | ||
1258 | dev: false | ||
1259 | 4280 | ||
1260 | /code-point-at/1.1.0: | 4281 | /code-block-writer@11.0.3: |
1261 | resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} | 4282 | resolution: {integrity: sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==} |
1262 | engines: {node: '>=0.10.0'} | ||
1263 | dev: false | 4283 | dev: false |
1264 | 4284 | ||
1265 | /collection-visit/1.0.0: | 4285 | /collection-visit@1.0.0: |
1266 | resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} | 4286 | resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} |
1267 | engines: {node: '>=0.10.0'} | 4287 | engines: {node: '>=0.10.0'} |
1268 | dependencies: | 4288 | dependencies: |
1269 | map-visit: 1.0.0 | 4289 | map-visit: 1.0.0 |
1270 | object-visit: 1.0.1 | 4290 | object-visit: 1.0.1 |
1271 | dev: false | 4291 | dev: true |
1272 | 4292 | ||
1273 | /color-convert/1.9.3: | 4293 | /color-convert@1.9.3: |
1274 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} | 4294 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} |
1275 | dependencies: | 4295 | dependencies: |
1276 | color-name: 1.1.3 | 4296 | color-name: 1.1.3 |
4297 | dev: true | ||
1277 | 4298 | ||
1278 | /color-convert/2.0.1: | 4299 | /color-convert@2.0.1: |
1279 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} | 4300 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} |
1280 | engines: {node: '>=7.0.0'} | 4301 | engines: {node: '>=7.0.0'} |
1281 | dependencies: | 4302 | dependencies: |
1282 | color-name: 1.1.4 | 4303 | color-name: 1.1.4 |
1283 | dev: true | ||
1284 | 4304 | ||
1285 | /color-name/1.1.3: | 4305 | /color-name@1.1.3: |
1286 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} | 4306 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} |
4307 | dev: true | ||
1287 | 4308 | ||
1288 | /color-name/1.1.4: | 4309 | /color-name@1.1.4: |
1289 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} | 4310 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} |
1290 | 4311 | ||
1291 | /color-string/1.9.1: | 4312 | /color-support@1.1.3: |
1292 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} | 4313 | resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} |
1293 | dependencies: | 4314 | hasBin: true |
1294 | color-name: 1.1.4 | ||
1295 | simple-swizzle: 0.2.2 | ||
1296 | dev: false | ||
1297 | 4315 | ||
1298 | /color/3.2.1: | 4316 | /colord@2.9.3: |
1299 | resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} | 4317 | resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} |
1300 | dependencies: | 4318 | dev: true |
1301 | color-convert: 1.9.3 | ||
1302 | color-string: 1.9.1 | ||
1303 | dev: false | ||
1304 | 4319 | ||
1305 | /colorette/1.2.1: | 4320 | /colorette@2.0.19: |
1306 | resolution: {integrity: sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==} | 4321 | resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} |
1307 | dev: false | 4322 | dev: false |
1308 | 4323 | ||
1309 | /colors/1.0.3: | 4324 | /colorette@2.0.20: |
1310 | resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} | 4325 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} |
1311 | engines: {node: '>=0.1.90'} | ||
1312 | dev: false | ||
1313 | 4326 | ||
1314 | /colorspace/1.1.4: | 4327 | /columnify@1.6.0: |
1315 | resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} | 4328 | resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} |
4329 | engines: {node: '>=8.0.0'} | ||
1316 | dependencies: | 4330 | dependencies: |
1317 | color: 3.2.1 | 4331 | strip-ansi: 6.0.1 |
1318 | text-hex: 1.0.0 | 4332 | wcwidth: 1.0.1 |
1319 | dev: false | 4333 | dev: true |
1320 | 4334 | ||
1321 | /combined-stream/1.0.8: | 4335 | /combined-stream@1.0.8: |
1322 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} | 4336 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} |
1323 | engines: {node: '>= 0.8'} | 4337 | engines: {node: '>= 0.8'} |
1324 | dependencies: | 4338 | dependencies: |
1325 | delayed-stream: 1.0.0 | 4339 | delayed-stream: 1.0.0 |
1326 | dev: false | 4340 | dev: true |
1327 | 4341 | ||
1328 | /commander/2.20.3: | 4342 | /commander@10.0.1: |
4343 | resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} | ||
4344 | engines: {node: '>=14'} | ||
4345 | |||
4346 | /commander@2.20.3: | ||
1329 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} | 4347 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} |
1330 | dev: false | 4348 | dev: true |
4349 | |||
4350 | /commander@7.2.0: | ||
4351 | resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} | ||
4352 | engines: {node: '>= 10'} | ||
4353 | dev: true | ||
1331 | 4354 | ||
1332 | /commander/6.2.1: | 4355 | /commander@9.5.0: |
1333 | resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} | 4356 | resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} |
4357 | engines: {node: ^12.20.0 || >=14} | ||
4358 | requiresBuild: true | ||
4359 | dev: true | ||
4360 | optional: true | ||
4361 | |||
4362 | /comment-json@2.4.2: | ||
4363 | resolution: {integrity: sha512-T+iXox779qsqneMYx/x5BZyz4xjCeQRmuNVzz8tko7qZUs3MlzpA3RAs+O1XsgcKToNBMIvfVzafGOeiU7RggA==} | ||
1334 | engines: {node: '>= 6'} | 4364 | engines: {node: '>= 6'} |
1335 | dev: false | 4365 | dependencies: |
4366 | core-util-is: 1.0.3 | ||
4367 | esprima: 4.0.1 | ||
4368 | has-own-prop: 2.0.0 | ||
4369 | repeat-string: 1.6.1 | ||
4370 | dev: true | ||
4371 | |||
4372 | /commondir@1.0.1: | ||
4373 | resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} | ||
4374 | dev: true | ||
1336 | 4375 | ||
1337 | /component-emitter/1.3.0: | 4376 | /component-emitter@1.3.0: |
1338 | resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} | 4377 | resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} |
1339 | dev: false | 4378 | dev: true |
4379 | |||
4380 | /compressible@2.0.18: | ||
4381 | resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} | ||
4382 | engines: {node: '>= 0.6'} | ||
4383 | dependencies: | ||
4384 | mime-db: 1.52.0 | ||
4385 | dev: true | ||
4386 | |||
4387 | /compression@1.7.4: | ||
4388 | resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} | ||
4389 | engines: {node: '>= 0.8.0'} | ||
4390 | dependencies: | ||
4391 | accepts: 1.3.8 | ||
4392 | bytes: 3.0.0 | ||
4393 | compressible: 2.0.18 | ||
4394 | debug: 2.6.9 | ||
4395 | on-headers: 1.0.2 | ||
4396 | safe-buffer: 5.1.2 | ||
4397 | vary: 1.1.2 | ||
4398 | transitivePeerDependencies: | ||
4399 | - supports-color | ||
4400 | dev: true | ||
1340 | 4401 | ||
1341 | /concat-map/0.0.1: | 4402 | /concat-map@0.0.1: |
1342 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} | 4403 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} |
1343 | 4404 | ||
1344 | /confusing-browser-globals/1.0.11: | 4405 | /connect-history-api-fallback@2.0.0: |
1345 | resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} | 4406 | resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} |
4407 | engines: {node: '>=0.8'} | ||
1346 | dev: true | 4408 | dev: true |
1347 | 4409 | ||
1348 | /console-control-strings/1.1.0: | 4410 | /consola@2.15.3: |
4411 | resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} | ||
4412 | dev: true | ||
4413 | |||
4414 | /console-control-strings@1.1.0: | ||
1349 | resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} | 4415 | resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} |
1350 | dev: false | 4416 | dev: false |
1351 | 4417 | ||
1352 | /content-disposition/0.5.4: | 4418 | /constant-case@3.0.4: |
4419 | resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} | ||
4420 | dependencies: | ||
4421 | no-case: 3.0.4 | ||
4422 | tslib: 2.6.2 | ||
4423 | upper-case: 2.0.2 | ||
4424 | |||
4425 | /content-disposition@0.5.4: | ||
1353 | resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} | 4426 | resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} |
1354 | engines: {node: '>= 0.6'} | 4427 | engines: {node: '>= 0.6'} |
1355 | dependencies: | 4428 | dependencies: |
1356 | safe-buffer: 5.2.1 | 4429 | safe-buffer: 5.2.1 |
1357 | dev: false | ||
1358 | 4430 | ||
1359 | /cookie-signature/1.2.0: | 4431 | /content-type@1.0.5: |
1360 | resolution: {integrity: sha512-R0BOPfLGTitaKhgKROKZQN6iyq2iDQcH1DOF8nJoaWapguX5bC2w+Q/I9NmmM5lfcvEarnLZr+cCvmEYYSXvYA==} | 4432 | resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} |
1361 | engines: {node: '>=6.6.0'} | 4433 | engines: {node: '>= 0.6'} |
1362 | dev: false | 4434 | dev: true |
4435 | |||
4436 | /convert-hrtime@3.0.0: | ||
4437 | resolution: {integrity: sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==} | ||
4438 | engines: {node: '>=8'} | ||
4439 | dev: true | ||
4440 | |||
4441 | /convert-source-map@1.9.0: | ||
4442 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} | ||
4443 | dev: true | ||
1363 | 4444 | ||
1364 | /cookie/0.4.2: | 4445 | /convert-source-map@2.0.0: |
1365 | resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} | 4446 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} |
4447 | dev: true | ||
4448 | |||
4449 | /cookie-signature@1.0.6: | ||
4450 | resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} | ||
4451 | dev: true | ||
4452 | |||
4453 | /cookie@0.5.0: | ||
4454 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} | ||
1366 | engines: {node: '>= 0.6'} | 4455 | engines: {node: '>= 0.6'} |
1367 | dev: false | ||
1368 | 4456 | ||
1369 | /copy-descriptor/0.1.1: | 4457 | /cookiejar@2.1.4: |
4458 | resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} | ||
4459 | dev: true | ||
4460 | |||
4461 | /copy-descriptor@0.1.1: | ||
1370 | resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} | 4462 | resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} |
1371 | engines: {node: '>=0.10.0'} | 4463 | engines: {node: '>=0.10.0'} |
1372 | dev: false | 4464 | dev: true |
1373 | 4465 | ||
1374 | /core-util-is/1.0.2: | 4466 | /core-js-compat@3.32.2: |
1375 | resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} | 4467 | resolution: {integrity: sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==} |
1376 | dev: false | 4468 | dependencies: |
4469 | browserslist: 4.22.1 | ||
4470 | dev: true | ||
1377 | 4471 | ||
1378 | /core-util-is/1.0.3: | 4472 | /core-util-is@1.0.3: |
1379 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} | 4473 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} |
1380 | dev: false | ||
1381 | 4474 | ||
1382 | /create-output-stream/0.0.1: | 4475 | /cp-file@7.0.0: |
1383 | resolution: {integrity: sha512-dpZSPgwTfG+xTe2Tqod9wDCGt7Cbo05XwACkOkP/RF3QFtEDhUX6lD/zr4HYnicCsl/qPSbYiRjBLsv5f1QWCA==} | 4476 | resolution: {integrity: sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==} |
4477 | engines: {node: '>=8'} | ||
1384 | dependencies: | 4478 | dependencies: |
1385 | mkdirp: 0.5.6 | 4479 | graceful-fs: 4.2.11 |
1386 | dev: false | 4480 | make-dir: 3.1.0 |
4481 | nested-error-stacks: 2.1.1 | ||
4482 | p-event: 4.2.0 | ||
4483 | dev: true | ||
1387 | 4484 | ||
1388 | /cross-env/5.2.1: | 4485 | /cp-file@9.1.0: |
1389 | resolution: {integrity: sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==} | 4486 | resolution: {integrity: sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==} |
1390 | engines: {node: '>=4.0'} | 4487 | engines: {node: '>=10'} |
1391 | hasBin: true | ||
1392 | dependencies: | 4488 | dependencies: |
1393 | cross-spawn: 6.0.5 | 4489 | graceful-fs: 4.2.11 |
1394 | dev: false | 4490 | make-dir: 3.1.0 |
4491 | nested-error-stacks: 2.1.1 | ||
4492 | p-event: 4.2.0 | ||
4493 | dev: true | ||
1395 | 4494 | ||
1396 | /cross-spawn/6.0.5: | 4495 | /cpy@8.1.2: |
1397 | resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} | 4496 | resolution: {integrity: sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==} |
1398 | engines: {node: '>=4.8'} | 4497 | engines: {node: '>=8'} |
1399 | dependencies: | 4498 | dependencies: |
1400 | nice-try: 1.0.5 | 4499 | arrify: 2.0.1 |
1401 | path-key: 2.0.1 | 4500 | cp-file: 7.0.0 |
1402 | semver: 5.7.1 | 4501 | globby: 9.2.0 |
1403 | shebang-command: 1.2.0 | 4502 | has-glob: 1.0.0 |
1404 | which: 1.3.1 | 4503 | junk: 3.1.0 |
1405 | dev: false | 4504 | nested-error-stacks: 2.1.1 |
4505 | p-all: 2.1.0 | ||
4506 | p-filter: 2.1.0 | ||
4507 | p-map: 3.0.0 | ||
4508 | transitivePeerDependencies: | ||
4509 | - supports-color | ||
4510 | dev: true | ||
4511 | |||
4512 | /cross-env@7.0.3: | ||
4513 | resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} | ||
4514 | engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} | ||
4515 | hasBin: true | ||
4516 | dependencies: | ||
4517 | cross-spawn: 7.0.3 | ||
4518 | dev: true | ||
1406 | 4519 | ||
1407 | /cross-spawn/7.0.3: | 4520 | /cross-spawn@7.0.3: |
1408 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} | 4521 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} |
1409 | engines: {node: '>= 8'} | 4522 | engines: {node: '>= 8'} |
1410 | dependencies: | 4523 | dependencies: |
@@ -1413,7 +4526,11 @@ packages: | |||
1413 | which: 2.0.2 | 4526 | which: 2.0.2 |
1414 | dev: true | 4527 | dev: true |
1415 | 4528 | ||
1416 | /csrf/3.1.0: | 4529 | /crypt@0.0.2: |
4530 | resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} | ||
4531 | dev: true | ||
4532 | |||
4533 | /csrf@3.1.0: | ||
1417 | resolution: {integrity: sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==} | 4534 | resolution: {integrity: sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==} |
1418 | engines: {node: '>= 0.8'} | 4535 | engines: {node: '>= 0.8'} |
1419 | dependencies: | 4536 | dependencies: |
@@ -1422,46 +4539,215 @@ packages: | |||
1422 | uid-safe: 2.1.5 | 4539 | uid-safe: 2.1.5 |
1423 | dev: false | 4540 | dev: false |
1424 | 4541 | ||
1425 | /dashdash/1.14.1: | 4542 | /css-declaration-sorter@6.4.1(postcss@8.4.31): |
1426 | resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} | 4543 | resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} |
1427 | engines: {node: '>=0.10'} | 4544 | engines: {node: ^10 || ^12 || >=14} |
4545 | peerDependencies: | ||
4546 | postcss: ^8.0.9 | ||
1428 | dependencies: | 4547 | dependencies: |
1429 | assert-plus: 1.0.0 | 4548 | postcss: 8.4.31 |
1430 | dev: false | 4549 | dev: true |
1431 | 4550 | ||
1432 | /debug/2.6.9: | 4551 | /css-loader@6.8.1(webpack@5.88.2): |
1433 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} | 4552 | resolution: {integrity: sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==} |
4553 | engines: {node: '>= 12.13.0'} | ||
1434 | peerDependencies: | 4554 | peerDependencies: |
1435 | supports-color: '*' | 4555 | webpack: ^5.0.0 |
4556 | dependencies: | ||
4557 | icss-utils: 5.1.0(postcss@8.4.31) | ||
4558 | postcss: 8.4.31 | ||
4559 | postcss-modules-extract-imports: 3.0.0(postcss@8.4.31) | ||
4560 | postcss-modules-local-by-default: 4.0.3(postcss@8.4.31) | ||
4561 | postcss-modules-scope: 3.0.0(postcss@8.4.31) | ||
4562 | postcss-modules-values: 4.0.0(postcss@8.4.31) | ||
4563 | postcss-value-parser: 4.2.0 | ||
4564 | semver: 7.5.4 | ||
4565 | webpack: 5.88.2(webpack-cli@5.1.4) | ||
4566 | dev: true | ||
4567 | |||
4568 | /css-minimizer-webpack-plugin@5.0.1(webpack@5.88.2): | ||
4569 | resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==} | ||
4570 | engines: {node: '>= 14.15.0'} | ||
4571 | peerDependencies: | ||
4572 | '@parcel/css': '*' | ||
4573 | '@swc/css': '*' | ||
4574 | clean-css: '*' | ||
4575 | csso: '*' | ||
4576 | esbuild: '*' | ||
4577 | lightningcss: '*' | ||
4578 | webpack: ^5.0.0 | ||
1436 | peerDependenciesMeta: | 4579 | peerDependenciesMeta: |
1437 | supports-color: | 4580 | '@parcel/css': |
4581 | optional: true | ||
4582 | '@swc/css': | ||
4583 | optional: true | ||
4584 | clean-css: | ||
4585 | optional: true | ||
4586 | csso: | ||
4587 | optional: true | ||
4588 | esbuild: | ||
4589 | optional: true | ||
4590 | lightningcss: | ||
1438 | optional: true | 4591 | optional: true |
1439 | dependencies: | 4592 | dependencies: |
1440 | ms: 2.0.0 | 4593 | '@jridgewell/trace-mapping': 0.3.19 |
4594 | cssnano: 6.0.1(postcss@8.4.31) | ||
4595 | jest-worker: 29.7.0 | ||
4596 | postcss: 8.4.31 | ||
4597 | schema-utils: 4.2.0 | ||
4598 | serialize-javascript: 6.0.1 | ||
4599 | webpack: 5.88.2(webpack-cli@5.1.4) | ||
4600 | dev: true | ||
1441 | 4601 | ||
1442 | /debug/3.2.7: | 4602 | /css-select@4.3.0: |
1443 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} | 4603 | resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} |
4604 | dependencies: | ||
4605 | boolbase: 1.0.0 | ||
4606 | css-what: 6.1.0 | ||
4607 | domhandler: 4.3.1 | ||
4608 | domutils: 2.8.0 | ||
4609 | nth-check: 2.1.1 | ||
4610 | dev: true | ||
4611 | |||
4612 | /css-select@5.1.0: | ||
4613 | resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} | ||
4614 | dependencies: | ||
4615 | boolbase: 1.0.0 | ||
4616 | css-what: 6.1.0 | ||
4617 | domhandler: 5.0.3 | ||
4618 | domutils: 3.1.0 | ||
4619 | nth-check: 2.1.1 | ||
4620 | dev: true | ||
4621 | |||
4622 | /css-tree@2.2.1: | ||
4623 | resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} | ||
4624 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} | ||
4625 | dependencies: | ||
4626 | mdn-data: 2.0.28 | ||
4627 | source-map-js: 1.0.2 | ||
4628 | dev: true | ||
4629 | |||
4630 | /css-tree@2.3.1: | ||
4631 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} | ||
4632 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} | ||
4633 | dependencies: | ||
4634 | mdn-data: 2.0.30 | ||
4635 | source-map-js: 1.0.2 | ||
4636 | dev: true | ||
4637 | |||
4638 | /css-what@6.1.0: | ||
4639 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} | ||
4640 | engines: {node: '>= 6'} | ||
4641 | dev: true | ||
4642 | |||
4643 | /cssesc@3.0.0: | ||
4644 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} | ||
4645 | engines: {node: '>=4'} | ||
4646 | hasBin: true | ||
4647 | dev: true | ||
4648 | |||
4649 | /cssnano-preset-default@6.0.1(postcss@8.4.31): | ||
4650 | resolution: {integrity: sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==} | ||
4651 | engines: {node: ^14 || ^16 || >=18.0} | ||
4652 | peerDependencies: | ||
4653 | postcss: ^8.2.15 | ||
4654 | dependencies: | ||
4655 | css-declaration-sorter: 6.4.1(postcss@8.4.31) | ||
4656 | cssnano-utils: 4.0.0(postcss@8.4.31) | ||
4657 | postcss: 8.4.31 | ||
4658 | postcss-calc: 9.0.1(postcss@8.4.31) | ||
4659 | postcss-colormin: 6.0.0(postcss@8.4.31) | ||
4660 | postcss-convert-values: 6.0.0(postcss@8.4.31) | ||
4661 | postcss-discard-comments: 6.0.0(postcss@8.4.31) | ||
4662 | postcss-discard-duplicates: 6.0.0(postcss@8.4.31) | ||
4663 | postcss-discard-empty: 6.0.0(postcss@8.4.31) | ||
4664 | postcss-discard-overridden: 6.0.0(postcss@8.4.31) | ||
4665 | postcss-merge-longhand: 6.0.0(postcss@8.4.31) | ||
4666 | postcss-merge-rules: 6.0.1(postcss@8.4.31) | ||
4667 | postcss-minify-font-values: 6.0.0(postcss@8.4.31) | ||
4668 | postcss-minify-gradients: 6.0.0(postcss@8.4.31) | ||
4669 | postcss-minify-params: 6.0.0(postcss@8.4.31) | ||
4670 | postcss-minify-selectors: 6.0.0(postcss@8.4.31) | ||
4671 | postcss-normalize-charset: 6.0.0(postcss@8.4.31) | ||
4672 | postcss-normalize-display-values: 6.0.0(postcss@8.4.31) | ||
4673 | postcss-normalize-positions: 6.0.0(postcss@8.4.31) | ||
4674 | postcss-normalize-repeat-style: 6.0.0(postcss@8.4.31) | ||
4675 | postcss-normalize-string: 6.0.0(postcss@8.4.31) | ||
4676 | postcss-normalize-timing-functions: 6.0.0(postcss@8.4.31) | ||
4677 | postcss-normalize-unicode: 6.0.0(postcss@8.4.31) | ||
4678 | postcss-normalize-url: 6.0.0(postcss@8.4.31) | ||
4679 | postcss-normalize-whitespace: 6.0.0(postcss@8.4.31) | ||
4680 | postcss-ordered-values: 6.0.0(postcss@8.4.31) | ||
4681 | postcss-reduce-initial: 6.0.0(postcss@8.4.31) | ||
4682 | postcss-reduce-transforms: 6.0.0(postcss@8.4.31) | ||
4683 | postcss-svgo: 6.0.0(postcss@8.4.31) | ||
4684 | postcss-unique-selectors: 6.0.0(postcss@8.4.31) | ||
4685 | dev: true | ||
4686 | |||
4687 | /cssnano-utils@4.0.0(postcss@8.4.31): | ||
4688 | resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} | ||
4689 | engines: {node: ^14 || ^16 || >=18.0} | ||
4690 | peerDependencies: | ||
4691 | postcss: ^8.2.15 | ||
4692 | dependencies: | ||
4693 | postcss: 8.4.31 | ||
4694 | dev: true | ||
4695 | |||
4696 | /cssnano@6.0.1(postcss@8.4.31): | ||
4697 | resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==} | ||
4698 | engines: {node: ^14 || ^16 || >=18.0} | ||
4699 | peerDependencies: | ||
4700 | postcss: ^8.2.15 | ||
4701 | dependencies: | ||
4702 | cssnano-preset-default: 6.0.1(postcss@8.4.31) | ||
4703 | lilconfig: 2.1.0 | ||
4704 | postcss: 8.4.31 | ||
4705 | dev: true | ||
4706 | |||
4707 | /csso@5.0.5: | ||
4708 | resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} | ||
4709 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} | ||
4710 | dependencies: | ||
4711 | css-tree: 2.2.1 | ||
4712 | dev: true | ||
4713 | |||
4714 | /cuid@2.1.8: | ||
4715 | resolution: {integrity: sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==} | ||
4716 | deprecated: Cuid and other k-sortable and non-cryptographic ids (Ulid, ObjectId, KSUID, all UUIDs) are all insecure. Use @paralleldrive/cuid2 instead. | ||
4717 | |||
4718 | /dag-map@1.0.2: | ||
4719 | resolution: {integrity: sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==} | ||
4720 | dev: true | ||
4721 | |||
4722 | /data-uri-to-buffer@2.0.2: | ||
4723 | resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} | ||
4724 | dev: true | ||
4725 | |||
4726 | /dateformat@4.6.3: | ||
4727 | resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} | ||
4728 | |||
4729 | /debug@2.6.9: | ||
4730 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} | ||
1444 | peerDependencies: | 4731 | peerDependencies: |
1445 | supports-color: '*' | 4732 | supports-color: '*' |
1446 | peerDependenciesMeta: | 4733 | peerDependenciesMeta: |
1447 | supports-color: | 4734 | supports-color: |
1448 | optional: true | 4735 | optional: true |
1449 | dependencies: | 4736 | dependencies: |
1450 | ms: 2.1.3 | 4737 | ms: 2.0.0 |
1451 | 4738 | ||
1452 | /debug/4.3.1: | 4739 | /debug@3.2.7: |
1453 | resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} | 4740 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} |
1454 | engines: {node: '>=6.0'} | ||
1455 | peerDependencies: | 4741 | peerDependencies: |
1456 | supports-color: '*' | 4742 | supports-color: '*' |
1457 | peerDependenciesMeta: | 4743 | peerDependenciesMeta: |
1458 | supports-color: | 4744 | supports-color: |
1459 | optional: true | 4745 | optional: true |
1460 | dependencies: | 4746 | dependencies: |
1461 | ms: 2.1.2 | 4747 | ms: 2.1.3 |
1462 | dev: false | 4748 | dev: true |
1463 | 4749 | ||
1464 | /debug/4.3.4: | 4750 | /debug@4.3.4: |
1465 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} | 4751 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} |
1466 | engines: {node: '>=6.0'} | 4752 | engines: {node: '>=6.0'} |
1467 | peerDependencies: | 4753 | peerDependencies: |
@@ -1472,250 +4758,514 @@ packages: | |||
1472 | dependencies: | 4758 | dependencies: |
1473 | ms: 2.1.2 | 4759 | ms: 2.1.2 |
1474 | 4760 | ||
1475 | /decamelize/1.2.0: | 4761 | /decimal.js@10.4.3: |
1476 | resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} | 4762 | resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} |
1477 | engines: {node: '>=0.10.0'} | ||
1478 | dev: true | 4763 | dev: true |
1479 | 4764 | ||
1480 | /decode-uri-component/0.2.2: | 4765 | /decode-uri-component@0.2.2: |
1481 | resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} | 4766 | resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} |
1482 | engines: {node: '>=0.10'} | 4767 | engines: {node: '>=0.10'} |
1483 | dev: false | 4768 | dev: true |
1484 | 4769 | ||
1485 | /decompress-response/3.3.0: | 4770 | /decompress-response@6.0.0: |
1486 | resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} | 4771 | resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} |
1487 | engines: {node: '>=4'} | 4772 | engines: {node: '>=10'} |
1488 | dependencies: | 4773 | dependencies: |
1489 | mimic-response: 1.0.1 | 4774 | mimic-response: 3.1.0 |
1490 | dev: false | 4775 | dev: false |
1491 | 4776 | ||
1492 | /deep-extend/0.6.0: | 4777 | /deep-eql@4.1.3: |
4778 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} | ||
4779 | engines: {node: '>=6'} | ||
4780 | dependencies: | ||
4781 | type-detect: 4.0.8 | ||
4782 | dev: true | ||
4783 | |||
4784 | /deep-extend@0.6.0: | ||
1493 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} | 4785 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} |
1494 | engines: {node: '>=4.0.0'} | 4786 | engines: {node: '>=4.0.0'} |
1495 | dev: false | 4787 | dev: true |
1496 | 4788 | ||
1497 | /deep-is/0.1.4: | 4789 | /deep-is@0.1.4: |
1498 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} | 4790 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} |
1499 | dev: true | 4791 | dev: true |
1500 | 4792 | ||
1501 | /define-properties/1.1.4: | 4793 | /default-browser-id@3.0.0: |
1502 | resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} | 4794 | resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} |
4795 | engines: {node: '>=12'} | ||
4796 | dependencies: | ||
4797 | bplist-parser: 0.2.0 | ||
4798 | untildify: 4.0.0 | ||
4799 | dev: true | ||
4800 | |||
4801 | /default-browser@4.0.0: | ||
4802 | resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} | ||
4803 | engines: {node: '>=14.16'} | ||
4804 | dependencies: | ||
4805 | bundle-name: 3.0.0 | ||
4806 | default-browser-id: 3.0.0 | ||
4807 | execa: 7.2.0 | ||
4808 | titleize: 3.0.0 | ||
4809 | dev: true | ||
4810 | |||
4811 | /default-gateway@6.0.3: | ||
4812 | resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} | ||
4813 | engines: {node: '>= 10'} | ||
4814 | dependencies: | ||
4815 | execa: 5.1.1 | ||
4816 | dev: true | ||
4817 | |||
4818 | /defaults@1.0.4: | ||
4819 | resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} | ||
4820 | dependencies: | ||
4821 | clone: 1.0.4 | ||
4822 | dev: true | ||
4823 | |||
4824 | /defer-to-connect@2.0.1: | ||
4825 | resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} | ||
4826 | engines: {node: '>=10'} | ||
4827 | dev: false | ||
4828 | |||
4829 | /define-data-property@1.1.0: | ||
4830 | resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} | ||
1503 | engines: {node: '>= 0.4'} | 4831 | engines: {node: '>= 0.4'} |
1504 | dependencies: | 4832 | dependencies: |
4833 | get-intrinsic: 1.2.1 | ||
4834 | gopd: 1.0.1 | ||
4835 | has-property-descriptors: 1.0.0 | ||
4836 | dev: true | ||
4837 | |||
4838 | /define-lazy-prop@2.0.0: | ||
4839 | resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} | ||
4840 | engines: {node: '>=8'} | ||
4841 | dev: true | ||
4842 | |||
4843 | /define-lazy-prop@3.0.0: | ||
4844 | resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} | ||
4845 | engines: {node: '>=12'} | ||
4846 | dev: true | ||
4847 | |||
4848 | /define-properties@1.2.1: | ||
4849 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} | ||
4850 | engines: {node: '>= 0.4'} | ||
4851 | dependencies: | ||
4852 | define-data-property: 1.1.0 | ||
1505 | has-property-descriptors: 1.0.0 | 4853 | has-property-descriptors: 1.0.0 |
1506 | object-keys: 1.1.1 | 4854 | object-keys: 1.1.1 |
1507 | dev: true | 4855 | dev: true |
1508 | 4856 | ||
1509 | /define-property/0.2.5: | 4857 | /define-property@0.2.5: |
1510 | resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} | 4858 | resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} |
1511 | engines: {node: '>=0.10.0'} | 4859 | engines: {node: '>=0.10.0'} |
1512 | dependencies: | 4860 | dependencies: |
1513 | is-descriptor: 0.1.6 | 4861 | is-descriptor: 0.1.6 |
1514 | dev: false | 4862 | dev: true |
1515 | 4863 | ||
1516 | /define-property/1.0.0: | 4864 | /define-property@1.0.0: |
1517 | resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} | 4865 | resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} |
1518 | engines: {node: '>=0.10.0'} | 4866 | engines: {node: '>=0.10.0'} |
1519 | dependencies: | 4867 | dependencies: |
1520 | is-descriptor: 1.0.2 | 4868 | is-descriptor: 1.0.2 |
1521 | dev: false | 4869 | dev: true |
1522 | 4870 | ||
1523 | /define-property/2.0.2: | 4871 | /define-property@2.0.2: |
1524 | resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} | 4872 | resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} |
1525 | engines: {node: '>=0.10.0'} | 4873 | engines: {node: '>=0.10.0'} |
1526 | dependencies: | 4874 | dependencies: |
1527 | is-descriptor: 1.0.2 | 4875 | is-descriptor: 1.0.2 |
1528 | isobject: 3.0.1 | 4876 | isobject: 3.0.1 |
1529 | dev: false | 4877 | dev: true |
1530 | 4878 | ||
1531 | /delayed-stream/1.0.0: | 4879 | /del@4.1.1: |
4880 | resolution: {integrity: sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==} | ||
4881 | engines: {node: '>=6'} | ||
4882 | dependencies: | ||
4883 | '@types/glob': 7.2.0 | ||
4884 | globby: 6.1.0 | ||
4885 | is-path-cwd: 2.2.0 | ||
4886 | is-path-in-cwd: 2.1.0 | ||
4887 | p-map: 2.1.0 | ||
4888 | pify: 4.0.1 | ||
4889 | rimraf: 2.7.1 | ||
4890 | dev: true | ||
4891 | |||
4892 | /delayed-stream@1.0.0: | ||
1532 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} | 4893 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} |
1533 | engines: {node: '>=0.4.0'} | 4894 | engines: {node: '>=0.4.0'} |
1534 | dev: false | 4895 | dev: true |
1535 | 4896 | ||
1536 | /delegates/1.0.0: | 4897 | /delegates@1.0.0: |
1537 | resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} | 4898 | resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} |
1538 | dev: false | 4899 | dev: false |
1539 | 4900 | ||
1540 | /depd/1.1.2: | 4901 | /depd@1.1.2: |
1541 | resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} | 4902 | resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} |
1542 | engines: {node: '>= 0.6'} | 4903 | engines: {node: '>= 0.6'} |
1543 | dev: false | 4904 | dev: true |
1544 | 4905 | ||
1545 | /depd/2.0.0: | 4906 | /depd@2.0.0: |
1546 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} | 4907 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} |
1547 | engines: {node: '>= 0.8'} | 4908 | engines: {node: '>= 0.8'} |
1548 | dev: false | ||
1549 | |||
1550 | /destroy/1.0.4: | ||
1551 | resolution: {integrity: sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==} | ||
1552 | dev: false | ||
1553 | 4909 | ||
1554 | /destroy/1.2.0: | 4910 | /destroy@1.2.0: |
1555 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} | 4911 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} |
1556 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} | 4912 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} |
1557 | dev: false | ||
1558 | 4913 | ||
1559 | /detect-file/1.0.0: | 4914 | /detect-indent@6.1.0: |
1560 | resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} | 4915 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} |
1561 | engines: {node: '>=0.10.0'} | 4916 | engines: {node: '>=8'} |
1562 | dev: false | 4917 | dev: true |
1563 | 4918 | ||
1564 | /detect-libc/1.0.3: | 4919 | /detect-libc@2.0.2: |
1565 | resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} | 4920 | resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} |
1566 | engines: {node: '>=0.10'} | 4921 | engines: {node: '>=8'} |
1567 | hasBin: true | ||
1568 | dev: false | 4922 | dev: false |
1569 | 4923 | ||
1570 | /didyoumean/1.2.2: | 4924 | /detect-node@2.1.0: |
1571 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} | 4925 | resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} |
4926 | dev: true | ||
4927 | |||
4928 | /dezalgo@1.0.4: | ||
4929 | resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} | ||
4930 | dependencies: | ||
4931 | asap: 2.0.6 | ||
4932 | wrappy: 1.0.2 | ||
4933 | dev: true | ||
4934 | |||
4935 | /diff-sequences@25.2.6: | ||
4936 | resolution: {integrity: sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==} | ||
4937 | engines: {node: '>= 8.3'} | ||
1572 | dev: true | 4938 | dev: true |
1573 | 4939 | ||
1574 | /doctrine/2.1.0: | 4940 | /diff-sequences@29.6.3: |
4941 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} | ||
4942 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} | ||
4943 | dev: true | ||
4944 | |||
4945 | /dir-glob@2.2.2: | ||
4946 | resolution: {integrity: sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==} | ||
4947 | engines: {node: '>=4'} | ||
4948 | dependencies: | ||
4949 | path-type: 3.0.0 | ||
4950 | dev: true | ||
4951 | |||
4952 | /dir-glob@3.0.1: | ||
4953 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} | ||
4954 | engines: {node: '>=8'} | ||
4955 | dependencies: | ||
4956 | path-type: 4.0.0 | ||
4957 | dev: true | ||
4958 | |||
4959 | /dns-equal@1.0.0: | ||
4960 | resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} | ||
4961 | dev: true | ||
4962 | |||
4963 | /dns-packet@5.6.1: | ||
4964 | resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} | ||
4965 | engines: {node: '>=6'} | ||
4966 | dependencies: | ||
4967 | '@leichtgewicht/ip-codec': 2.0.4 | ||
4968 | dev: true | ||
4969 | |||
4970 | /doctrine@2.1.0: | ||
1575 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} | 4971 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} |
1576 | engines: {node: '>=0.10.0'} | 4972 | engines: {node: '>=0.10.0'} |
1577 | dependencies: | 4973 | dependencies: |
1578 | esutils: 2.0.3 | 4974 | esutils: 2.0.3 |
1579 | dev: true | 4975 | dev: true |
1580 | 4976 | ||
1581 | /doctrine/3.0.0: | 4977 | /doctrine@3.0.0: |
1582 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} | 4978 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} |
1583 | engines: {node: '>=6.0.0'} | 4979 | engines: {node: '>=6.0.0'} |
1584 | dependencies: | 4980 | dependencies: |
1585 | esutils: 2.0.3 | 4981 | esutils: 2.0.3 |
1586 | dev: true | 4982 | dev: true |
1587 | 4983 | ||
1588 | /dotenv/6.2.0: | 4984 | /dom-converter@0.2.0: |
1589 | resolution: {integrity: sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==} | 4985 | resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} |
1590 | engines: {node: '>=6'} | 4986 | dependencies: |
4987 | utila: 0.4.0 | ||
4988 | dev: true | ||
4989 | |||
4990 | /dom-serializer@1.4.1: | ||
4991 | resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} | ||
4992 | dependencies: | ||
4993 | domelementtype: 2.3.0 | ||
4994 | domhandler: 4.3.1 | ||
4995 | entities: 2.2.0 | ||
4996 | dev: true | ||
4997 | |||
4998 | /dom-serializer@2.0.0: | ||
4999 | resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} | ||
5000 | dependencies: | ||
5001 | domelementtype: 2.3.0 | ||
5002 | domhandler: 5.0.3 | ||
5003 | entities: 4.5.0 | ||
5004 | dev: true | ||
5005 | |||
5006 | /domelementtype@2.3.0: | ||
5007 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} | ||
5008 | dev: true | ||
5009 | |||
5010 | /domhandler@4.3.1: | ||
5011 | resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} | ||
5012 | engines: {node: '>= 4'} | ||
5013 | dependencies: | ||
5014 | domelementtype: 2.3.0 | ||
5015 | dev: true | ||
5016 | |||
5017 | /domhandler@5.0.3: | ||
5018 | resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} | ||
5019 | engines: {node: '>= 4'} | ||
5020 | dependencies: | ||
5021 | domelementtype: 2.3.0 | ||
5022 | dev: true | ||
5023 | |||
5024 | /domutils@2.8.0: | ||
5025 | resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} | ||
5026 | dependencies: | ||
5027 | dom-serializer: 1.4.1 | ||
5028 | domelementtype: 2.3.0 | ||
5029 | domhandler: 4.3.1 | ||
5030 | dev: true | ||
5031 | |||
5032 | /domutils@3.1.0: | ||
5033 | resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} | ||
5034 | dependencies: | ||
5035 | dom-serializer: 2.0.0 | ||
5036 | domelementtype: 2.3.0 | ||
5037 | domhandler: 5.0.3 | ||
5038 | dev: true | ||
5039 | |||
5040 | /dot-case@3.0.4: | ||
5041 | resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} | ||
5042 | dependencies: | ||
5043 | no-case: 3.0.4 | ||
5044 | tslib: 2.6.2 | ||
5045 | |||
5046 | /dotenv@16.3.1: | ||
5047 | resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} | ||
5048 | engines: {node: '>=12'} | ||
5049 | |||
5050 | /edge-error@2.0.8: | ||
5051 | resolution: {integrity: sha512-ORKH7rn/LEfgo0qrgoMMwFPfestNFvTO+dRLDmS+zgulhd9BVXfv/p+V6K3OyEeu2L0ysYp/71uHB31GIDe68A==} | ||
1591 | dev: false | 5052 | dev: false |
1592 | 5053 | ||
1593 | /duplexer3/0.1.5: | 5054 | /edge-error@3.0.0: |
1594 | resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} | 5055 | resolution: {integrity: sha512-TJE2A6KFqBMIe3EPyl/5V8veGYcMfpEtSNKfZkrSkQAyz3kh27etQ2erU6o0lkAFqDjjUl11YVzBIO2ij5/Zhw==} |
1595 | dev: false | 5056 | dev: false |
1596 | 5057 | ||
1597 | /ecc-jsbn/0.1.2: | 5058 | /edge-lexer@5.0.2: |
1598 | resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} | 5059 | resolution: {integrity: sha512-MSpv6JRPD96eZl0uPo8gIvE9cPAXb1eNRfZKlQpFYJ2O8cNdZDpN8RvT2zpu4XqC63HWs/c938qc3dWN+GJhFw==} |
1599 | dependencies: | 5060 | dependencies: |
1600 | jsbn: 0.1.1 | 5061 | edge-error: 3.0.0 |
1601 | safer-buffer: 2.1.2 | ||
1602 | dev: false | 5062 | dev: false |
1603 | 5063 | ||
1604 | /ecdsa-sig-formatter/1.0.11: | 5064 | /edge-parser@8.2.2: |
1605 | resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} | 5065 | resolution: {integrity: sha512-48iOLaOD4PAxIU0jnLRNXUL8G6ktO79bA4adOGXzNHg2M+mHfudFI7QPdF6IO8gW0NC1N0TPvwLWK3FVkE9bLQ==} |
1606 | dependencies: | 5066 | dependencies: |
1607 | safe-buffer: 5.2.1 | 5067 | acorn: 8.10.0 |
5068 | astring: 1.8.6 | ||
5069 | edge-error: 3.0.0 | ||
5070 | edge-lexer: 5.0.2 | ||
5071 | js-stringify: 1.0.2 | ||
1608 | dev: false | 5072 | dev: false |
1609 | 5073 | ||
1610 | /edge.js/1.1.4: | 5074 | /edge-supercharged@3.1.1: |
1611 | resolution: {integrity: sha512-IF4RTNf15KLsn99nTDU90SMZ4fiCcN1WD5kTAB9jOdjx/HEPa3vf/Z+zDOMi6n7d4R0ypm4PzSRuhbIAHmEYcg==} | 5075 | resolution: {integrity: sha512-Pxgst3UeR+0PWuTIG2QHuFgFe73TMoVMphRsa/bOmIvOkQ87cD7+VxiS9ph2KbA4djJ2ChbdgtbNiIvju5yXEw==} |
1612 | dependencies: | 5076 | dependencies: |
1613 | debug: 3.2.7 | 5077 | '@poppinss/utils': 3.3.1 |
1614 | encodeurl: 1.0.2 | 5078 | slash: 3.0.0 |
1615 | escape-html: 1.0.3 | ||
1616 | esprima: 4.0.1 | ||
1617 | indent-string: 3.2.0 | ||
1618 | lodash: 4.17.21 | ||
1619 | node-exceptions: 3.0.0 | ||
1620 | require-uncached: 1.0.3 | ||
1621 | upcast: 2.1.2 | ||
1622 | transitivePeerDependencies: | ||
1623 | - supports-color | ||
1624 | dev: false | 5079 | dev: false |
1625 | 5080 | ||
1626 | /ee-first/1.1.1: | 5081 | /edge.js@5.5.1: |
1627 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} | 5082 | resolution: {integrity: sha512-lAhEdj1tW2VOJsP5X38wSHjjaXXwoteZ+8PDAJ50rAKzBxpw4QsdXK2jVzMFgRoTMUf7C+x+Tp51R9yxGTLO0w==} |
5083 | dependencies: | ||
5084 | '@poppinss/inspect': 1.0.1 | ||
5085 | '@poppinss/utils': 5.0.0 | ||
5086 | edge-error: 3.0.0 | ||
5087 | edge-lexer: 5.0.2 | ||
5088 | edge-parser: 8.2.2 | ||
5089 | js-stringify: 1.0.2 | ||
5090 | macroable: 7.0.2 | ||
5091 | stringify-attributes: 2.0.0 | ||
1628 | dev: false | 5092 | dev: false |
1629 | 5093 | ||
1630 | /emoji-regex/8.0.0: | 5094 | /editorconfig@0.15.3: |
1631 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} | 5095 | resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==} |
5096 | hasBin: true | ||
5097 | dependencies: | ||
5098 | commander: 2.20.3 | ||
5099 | lru-cache: 4.1.5 | ||
5100 | semver: 5.7.2 | ||
5101 | sigmund: 1.0.1 | ||
1632 | dev: true | 5102 | dev: true |
1633 | 5103 | ||
1634 | /enabled/2.0.0: | 5104 | /ee-first@1.1.1: |
1635 | resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} | 5105 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} |
1636 | dev: false | 5106 | |
5107 | /electron-to-chromium@1.4.537: | ||
5108 | resolution: {integrity: sha512-W1+g9qs9hviII0HAwOdehGYkr+zt7KKdmCcJcjH0mYg6oL8+ioT3Skjmt7BLoAQqXhjf40AXd+HlR4oAWMlXjA==} | ||
5109 | dev: true | ||
5110 | |||
5111 | /emittery@0.10.2: | ||
5112 | resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} | ||
5113 | engines: {node: '>=12'} | ||
5114 | |||
5115 | /emittery@0.13.1: | ||
5116 | resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} | ||
5117 | engines: {node: '>=12'} | ||
5118 | dev: true | ||
5119 | |||
5120 | /emoji-regex@8.0.0: | ||
5121 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} | ||
5122 | |||
5123 | /emojis-list@3.0.0: | ||
5124 | resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} | ||
5125 | engines: {node: '>= 4'} | ||
5126 | dev: true | ||
1637 | 5127 | ||
1638 | /encodeurl/1.0.2: | 5128 | /encodeurl@1.0.2: |
1639 | resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} | 5129 | resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} |
1640 | engines: {node: '>= 0.8'} | 5130 | engines: {node: '>= 0.8'} |
5131 | |||
5132 | /encoding@0.1.13: | ||
5133 | resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} | ||
5134 | requiresBuild: true | ||
5135 | dependencies: | ||
5136 | iconv-lite: 0.6.3 | ||
1641 | dev: false | 5137 | dev: false |
5138 | optional: true | ||
1642 | 5139 | ||
1643 | /end-of-stream/1.4.4: | 5140 | /end-of-stream@1.4.4: |
1644 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} | 5141 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} |
1645 | dependencies: | 5142 | dependencies: |
1646 | once: 1.4.0 | 5143 | once: 1.4.0 |
1647 | dev: false | ||
1648 | 5144 | ||
1649 | /enquirer/1.0.3: | 5145 | /enhanced-resolve@5.15.0: |
1650 | resolution: {integrity: sha512-3y9zemKlEhH6oW/WBrqofpc2JLtFkoolvWFFTTMPVede1lQ/E83xjdaE4L82RJCYgaiGB5ctjHX/BRbVk2iuJA==} | 5146 | resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} |
1651 | engines: {node: '>=5.0'} | 5147 | engines: {node: '>=10.13.0'} |
1652 | dependencies: | 5148 | dependencies: |
1653 | choices-separator: 2.0.0 | 5149 | graceful-fs: 4.2.11 |
1654 | collection-visit: 1.0.0 | 5150 | tapable: 2.2.1 |
1655 | component-emitter: 1.3.0 | 5151 | dev: true |
1656 | debug: 2.6.9 | ||
1657 | extend-shallow: 2.0.1 | ||
1658 | get-value: 2.0.6 | ||
1659 | isobject: 3.0.1 | ||
1660 | promise-reduce: 2.1.0 | ||
1661 | prompt-input: 3.0.0 | ||
1662 | prompt-question: 3.0.3 | ||
1663 | readline-ui: 2.2.3 | ||
1664 | set-value: 1.0.0 | ||
1665 | transitivePeerDependencies: | ||
1666 | - supports-color | ||
1667 | dev: false | ||
1668 | 5152 | ||
1669 | /enquirer/2.3.6: | 5153 | /enquirer@2.4.1: |
1670 | resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} | 5154 | resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} |
1671 | engines: {node: '>=8.6'} | 5155 | engines: {node: '>=8.6'} |
1672 | dependencies: | 5156 | dependencies: |
1673 | ansi-colors: 4.1.3 | 5157 | ansi-colors: 4.1.3 |
5158 | strip-ansi: 6.0.1 | ||
5159 | |||
5160 | /entities@2.2.0: | ||
5161 | resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} | ||
1674 | dev: true | 5162 | dev: true |
1675 | 5163 | ||
1676 | /error-symbol/0.1.0: | 5164 | /entities@4.5.0: |
1677 | resolution: {integrity: sha512-VyjaKxUmeDX/m2lxm/aknsJ1GWDWUO2Ze2Ad8S1Pb9dykAm9TjSKp5CjrNyltYqZ5W/PO6TInAmO2/BfwMyT1g==} | 5165 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} |
1678 | engines: {node: '>=0.10.0'} | 5166 | engines: {node: '>=0.12'} |
5167 | dev: true | ||
5168 | |||
5169 | /env-paths@2.2.1: | ||
5170 | resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} | ||
5171 | engines: {node: '>=6'} | ||
5172 | requiresBuild: true | ||
5173 | dev: false | ||
5174 | optional: true | ||
5175 | |||
5176 | /envinfo@7.10.0: | ||
5177 | resolution: {integrity: sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==} | ||
5178 | engines: {node: '>=4'} | ||
5179 | hasBin: true | ||
5180 | dev: true | ||
5181 | |||
5182 | /err-code@2.0.3: | ||
5183 | resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} | ||
5184 | requiresBuild: true | ||
1679 | dev: false | 5185 | dev: false |
5186 | optional: true | ||
1680 | 5187 | ||
1681 | /es-abstract/1.20.5: | 5188 | /error-ex@1.3.2: |
1682 | resolution: {integrity: sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==} | 5189 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} |
5190 | dependencies: | ||
5191 | is-arrayish: 0.2.1 | ||
5192 | dev: true | ||
5193 | |||
5194 | /error-stack-parser@2.1.4: | ||
5195 | resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} | ||
5196 | dependencies: | ||
5197 | stackframe: 1.3.4 | ||
5198 | dev: true | ||
5199 | |||
5200 | /es-abstract@1.22.2: | ||
5201 | resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} | ||
1683 | engines: {node: '>= 0.4'} | 5202 | engines: {node: '>= 0.4'} |
1684 | dependencies: | 5203 | dependencies: |
5204 | array-buffer-byte-length: 1.0.0 | ||
5205 | arraybuffer.prototype.slice: 1.0.2 | ||
5206 | available-typed-arrays: 1.0.5 | ||
1685 | call-bind: 1.0.2 | 5207 | call-bind: 1.0.2 |
5208 | es-set-tostringtag: 2.0.1 | ||
1686 | es-to-primitive: 1.2.1 | 5209 | es-to-primitive: 1.2.1 |
1687 | function-bind: 1.1.1 | 5210 | function.prototype.name: 1.1.6 |
1688 | function.prototype.name: 1.1.5 | 5211 | get-intrinsic: 1.2.1 |
1689 | get-intrinsic: 1.1.3 | ||
1690 | get-symbol-description: 1.0.0 | 5212 | get-symbol-description: 1.0.0 |
5213 | globalthis: 1.0.3 | ||
1691 | gopd: 1.0.1 | 5214 | gopd: 1.0.1 |
1692 | has: 1.0.3 | 5215 | has: 1.0.3 |
1693 | has-property-descriptors: 1.0.0 | 5216 | has-property-descriptors: 1.0.0 |
5217 | has-proto: 1.0.1 | ||
1694 | has-symbols: 1.0.3 | 5218 | has-symbols: 1.0.3 |
1695 | internal-slot: 1.0.3 | 5219 | internal-slot: 1.0.5 |
5220 | is-array-buffer: 3.0.2 | ||
1696 | is-callable: 1.2.7 | 5221 | is-callable: 1.2.7 |
1697 | is-negative-zero: 2.0.2 | 5222 | is-negative-zero: 2.0.2 |
1698 | is-regex: 1.1.4 | 5223 | is-regex: 1.1.4 |
1699 | is-shared-array-buffer: 1.0.2 | 5224 | is-shared-array-buffer: 1.0.2 |
1700 | is-string: 1.0.7 | 5225 | is-string: 1.0.7 |
5226 | is-typed-array: 1.1.12 | ||
1701 | is-weakref: 1.0.2 | 5227 | is-weakref: 1.0.2 |
1702 | object-inspect: 1.12.2 | 5228 | object-inspect: 1.12.3 |
1703 | object-keys: 1.1.1 | 5229 | object-keys: 1.1.1 |
1704 | object.assign: 4.1.4 | 5230 | object.assign: 4.1.4 |
1705 | regexp.prototype.flags: 1.4.3 | 5231 | regexp.prototype.flags: 1.5.1 |
5232 | safe-array-concat: 1.0.1 | ||
1706 | safe-regex-test: 1.0.0 | 5233 | safe-regex-test: 1.0.0 |
1707 | string.prototype.trimend: 1.0.6 | 5234 | string.prototype.trim: 1.2.8 |
1708 | string.prototype.trimstart: 1.0.6 | 5235 | string.prototype.trimend: 1.0.7 |
5236 | string.prototype.trimstart: 1.0.7 | ||
5237 | typed-array-buffer: 1.0.0 | ||
5238 | typed-array-byte-length: 1.0.0 | ||
5239 | typed-array-byte-offset: 1.0.0 | ||
5240 | typed-array-length: 1.0.4 | ||
1709 | unbox-primitive: 1.0.2 | 5241 | unbox-primitive: 1.0.2 |
5242 | which-typed-array: 1.1.11 | ||
5243 | dev: true | ||
5244 | |||
5245 | /es-module-lexer@0.3.26: | ||
5246 | resolution: {integrity: sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==} | ||
5247 | dev: false | ||
5248 | |||
5249 | /es-module-lexer@1.3.1: | ||
5250 | resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==} | ||
5251 | dev: true | ||
5252 | |||
5253 | /es-set-tostringtag@2.0.1: | ||
5254 | resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} | ||
5255 | engines: {node: '>= 0.4'} | ||
5256 | dependencies: | ||
5257 | get-intrinsic: 1.2.1 | ||
5258 | has: 1.0.3 | ||
5259 | has-tostringtag: 1.0.0 | ||
1710 | dev: true | 5260 | dev: true |
1711 | 5261 | ||
1712 | /es-shim-unscopables/1.0.0: | 5262 | /es-shim-unscopables@1.0.0: |
1713 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} | 5263 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} |
1714 | dependencies: | 5264 | dependencies: |
1715 | has: 1.0.3 | 5265 | has: 1.0.3 |
1716 | dev: true | 5266 | dev: true |
1717 | 5267 | ||
1718 | /es-to-primitive/1.2.1: | 5268 | /es-to-primitive@1.2.1: |
1719 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} | 5269 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} |
1720 | engines: {node: '>= 0.4'} | 5270 | engines: {node: '>= 0.4'} |
1721 | dependencies: | 5271 | dependencies: |
@@ -1724,45 +5274,48 @@ packages: | |||
1724 | is-symbol: 1.0.4 | 5274 | is-symbol: 1.0.4 |
1725 | dev: true | 5275 | dev: true |
1726 | 5276 | ||
1727 | /escape-html/1.0.3: | 5277 | /escalade@3.1.1: |
5278 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} | ||
5279 | engines: {node: '>=6'} | ||
5280 | |||
5281 | /escape-goat@2.1.1: | ||
5282 | resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} | ||
5283 | engines: {node: '>=8'} | ||
5284 | |||
5285 | /escape-html@1.0.3: | ||
1728 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} | 5286 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} |
1729 | dev: false | ||
1730 | 5287 | ||
1731 | /escape-string-regexp/1.0.5: | 5288 | /escape-string-regexp@1.0.5: |
1732 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} | 5289 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} |
1733 | engines: {node: '>=0.8.0'} | 5290 | engines: {node: '>=0.8.0'} |
1734 | dev: true | 5291 | dev: true |
1735 | 5292 | ||
1736 | /escape-string-regexp/4.0.0: | 5293 | /escape-string-regexp@4.0.0: |
1737 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} | 5294 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} |
1738 | engines: {node: '>=10'} | 5295 | engines: {node: '>=10'} |
1739 | dev: true | 5296 | dev: true |
1740 | 5297 | ||
1741 | /eslint-config-airbnb-base/14.2.1_hpmu7kn6tcn2vnxpfzvv33bxmy: | 5298 | /eslint-config-prettier@8.9.0(eslint@8.46.0): |
1742 | resolution: {integrity: sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==} | 5299 | resolution: {integrity: sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA==} |
1743 | engines: {node: '>= 6'} | 5300 | hasBin: true |
1744 | peerDependencies: | 5301 | peerDependencies: |
1745 | eslint: ^5.16.0 || ^6.8.0 || ^7.2.0 | 5302 | eslint: '>=7.0.0' |
1746 | eslint-plugin-import: ^2.22.1 | ||
1747 | dependencies: | 5303 | dependencies: |
1748 | confusing-browser-globals: 1.0.11 | 5304 | eslint: 8.46.0 |
1749 | eslint: 7.32.0 | ||
1750 | eslint-plugin-import: 2.26.0_eslint@7.32.0 | ||
1751 | object.assign: 4.1.4 | ||
1752 | object.entries: 1.1.6 | ||
1753 | dev: true | 5305 | dev: true |
1754 | 5306 | ||
1755 | /eslint-import-resolver-node/0.3.6: | 5307 | /eslint-import-resolver-node@0.3.9: |
1756 | resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} | 5308 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} |
1757 | dependencies: | 5309 | dependencies: |
1758 | debug: 3.2.7 | 5310 | debug: 3.2.7 |
1759 | resolve: 1.22.1 | 5311 | is-core-module: 2.13.0 |
5312 | resolve: 1.22.6 | ||
1760 | transitivePeerDependencies: | 5313 | transitivePeerDependencies: |
1761 | - supports-color | 5314 | - supports-color |
1762 | dev: true | 5315 | dev: true |
1763 | 5316 | ||
1764 | /eslint-module-utils/2.7.4_gw5q3jyuku4zrugqrckhwmprvm: | 5317 | /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.9)(eslint@8.46.0): |
1765 | resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} | 5318 | resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} |
1766 | engines: {node: '>=4'} | 5319 | engines: {node: '>=4'} |
1767 | peerDependencies: | 5320 | peerDependencies: |
1768 | '@typescript-eslint/parser': '*' | 5321 | '@typescript-eslint/parser': '*' |
@@ -1782,15 +5335,30 @@ packages: | |||
1782 | eslint-import-resolver-webpack: | 5335 | eslint-import-resolver-webpack: |
1783 | optional: true | 5336 | optional: true |
1784 | dependencies: | 5337 | dependencies: |
5338 | '@typescript-eslint/parser': 6.2.0(eslint@8.46.0)(typescript@5.1.6) | ||
1785 | debug: 3.2.7 | 5339 | debug: 3.2.7 |
1786 | eslint: 7.32.0 | 5340 | eslint: 8.46.0 |
1787 | eslint-import-resolver-node: 0.3.6 | 5341 | eslint-import-resolver-node: 0.3.9 |
5342 | transitivePeerDependencies: | ||
5343 | - supports-color | ||
5344 | dev: true | ||
5345 | |||
5346 | /eslint-plugin-adonis@2.1.1(eslint@8.46.0)(typescript@5.1.6): | ||
5347 | resolution: {integrity: sha512-iC3eZXofK4q+KOGypiquT74amCpeqW+5K5WZ7pezUvrXgmFkZMn7MSQjAg44KVzq6pQdXFuRNlnS+ijcwx0AMw==} | ||
5348 | engines: {node: '>=10.0.0'} | ||
5349 | peerDependencies: | ||
5350 | eslint: ^8.0.0 | ||
5351 | dependencies: | ||
5352 | '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6) | ||
5353 | '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) | ||
5354 | eslint: 8.46.0 | ||
1788 | transitivePeerDependencies: | 5355 | transitivePeerDependencies: |
1789 | - supports-color | 5356 | - supports-color |
5357 | - typescript | ||
1790 | dev: true | 5358 | dev: true |
1791 | 5359 | ||
1792 | /eslint-plugin-import/2.26.0_eslint@7.32.0: | 5360 | /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0): |
1793 | resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} | 5361 | resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==} |
1794 | engines: {node: '>=4'} | 5362 | engines: {node: '>=4'} |
1795 | peerDependencies: | 5363 | peerDependencies: |
1796 | '@typescript-eslint/parser': '*' | 5364 | '@typescript-eslint/parser': '*' |
@@ -1799,27 +5367,78 @@ packages: | |||
1799 | '@typescript-eslint/parser': | 5367 | '@typescript-eslint/parser': |
1800 | optional: true | 5368 | optional: true |
1801 | dependencies: | 5369 | dependencies: |
1802 | array-includes: 3.1.6 | 5370 | '@typescript-eslint/parser': 6.2.0(eslint@8.46.0)(typescript@5.1.6) |
1803 | array.prototype.flat: 1.3.1 | 5371 | array-includes: 3.1.7 |
1804 | debug: 2.6.9 | 5372 | array.prototype.findlastindex: 1.2.3 |
5373 | array.prototype.flat: 1.3.2 | ||
5374 | array.prototype.flatmap: 1.3.2 | ||
5375 | debug: 3.2.7 | ||
1805 | doctrine: 2.1.0 | 5376 | doctrine: 2.1.0 |
1806 | eslint: 7.32.0 | 5377 | eslint: 8.46.0 |
1807 | eslint-import-resolver-node: 0.3.6 | 5378 | eslint-import-resolver-node: 0.3.9 |
1808 | eslint-module-utils: 2.7.4_gw5q3jyuku4zrugqrckhwmprvm | 5379 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.9)(eslint@8.46.0) |
1809 | has: 1.0.3 | 5380 | has: 1.0.3 |
1810 | is-core-module: 2.11.0 | 5381 | is-core-module: 2.13.0 |
1811 | is-glob: 4.0.3 | 5382 | is-glob: 4.0.3 |
1812 | minimatch: 3.1.2 | 5383 | minimatch: 3.1.2 |
1813 | object.values: 1.1.6 | 5384 | object.fromentries: 2.0.7 |
1814 | resolve: 1.22.1 | 5385 | object.groupby: 1.0.1 |
1815 | tsconfig-paths: 3.14.1 | 5386 | object.values: 1.1.7 |
5387 | resolve: 1.22.6 | ||
5388 | semver: 6.3.1 | ||
5389 | tsconfig-paths: 3.14.2 | ||
1816 | transitivePeerDependencies: | 5390 | transitivePeerDependencies: |
1817 | - eslint-import-resolver-typescript | 5391 | - eslint-import-resolver-typescript |
1818 | - eslint-import-resolver-webpack | 5392 | - eslint-import-resolver-webpack |
1819 | - supports-color | 5393 | - supports-color |
1820 | dev: true | 5394 | dev: true |
1821 | 5395 | ||
1822 | /eslint-scope/5.1.1: | 5396 | /eslint-plugin-prettier@5.0.0(eslint-config-prettier@8.9.0)(eslint@8.46.0)(prettier@3.0.0): |
5397 | resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} | ||
5398 | engines: {node: ^14.18.0 || >=16.0.0} | ||
5399 | peerDependencies: | ||
5400 | '@types/eslint': '>=8.0.0' | ||
5401 | eslint: '>=8.0.0' | ||
5402 | eslint-config-prettier: '*' | ||
5403 | prettier: '>=3.0.0' | ||
5404 | peerDependenciesMeta: | ||
5405 | '@types/eslint': | ||
5406 | optional: true | ||
5407 | eslint-config-prettier: | ||
5408 | optional: true | ||
5409 | dependencies: | ||
5410 | eslint: 8.46.0 | ||
5411 | eslint-config-prettier: 8.9.0(eslint@8.46.0) | ||
5412 | prettier: 3.0.0 | ||
5413 | prettier-linter-helpers: 1.0.0 | ||
5414 | synckit: 0.8.5 | ||
5415 | dev: true | ||
5416 | |||
5417 | /eslint-plugin-unicorn@48.0.1(eslint@8.46.0): | ||
5418 | resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} | ||
5419 | engines: {node: '>=16'} | ||
5420 | peerDependencies: | ||
5421 | eslint: '>=8.44.0' | ||
5422 | dependencies: | ||
5423 | '@babel/helper-validator-identifier': 7.22.20 | ||
5424 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) | ||
5425 | ci-info: 3.8.0 | ||
5426 | clean-regexp: 1.0.0 | ||
5427 | eslint: 8.46.0 | ||
5428 | esquery: 1.5.0 | ||
5429 | indent-string: 4.0.0 | ||
5430 | is-builtin-module: 3.2.1 | ||
5431 | jsesc: 3.0.2 | ||
5432 | lodash: 4.17.21 | ||
5433 | pluralize: 8.0.0 | ||
5434 | read-pkg-up: 7.0.1 | ||
5435 | regexp-tree: 0.1.27 | ||
5436 | regjsparser: 0.10.0 | ||
5437 | semver: 7.5.4 | ||
5438 | strip-indent: 3.0.0 | ||
5439 | dev: true | ||
5440 | |||
5441 | /eslint-scope@5.1.1: | ||
1823 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} | 5442 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} |
1824 | engines: {node: '>=8.0.0'} | 5443 | engines: {node: '>=8.0.0'} |
1825 | dependencies: | 5444 | dependencies: |
@@ -1827,130 +5446,166 @@ packages: | |||
1827 | estraverse: 4.3.0 | 5446 | estraverse: 4.3.0 |
1828 | dev: true | 5447 | dev: true |
1829 | 5448 | ||
1830 | /eslint-utils/2.1.0: | 5449 | /eslint-scope@7.2.2: |
1831 | resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} | 5450 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} |
1832 | engines: {node: '>=6'} | 5451 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
1833 | dependencies: | 5452 | dependencies: |
1834 | eslint-visitor-keys: 1.3.0 | 5453 | esrecurse: 4.3.0 |
1835 | dev: true | 5454 | estraverse: 5.3.0 |
1836 | |||
1837 | /eslint-visitor-keys/1.3.0: | ||
1838 | resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} | ||
1839 | engines: {node: '>=4'} | ||
1840 | dev: true | 5455 | dev: true |
1841 | 5456 | ||
1842 | /eslint-visitor-keys/2.1.0: | 5457 | /eslint-visitor-keys@3.4.3: |
1843 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} | 5458 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} |
1844 | engines: {node: '>=10'} | 5459 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
1845 | dev: true | 5460 | dev: true |
1846 | 5461 | ||
1847 | /eslint/7.32.0: | 5462 | /eslint@8.46.0: |
1848 | resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} | 5463 | resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} |
1849 | engines: {node: ^10.12.0 || >=12.0.0} | 5464 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
1850 | hasBin: true | 5465 | hasBin: true |
1851 | dependencies: | 5466 | dependencies: |
1852 | '@babel/code-frame': 7.12.11 | 5467 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) |
1853 | '@eslint/eslintrc': 0.4.3 | 5468 | '@eslint-community/regexpp': 4.9.0 |
1854 | '@humanwhocodes/config-array': 0.5.0 | 5469 | '@eslint/eslintrc': 2.1.2 |
5470 | '@eslint/js': 8.50.0 | ||
5471 | '@humanwhocodes/config-array': 0.11.11 | ||
5472 | '@humanwhocodes/module-importer': 1.0.1 | ||
5473 | '@nodelib/fs.walk': 1.2.8 | ||
1855 | ajv: 6.12.6 | 5474 | ajv: 6.12.6 |
1856 | chalk: 4.1.2 | 5475 | chalk: 4.1.2 |
1857 | cross-spawn: 7.0.3 | 5476 | cross-spawn: 7.0.3 |
1858 | debug: 4.3.4 | 5477 | debug: 4.3.4 |
1859 | doctrine: 3.0.0 | 5478 | doctrine: 3.0.0 |
1860 | enquirer: 2.3.6 | ||
1861 | escape-string-regexp: 4.0.0 | 5479 | escape-string-regexp: 4.0.0 |
1862 | eslint-scope: 5.1.1 | 5480 | eslint-scope: 7.2.2 |
1863 | eslint-utils: 2.1.0 | 5481 | eslint-visitor-keys: 3.4.3 |
1864 | eslint-visitor-keys: 2.1.0 | 5482 | espree: 9.6.1 |
1865 | espree: 7.3.1 | 5483 | esquery: 1.5.0 |
1866 | esquery: 1.4.0 | ||
1867 | esutils: 2.0.3 | 5484 | esutils: 2.0.3 |
1868 | fast-deep-equal: 3.1.3 | 5485 | fast-deep-equal: 3.1.3 |
1869 | file-entry-cache: 6.0.1 | 5486 | file-entry-cache: 6.0.1 |
1870 | functional-red-black-tree: 1.0.1 | 5487 | find-up: 5.0.0 |
1871 | glob-parent: 5.1.2 | 5488 | glob-parent: 6.0.2 |
1872 | globals: 13.18.0 | 5489 | globals: 13.22.0 |
1873 | ignore: 4.0.6 | 5490 | graphemer: 1.4.0 |
1874 | import-fresh: 3.3.0 | 5491 | ignore: 5.2.4 |
1875 | imurmurhash: 0.1.4 | 5492 | imurmurhash: 0.1.4 |
1876 | is-glob: 4.0.3 | 5493 | is-glob: 4.0.3 |
1877 | js-yaml: 3.14.1 | 5494 | is-path-inside: 3.0.3 |
5495 | js-yaml: 4.1.0 | ||
1878 | json-stable-stringify-without-jsonify: 1.0.1 | 5496 | json-stable-stringify-without-jsonify: 1.0.1 |
1879 | levn: 0.4.1 | 5497 | levn: 0.4.1 |
1880 | lodash.merge: 4.6.2 | 5498 | lodash.merge: 4.6.2 |
1881 | minimatch: 3.1.2 | 5499 | minimatch: 3.1.2 |
1882 | natural-compare: 1.4.0 | 5500 | natural-compare: 1.4.0 |
1883 | optionator: 0.9.1 | 5501 | optionator: 0.9.3 |
1884 | progress: 2.0.3 | ||
1885 | regexpp: 3.2.0 | ||
1886 | semver: 7.3.5 | ||
1887 | strip-ansi: 6.0.1 | 5502 | strip-ansi: 6.0.1 |
1888 | strip-json-comments: 3.1.1 | ||
1889 | table: 6.8.1 | ||
1890 | text-table: 0.2.0 | 5503 | text-table: 0.2.0 |
1891 | v8-compile-cache: 2.3.0 | ||
1892 | transitivePeerDependencies: | 5504 | transitivePeerDependencies: |
1893 | - supports-color | 5505 | - supports-color |
1894 | dev: true | 5506 | dev: true |
1895 | 5507 | ||
1896 | /esm/3.2.25: | 5508 | /esm@3.2.25: |
1897 | resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} | 5509 | resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} |
1898 | engines: {node: '>=6'} | 5510 | engines: {node: '>=6'} |
1899 | dev: false | 5511 | dev: false |
1900 | 5512 | ||
1901 | /espree/7.3.1: | 5513 | /espree@9.6.1: |
1902 | resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} | 5514 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} |
1903 | engines: {node: ^10.12.0 || >=12.0.0} | 5515 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
1904 | dependencies: | 5516 | dependencies: |
1905 | acorn: 7.4.1 | 5517 | acorn: 8.10.0 |
1906 | acorn-jsx: 5.3.2_acorn@7.4.1 | 5518 | acorn-jsx: 5.3.2(acorn@8.10.0) |
1907 | eslint-visitor-keys: 1.3.0 | 5519 | eslint-visitor-keys: 3.4.3 |
1908 | dev: true | 5520 | dev: true |
1909 | 5521 | ||
1910 | /esprima/4.0.1: | 5522 | /esprima@4.0.1: |
1911 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} | 5523 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} |
1912 | engines: {node: '>=4'} | 5524 | engines: {node: '>=4'} |
1913 | hasBin: true | 5525 | hasBin: true |
5526 | dev: true | ||
1914 | 5527 | ||
1915 | /esquery/1.4.0: | 5528 | /esquery@1.5.0: |
1916 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} | 5529 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} |
1917 | engines: {node: '>=0.10'} | 5530 | engines: {node: '>=0.10'} |
1918 | dependencies: | 5531 | dependencies: |
1919 | estraverse: 5.3.0 | 5532 | estraverse: 5.3.0 |
1920 | dev: true | 5533 | dev: true |
1921 | 5534 | ||
1922 | /esrecurse/4.3.0: | 5535 | /esrecurse@4.3.0: |
1923 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} | 5536 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} |
1924 | engines: {node: '>=4.0'} | 5537 | engines: {node: '>=4.0'} |
1925 | dependencies: | 5538 | dependencies: |
1926 | estraverse: 5.3.0 | 5539 | estraverse: 5.3.0 |
1927 | dev: true | 5540 | dev: true |
1928 | 5541 | ||
1929 | /estraverse/4.3.0: | 5542 | /estraverse@4.3.0: |
1930 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} | 5543 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} |
1931 | engines: {node: '>=4.0'} | 5544 | engines: {node: '>=4.0'} |
1932 | dev: true | 5545 | dev: true |
1933 | 5546 | ||
1934 | /estraverse/5.3.0: | 5547 | /estraverse@5.3.0: |
1935 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} | 5548 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} |
1936 | engines: {node: '>=4.0'} | 5549 | engines: {node: '>=4.0'} |
1937 | dev: true | 5550 | dev: true |
1938 | 5551 | ||
1939 | /esutils/2.0.3: | 5552 | /esutils@2.0.3: |
1940 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} | 5553 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} |
1941 | engines: {node: '>=0.10.0'} | 5554 | engines: {node: '>=0.10.0'} |
1942 | dev: true | 5555 | dev: true |
1943 | 5556 | ||
1944 | /etag/1.8.1: | 5557 | /etag@1.8.1: |
1945 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} | 5558 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} |
1946 | engines: {node: '>= 0.6'} | 5559 | engines: {node: '>= 0.6'} |
1947 | dev: false | ||
1948 | 5560 | ||
1949 | /eventemitter2/5.0.1: | 5561 | /event-target-shim@5.0.1: |
1950 | resolution: {integrity: sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==} | 5562 | resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} |
5563 | engines: {node: '>=6'} | ||
5564 | |||
5565 | /eventemitter3@4.0.7: | ||
5566 | resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} | ||
5567 | dev: true | ||
5568 | |||
5569 | /events@1.1.1: | ||
5570 | resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} | ||
5571 | engines: {node: '>=0.4.x'} | ||
1951 | dev: false | 5572 | dev: false |
1952 | 5573 | ||
1953 | /expand-brackets/2.1.4: | 5574 | /events@3.3.0: |
5575 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} | ||
5576 | engines: {node: '>=0.8.x'} | ||
5577 | |||
5578 | /execa@5.1.1: | ||
5579 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} | ||
5580 | engines: {node: '>=10'} | ||
5581 | dependencies: | ||
5582 | cross-spawn: 7.0.3 | ||
5583 | get-stream: 6.0.1 | ||
5584 | human-signals: 2.1.0 | ||
5585 | is-stream: 2.0.1 | ||
5586 | merge-stream: 2.0.0 | ||
5587 | npm-run-path: 4.0.1 | ||
5588 | onetime: 5.1.2 | ||
5589 | signal-exit: 3.0.7 | ||
5590 | strip-final-newline: 2.0.0 | ||
5591 | dev: true | ||
5592 | |||
5593 | /execa@7.2.0: | ||
5594 | resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} | ||
5595 | engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} | ||
5596 | dependencies: | ||
5597 | cross-spawn: 7.0.3 | ||
5598 | get-stream: 6.0.1 | ||
5599 | human-signals: 4.3.1 | ||
5600 | is-stream: 3.0.0 | ||
5601 | merge-stream: 2.0.0 | ||
5602 | npm-run-path: 5.1.0 | ||
5603 | onetime: 6.0.0 | ||
5604 | signal-exit: 3.0.7 | ||
5605 | strip-final-newline: 3.0.0 | ||
5606 | dev: true | ||
5607 | |||
5608 | /expand-brackets@2.1.4: | ||
1954 | resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} | 5609 | resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} |
1955 | engines: {node: '>=0.10.0'} | 5610 | engines: {node: '>=0.10.0'} |
1956 | dependencies: | 5611 | dependencies: |
@@ -1963,44 +5618,67 @@ packages: | |||
1963 | to-regex: 3.0.2 | 5618 | to-regex: 3.0.2 |
1964 | transitivePeerDependencies: | 5619 | transitivePeerDependencies: |
1965 | - supports-color | 5620 | - supports-color |
1966 | dev: false | 5621 | dev: true |
1967 | 5622 | ||
1968 | /expand-tilde/2.0.2: | 5623 | /express@4.18.2: |
1969 | resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} | 5624 | resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} |
1970 | engines: {node: '>=0.10.0'} | 5625 | engines: {node: '>= 0.10.0'} |
1971 | dependencies: | 5626 | dependencies: |
1972 | homedir-polyfill: 1.0.3 | 5627 | accepts: 1.3.8 |
1973 | dev: false | 5628 | array-flatten: 1.1.1 |
5629 | body-parser: 1.20.1 | ||
5630 | content-disposition: 0.5.4 | ||
5631 | content-type: 1.0.5 | ||
5632 | cookie: 0.5.0 | ||
5633 | cookie-signature: 1.0.6 | ||
5634 | debug: 2.6.9 | ||
5635 | depd: 2.0.0 | ||
5636 | encodeurl: 1.0.2 | ||
5637 | escape-html: 1.0.3 | ||
5638 | etag: 1.8.1 | ||
5639 | finalhandler: 1.2.0 | ||
5640 | fresh: 0.5.2 | ||
5641 | http-errors: 2.0.0 | ||
5642 | merge-descriptors: 1.0.1 | ||
5643 | methods: 1.1.2 | ||
5644 | on-finished: 2.4.1 | ||
5645 | parseurl: 1.3.3 | ||
5646 | path-to-regexp: 0.1.7 | ||
5647 | proxy-addr: 2.0.7 | ||
5648 | qs: 6.11.0 | ||
5649 | range-parser: 1.2.1 | ||
5650 | safe-buffer: 5.2.1 | ||
5651 | send: 0.18.0 | ||
5652 | serve-static: 1.15.0 | ||
5653 | setprototypeof: 1.2.0 | ||
5654 | statuses: 2.0.1 | ||
5655 | type-is: 1.6.18 | ||
5656 | utils-merge: 1.0.1 | ||
5657 | vary: 1.1.2 | ||
5658 | transitivePeerDependencies: | ||
5659 | - supports-color | ||
5660 | dev: true | ||
1974 | 5661 | ||
1975 | /extend-shallow/2.0.1: | 5662 | /extend-shallow@2.0.1: |
1976 | resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} | 5663 | resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} |
1977 | engines: {node: '>=0.10.0'} | 5664 | engines: {node: '>=0.10.0'} |
1978 | dependencies: | 5665 | dependencies: |
1979 | is-extendable: 0.1.1 | 5666 | is-extendable: 0.1.1 |
1980 | dev: false | 5667 | dev: true |
1981 | 5668 | ||
1982 | /extend-shallow/3.0.2: | 5669 | /extend-shallow@3.0.2: |
1983 | resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} | 5670 | resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} |
1984 | engines: {node: '>=0.10.0'} | 5671 | engines: {node: '>=0.10.0'} |
1985 | dependencies: | 5672 | dependencies: |
1986 | assign-symbols: 1.0.0 | 5673 | assign-symbols: 1.0.0 |
1987 | is-extendable: 1.0.1 | 5674 | is-extendable: 1.0.1 |
1988 | dev: false | 5675 | dev: true |
1989 | 5676 | ||
1990 | /extend/3.0.2: | 5677 | /extend@3.0.2: |
1991 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} | 5678 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} |
1992 | dev: false | ||
1993 | |||
1994 | /external-editor/3.1.0: | ||
1995 | resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} | ||
1996 | engines: {node: '>=4'} | ||
1997 | dependencies: | ||
1998 | chardet: 0.7.0 | ||
1999 | iconv-lite: 0.4.24 | ||
2000 | tmp: 0.0.33 | ||
2001 | dev: true | 5679 | dev: true |
2002 | 5680 | ||
2003 | /extglob/2.0.4: | 5681 | /extglob@2.0.4: |
2004 | resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} | 5682 | resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} |
2005 | engines: {node: '>=0.10.0'} | 5683 | engines: {node: '>=0.10.0'} |
2006 | dependencies: | 5684 | dependencies: |
@@ -2014,53 +5692,101 @@ packages: | |||
2014 | to-regex: 3.0.2 | 5692 | to-regex: 3.0.2 |
2015 | transitivePeerDependencies: | 5693 | transitivePeerDependencies: |
2016 | - supports-color | 5694 | - supports-color |
2017 | dev: false | 5695 | dev: true |
2018 | 5696 | ||
2019 | /extsprintf/1.3.0: | 5697 | /fast-copy@3.0.1: |
2020 | resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} | 5698 | resolution: {integrity: sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA==} |
2021 | engines: {'0': node >=0.6.0} | ||
2022 | dev: false | ||
2023 | 5699 | ||
2024 | /fast-deep-equal/3.1.3: | 5700 | /fast-deep-equal@3.1.3: |
2025 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} | 5701 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} |
2026 | 5702 | ||
2027 | /fast-json-stable-stringify/2.1.0: | 5703 | /fast-diff@1.3.0: |
5704 | resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} | ||
5705 | dev: true | ||
5706 | |||
5707 | /fast-glob@2.2.7: | ||
5708 | resolution: {integrity: sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==} | ||
5709 | engines: {node: '>=4.0.0'} | ||
5710 | dependencies: | ||
5711 | '@mrmlnc/readdir-enhanced': 2.2.1 | ||
5712 | '@nodelib/fs.stat': 1.1.3 | ||
5713 | glob-parent: 3.1.0 | ||
5714 | is-glob: 4.0.3 | ||
5715 | merge2: 1.4.1 | ||
5716 | micromatch: 3.1.10 | ||
5717 | transitivePeerDependencies: | ||
5718 | - supports-color | ||
5719 | dev: true | ||
5720 | |||
5721 | /fast-glob@3.3.1: | ||
5722 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} | ||
5723 | engines: {node: '>=8.6.0'} | ||
5724 | dependencies: | ||
5725 | '@nodelib/fs.stat': 2.0.5 | ||
5726 | '@nodelib/fs.walk': 1.2.8 | ||
5727 | glob-parent: 5.1.2 | ||
5728 | merge2: 1.4.1 | ||
5729 | micromatch: 4.0.5 | ||
5730 | |||
5731 | /fast-json-stable-stringify@2.1.0: | ||
2028 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} | 5732 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} |
5733 | dev: true | ||
2029 | 5734 | ||
2030 | /fast-levenshtein/2.0.6: | 5735 | /fast-levenshtein@2.0.6: |
2031 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} | 5736 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} |
2032 | dev: true | 5737 | dev: true |
2033 | 5738 | ||
2034 | /fast-levenshtein/3.0.0: | 5739 | /fast-levenshtein@3.0.0: |
2035 | resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} | 5740 | resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} |
2036 | dependencies: | 5741 | dependencies: |
2037 | fastest-levenshtein: 1.0.16 | 5742 | fastest-levenshtein: 1.0.16 |
2038 | dev: false | 5743 | dev: true |
2039 | 5744 | ||
2040 | /fastest-levenshtein/1.0.16: | 5745 | /fast-redact@3.3.0: |
5746 | resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==} | ||
5747 | engines: {node: '>=6'} | ||
5748 | |||
5749 | /fast-safe-stringify@2.1.1: | ||
5750 | resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} | ||
5751 | |||
5752 | /fastest-levenshtein@1.0.16: | ||
2041 | resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} | 5753 | resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} |
2042 | engines: {node: '>= 4.9.1'} | 5754 | engines: {node: '>= 4.9.1'} |
2043 | dev: false | 5755 | dev: true |
2044 | 5756 | ||
2045 | /fecha/4.2.3: | 5757 | /fastq@1.15.0: |
2046 | resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} | 5758 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} |
2047 | dev: false | 5759 | dependencies: |
5760 | reusify: 1.0.4 | ||
2048 | 5761 | ||
2049 | /figures/3.2.0: | 5762 | /faye-websocket@0.11.4: |
2050 | resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} | 5763 | resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} |
2051 | engines: {node: '>=8'} | 5764 | engines: {node: '>=0.8.0'} |
2052 | dependencies: | 5765 | dependencies: |
2053 | escape-string-regexp: 1.0.5 | 5766 | websocket-driver: 0.7.4 |
2054 | dev: true | 5767 | dev: true |
2055 | 5768 | ||
2056 | /file-entry-cache/6.0.1: | 5769 | /file-entry-cache@6.0.1: |
2057 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} | 5770 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} |
2058 | engines: {node: ^10.12.0 || >=12.0.0} | 5771 | engines: {node: ^10.12.0 || >=12.0.0} |
2059 | dependencies: | 5772 | dependencies: |
2060 | flat-cache: 3.0.4 | 5773 | flat-cache: 3.1.0 |
2061 | dev: true | 5774 | dev: true |
2062 | 5775 | ||
2063 | /fill-range/4.0.0: | 5776 | /file-type@12.4.2: |
5777 | resolution: {integrity: sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==} | ||
5778 | engines: {node: '>=8'} | ||
5779 | dev: false | ||
5780 | |||
5781 | /file-type@16.5.4: | ||
5782 | resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==} | ||
5783 | engines: {node: '>=10'} | ||
5784 | dependencies: | ||
5785 | readable-web-to-node-stream: 3.0.2 | ||
5786 | strtok3: 6.3.0 | ||
5787 | token-types: 4.2.1 | ||
5788 | |||
5789 | /fill-range@4.0.0: | ||
2064 | resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} | 5790 | resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} |
2065 | engines: {node: '>=0.10.0'} | 5791 | engines: {node: '>=0.10.0'} |
2066 | dependencies: | 5792 | dependencies: |
@@ -2068,250 +5794,339 @@ packages: | |||
2068 | is-number: 3.0.0 | 5794 | is-number: 3.0.0 |
2069 | repeat-string: 1.6.1 | 5795 | repeat-string: 1.6.1 |
2070 | to-regex-range: 2.1.1 | 5796 | to-regex-range: 2.1.1 |
2071 | dev: false | 5797 | dev: true |
2072 | 5798 | ||
2073 | /find-up/4.1.0: | 5799 | /fill-range@7.0.1: |
2074 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} | 5800 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} |
2075 | engines: {node: '>=8'} | 5801 | engines: {node: '>=8'} |
2076 | dependencies: | 5802 | dependencies: |
2077 | locate-path: 5.0.0 | 5803 | to-regex-range: 5.0.1 |
2078 | path-exists: 4.0.0 | ||
2079 | dev: true | ||
2080 | 5804 | ||
2081 | /findup-sync/3.0.0: | 5805 | /finalhandler@1.2.0: |
2082 | resolution: {integrity: sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==} | 5806 | resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} |
2083 | engines: {node: '>= 0.10'} | 5807 | engines: {node: '>= 0.8'} |
2084 | dependencies: | 5808 | dependencies: |
2085 | detect-file: 1.0.0 | 5809 | debug: 2.6.9 |
2086 | is-glob: 4.0.3 | 5810 | encodeurl: 1.0.2 |
2087 | micromatch: 3.1.10 | 5811 | escape-html: 1.0.3 |
2088 | resolve-dir: 1.0.1 | 5812 | on-finished: 2.4.1 |
5813 | parseurl: 1.3.3 | ||
5814 | statuses: 2.0.1 | ||
5815 | unpipe: 1.0.0 | ||
2089 | transitivePeerDependencies: | 5816 | transitivePeerDependencies: |
2090 | - supports-color | 5817 | - supports-color |
2091 | dev: false | 5818 | dev: true |
2092 | 5819 | ||
2093 | /fined/1.2.0: | 5820 | /find-cache-dir@3.3.2: |
2094 | resolution: {integrity: sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==} | 5821 | resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} |
2095 | engines: {node: '>= 0.10'} | 5822 | engines: {node: '>=8'} |
2096 | dependencies: | 5823 | dependencies: |
2097 | expand-tilde: 2.0.2 | 5824 | commondir: 1.0.1 |
2098 | is-plain-object: 2.0.4 | 5825 | make-dir: 3.1.0 |
2099 | object.defaults: 1.1.0 | 5826 | pkg-dir: 4.2.0 |
2100 | object.pick: 1.3.0 | 5827 | dev: true |
2101 | parse-filepath: 1.0.2 | ||
2102 | dev: false | ||
2103 | 5828 | ||
2104 | /flagged-respawn/1.0.1: | 5829 | /find-up@3.0.0: |
2105 | resolution: {integrity: sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==} | 5830 | resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} |
2106 | engines: {node: '>= 0.10'} | 5831 | engines: {node: '>=6'} |
2107 | dev: false | 5832 | dependencies: |
5833 | locate-path: 3.0.0 | ||
5834 | dev: true | ||
2108 | 5835 | ||
2109 | /flat-cache/3.0.4: | 5836 | /find-up@4.1.0: |
2110 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} | 5837 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} |
2111 | engines: {node: ^10.12.0 || >=12.0.0} | 5838 | engines: {node: '>=8'} |
2112 | dependencies: | 5839 | dependencies: |
2113 | flatted: 3.2.7 | 5840 | locate-path: 5.0.0 |
2114 | rimraf: 3.0.2 | 5841 | path-exists: 4.0.0 |
2115 | dev: true | 5842 | dev: true |
2116 | 5843 | ||
2117 | /flatted/3.2.7: | 5844 | /find-up@5.0.0: |
2118 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} | 5845 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} |
5846 | engines: {node: '>=10'} | ||
5847 | dependencies: | ||
5848 | locate-path: 6.0.0 | ||
5849 | path-exists: 4.0.0 | ||
2119 | dev: true | 5850 | dev: true |
2120 | 5851 | ||
2121 | /fn.name/1.1.0: | 5852 | /flat-cache@3.1.0: |
2122 | resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} | 5853 | resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} |
2123 | dev: false | 5854 | engines: {node: '>=12.0.0'} |
5855 | dependencies: | ||
5856 | flatted: 3.2.9 | ||
5857 | keyv: 4.5.3 | ||
5858 | rimraf: 3.0.2 | ||
5859 | dev: true | ||
2124 | 5860 | ||
2125 | /for-in/0.1.8: | 5861 | /flatstr@1.0.12: |
2126 | resolution: {integrity: sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==} | 5862 | resolution: {integrity: sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==} |
2127 | engines: {node: '>=0.10.0'} | ||
2128 | dev: false | ||
2129 | 5863 | ||
2130 | /for-in/1.0.2: | 5864 | /flatted@3.2.9: |
2131 | resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} | 5865 | resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} |
2132 | engines: {node: '>=0.10.0'} | 5866 | dev: true |
2133 | dev: false | ||
2134 | 5867 | ||
2135 | /for-own/1.0.0: | 5868 | /flattie@1.1.0: |
2136 | resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==} | 5869 | resolution: {integrity: sha512-xU99gDEnciIwJdGcBmNHnzTJ/w5AT+VFJOu6sTB6WM8diOYNA3Sa+K1DiEBQ7XH4QikQq3iFW1U+jRVcotQnBw==} |
2137 | engines: {node: '>=0.10.0'} | 5870 | engines: {node: '>=8'} |
5871 | |||
5872 | /follow-redirects@1.15.3: | ||
5873 | resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} | ||
5874 | engines: {node: '>=4.0'} | ||
5875 | peerDependencies: | ||
5876 | debug: '*' | ||
5877 | peerDependenciesMeta: | ||
5878 | debug: | ||
5879 | optional: true | ||
5880 | dev: true | ||
5881 | |||
5882 | /for-each@0.3.3: | ||
5883 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} | ||
2138 | dependencies: | 5884 | dependencies: |
2139 | for-in: 1.0.2 | 5885 | is-callable: 1.2.7 |
2140 | dev: false | ||
2141 | 5886 | ||
2142 | /forever-agent/0.6.1: | 5887 | /for-in@1.0.2: |
2143 | resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} | 5888 | resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} |
2144 | dev: false | 5889 | engines: {node: '>=0.10.0'} |
5890 | dev: true | ||
2145 | 5891 | ||
2146 | /form-data/2.3.3: | 5892 | /form-data@3.0.1: |
2147 | resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} | 5893 | resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} |
2148 | engines: {node: '>= 0.12'} | 5894 | engines: {node: '>= 6'} |
2149 | dependencies: | 5895 | dependencies: |
2150 | asynckit: 0.4.0 | 5896 | asynckit: 0.4.0 |
2151 | combined-stream: 1.0.8 | 5897 | combined-stream: 1.0.8 |
2152 | mime-types: 2.1.35 | 5898 | mime-types: 2.1.35 |
2153 | dev: false | 5899 | dev: true |
2154 | 5900 | ||
2155 | /form-data/2.5.1: | 5901 | /form-data@4.0.0: |
2156 | resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} | 5902 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} |
2157 | engines: {node: '>= 0.12'} | 5903 | engines: {node: '>= 6'} |
2158 | dependencies: | 5904 | dependencies: |
2159 | asynckit: 0.4.0 | 5905 | asynckit: 0.4.0 |
2160 | combined-stream: 1.0.8 | 5906 | combined-stream: 1.0.8 |
2161 | mime-types: 2.1.35 | 5907 | mime-types: 2.1.35 |
2162 | dev: false | 5908 | dev: true |
5909 | |||
5910 | /formidable@2.1.2: | ||
5911 | resolution: {integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==} | ||
5912 | dependencies: | ||
5913 | dezalgo: 1.0.4 | ||
5914 | hexoid: 1.0.0 | ||
5915 | once: 1.4.0 | ||
5916 | qs: 6.11.2 | ||
5917 | dev: true | ||
2163 | 5918 | ||
2164 | /forwarded/0.2.0: | 5919 | /forwarded@0.2.0: |
2165 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} | 5920 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} |
2166 | engines: {node: '>= 0.6'} | 5921 | engines: {node: '>= 0.6'} |
2167 | dev: false | ||
2168 | 5922 | ||
2169 | /fragment-cache/0.2.1: | 5923 | /fragment-cache@0.2.1: |
2170 | resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} | 5924 | resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} |
2171 | engines: {node: '>=0.10.0'} | 5925 | engines: {node: '>=0.10.0'} |
2172 | dependencies: | 5926 | dependencies: |
2173 | map-cache: 0.2.2 | 5927 | map-cache: 0.2.2 |
2174 | dev: false | 5928 | dev: true |
2175 | 5929 | ||
2176 | /fresh/0.5.2: | 5930 | /fresh@0.5.2: |
2177 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} | 5931 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} |
2178 | engines: {node: '>= 0.6'} | 5932 | engines: {node: '>= 0.6'} |
2179 | dev: false | ||
2180 | |||
2181 | /from2/2.3.0: | ||
2182 | resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} | ||
2183 | dependencies: | ||
2184 | inherits: 2.0.4 | ||
2185 | readable-stream: 2.3.7 | ||
2186 | dev: false | ||
2187 | 5933 | ||
2188 | /fs-constants/1.0.0: | 5934 | /fs-constants@1.0.0: |
2189 | resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} | 5935 | resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} |
2190 | dev: false | 5936 | dev: false |
2191 | 5937 | ||
2192 | /fs-extra/6.0.1: | 5938 | /fs-extra@10.1.0: |
2193 | resolution: {integrity: sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==} | 5939 | resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} |
5940 | engines: {node: '>=12'} | ||
2194 | dependencies: | 5941 | dependencies: |
2195 | graceful-fs: 4.2.10 | 5942 | graceful-fs: 4.2.11 |
2196 | jsonfile: 4.0.0 | 5943 | jsonfile: 6.1.0 |
2197 | universalify: 0.1.2 | 5944 | universalify: 2.0.0 |
2198 | dev: false | 5945 | |
5946 | /fs-extra@11.1.1: | ||
5947 | resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} | ||
5948 | engines: {node: '>=14.14'} | ||
5949 | dependencies: | ||
5950 | graceful-fs: 4.2.11 | ||
5951 | jsonfile: 6.1.0 | ||
5952 | universalify: 2.0.0 | ||
2199 | 5953 | ||
2200 | /fs-extra/8.1.0: | 5954 | /fs-extra@8.1.0: |
2201 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} | 5955 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} |
2202 | engines: {node: '>=6 <7 || >=8'} | 5956 | engines: {node: '>=6 <7 || >=8'} |
2203 | dependencies: | 5957 | dependencies: |
2204 | graceful-fs: 4.2.10 | 5958 | graceful-fs: 4.2.11 |
2205 | jsonfile: 4.0.0 | 5959 | jsonfile: 4.0.0 |
2206 | universalify: 0.1.2 | 5960 | universalify: 0.1.2 |
2207 | dev: false | 5961 | dev: true |
2208 | 5962 | ||
2209 | /fs-extra/9.1.0: | 5963 | /fs-minipass@2.1.0: |
2210 | resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} | 5964 | resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} |
2211 | engines: {node: '>=10'} | 5965 | engines: {node: '>= 8'} |
2212 | dependencies: | 5966 | dependencies: |
2213 | at-least-node: 1.0.0 | 5967 | minipass: 3.3.6 |
2214 | graceful-fs: 4.2.10 | ||
2215 | jsonfile: 6.1.0 | ||
2216 | universalify: 2.0.0 | ||
2217 | dev: false | 5968 | dev: false |
2218 | 5969 | ||
2219 | /fs-minipass/1.2.7: | 5970 | /fs-monkey@1.0.5: |
2220 | resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} | 5971 | resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} |
2221 | dependencies: | 5972 | |
2222 | minipass: 2.9.0 | 5973 | /fs-readdir-recursive@1.1.0: |
2223 | dev: false | 5974 | resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} |
2224 | 5975 | ||
2225 | /fs.realpath/1.0.0: | 5976 | /fs.realpath@1.0.0: |
2226 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} | 5977 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} |
2227 | 5978 | ||
2228 | /function-bind/1.1.1: | 5979 | /fsevents@2.3.3: |
5980 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} | ||
5981 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} | ||
5982 | os: [darwin] | ||
5983 | requiresBuild: true | ||
5984 | dev: true | ||
5985 | optional: true | ||
5986 | |||
5987 | /function-bind@1.1.1: | ||
2229 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} | 5988 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} |
2230 | 5989 | ||
2231 | /function.prototype.name/1.1.5: | 5990 | /function.prototype.name@1.1.6: |
2232 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} | 5991 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} |
2233 | engines: {node: '>= 0.4'} | 5992 | engines: {node: '>= 0.4'} |
2234 | dependencies: | 5993 | dependencies: |
2235 | call-bind: 1.0.2 | 5994 | call-bind: 1.0.2 |
2236 | define-properties: 1.1.4 | 5995 | define-properties: 1.2.1 |
2237 | es-abstract: 1.20.5 | 5996 | es-abstract: 1.22.2 |
2238 | functions-have-names: 1.2.3 | 5997 | functions-have-names: 1.2.3 |
2239 | dev: true | 5998 | dev: true |
2240 | 5999 | ||
2241 | /functional-red-black-tree/1.0.1: | 6000 | /functions-have-names@1.2.3: |
2242 | resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} | ||
2243 | dev: true | ||
2244 | |||
2245 | /functions-have-names/1.2.3: | ||
2246 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} | 6001 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} |
2247 | dev: true | 6002 | dev: true |
2248 | 6003 | ||
2249 | /gauge/2.7.4: | 6004 | /gauge@3.0.2: |
2250 | resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} | 6005 | resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} |
6006 | engines: {node: '>=10'} | ||
2251 | dependencies: | 6007 | dependencies: |
2252 | aproba: 1.2.0 | 6008 | aproba: 2.0.0 |
6009 | color-support: 1.1.3 | ||
2253 | console-control-strings: 1.1.0 | 6010 | console-control-strings: 1.1.0 |
2254 | has-unicode: 2.0.1 | 6011 | has-unicode: 2.0.1 |
2255 | object-assign: 4.1.1 | 6012 | object-assign: 4.1.1 |
2256 | signal-exit: 3.0.7 | 6013 | signal-exit: 3.0.7 |
2257 | string-width: 1.0.2 | 6014 | string-width: 4.2.3 |
2258 | strip-ansi: 3.0.1 | 6015 | strip-ansi: 6.0.1 |
2259 | wide-align: 1.1.5 | 6016 | wide-align: 1.1.5 |
2260 | dev: false | 6017 | dev: false |
2261 | 6018 | ||
2262 | /get-caller-file/2.0.5: | 6019 | /gauge@4.0.4: |
2263 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} | 6020 | resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} |
2264 | engines: {node: 6.* || 8.* || >= 10.*} | 6021 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} |
6022 | requiresBuild: true | ||
6023 | dependencies: | ||
6024 | aproba: 2.0.0 | ||
6025 | color-support: 1.1.3 | ||
6026 | console-control-strings: 1.1.0 | ||
6027 | has-unicode: 2.0.1 | ||
6028 | signal-exit: 3.0.7 | ||
6029 | string-width: 4.2.3 | ||
6030 | strip-ansi: 6.0.1 | ||
6031 | wide-align: 1.1.5 | ||
6032 | dev: false | ||
6033 | optional: true | ||
6034 | |||
6035 | /gensync@1.0.0-beta.2: | ||
6036 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} | ||
6037 | engines: {node: '>=6.9.0'} | ||
6038 | dev: true | ||
6039 | |||
6040 | /get-func-name@2.0.2: | ||
6041 | resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} | ||
2265 | dev: true | 6042 | dev: true |
2266 | 6043 | ||
2267 | /get-intrinsic/1.1.3: | 6044 | /get-intrinsic@1.2.1: |
2268 | resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} | 6045 | resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} |
2269 | dependencies: | 6046 | dependencies: |
2270 | function-bind: 1.1.1 | 6047 | function-bind: 1.1.1 |
2271 | has: 1.0.3 | 6048 | has: 1.0.3 |
6049 | has-proto: 1.0.1 | ||
2272 | has-symbols: 1.0.3 | 6050 | has-symbols: 1.0.3 |
2273 | 6051 | ||
2274 | /get-stream/3.0.0: | 6052 | /get-package-type@0.1.0: |
2275 | resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} | 6053 | resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} |
6054 | engines: {node: '>=8.0.0'} | ||
6055 | dev: false | ||
6056 | |||
6057 | /get-port@3.2.0: | ||
6058 | resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} | ||
2276 | engines: {node: '>=4'} | 6059 | engines: {node: '>=4'} |
6060 | dev: true | ||
6061 | |||
6062 | /get-port@5.1.1: | ||
6063 | resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} | ||
6064 | engines: {node: '>=8'} | ||
6065 | dev: true | ||
6066 | |||
6067 | /get-source@2.0.12: | ||
6068 | resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} | ||
6069 | dependencies: | ||
6070 | data-uri-to-buffer: 2.0.2 | ||
6071 | source-map: 0.6.1 | ||
6072 | dev: true | ||
6073 | |||
6074 | /get-stream@5.2.0: | ||
6075 | resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} | ||
6076 | engines: {node: '>=8'} | ||
6077 | dependencies: | ||
6078 | pump: 3.0.0 | ||
2277 | dev: false | 6079 | dev: false |
2278 | 6080 | ||
2279 | /get-stream/6.0.1: | 6081 | /get-stream@6.0.1: |
2280 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} | 6082 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} |
2281 | engines: {node: '>=10'} | 6083 | engines: {node: '>=10'} |
2282 | dev: false | ||
2283 | 6084 | ||
2284 | /get-symbol-description/1.0.0: | 6085 | /get-symbol-description@1.0.0: |
2285 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} | 6086 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} |
2286 | engines: {node: '>= 0.4'} | 6087 | engines: {node: '>= 0.4'} |
2287 | dependencies: | 6088 | dependencies: |
2288 | call-bind: 1.0.2 | 6089 | call-bind: 1.0.2 |
2289 | get-intrinsic: 1.1.3 | 6090 | get-intrinsic: 1.2.1 |
2290 | dev: true | 6091 | dev: true |
2291 | 6092 | ||
2292 | /get-value/2.0.6: | 6093 | /get-value@2.0.6: |
2293 | resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} | 6094 | resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} |
2294 | engines: {node: '>=0.10.0'} | 6095 | engines: {node: '>=0.10.0'} |
2295 | dev: false | 6096 | dev: true |
2296 | 6097 | ||
2297 | /getopts/2.2.5: | 6098 | /getopts@2.3.0: |
2298 | resolution: {integrity: sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA==} | 6099 | resolution: {integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==} |
2299 | dev: false | ||
2300 | 6100 | ||
2301 | /getpass/0.1.7: | 6101 | /glob-parent@3.1.0: |
2302 | resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} | 6102 | resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} |
2303 | dependencies: | 6103 | dependencies: |
2304 | assert-plus: 1.0.0 | 6104 | is-glob: 3.1.0 |
2305 | dev: false | 6105 | path-dirname: 1.0.2 |
6106 | dev: true | ||
2306 | 6107 | ||
2307 | /glob-parent/5.1.2: | 6108 | /glob-parent@5.1.2: |
2308 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} | 6109 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} |
2309 | engines: {node: '>= 6'} | 6110 | engines: {node: '>= 6'} |
2310 | dependencies: | 6111 | dependencies: |
2311 | is-glob: 4.0.3 | 6112 | is-glob: 4.0.3 |
6113 | |||
6114 | /glob-parent@6.0.2: | ||
6115 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} | ||
6116 | engines: {node: '>=10.13.0'} | ||
6117 | dependencies: | ||
6118 | is-glob: 4.0.3 | ||
6119 | dev: true | ||
6120 | |||
6121 | /glob-to-regexp@0.3.0: | ||
6122 | resolution: {integrity: sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==} | ||
6123 | dev: true | ||
6124 | |||
6125 | /glob-to-regexp@0.4.1: | ||
6126 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} | ||
2312 | dev: true | 6127 | dev: true |
2313 | 6128 | ||
2314 | /glob/7.2.3: | 6129 | /glob@7.2.3: |
2315 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} | 6130 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} |
2316 | dependencies: | 6131 | dependencies: |
2317 | fs.realpath: 1.0.0 | 6132 | fs.realpath: 1.0.0 |
@@ -2321,201 +6136,279 @@ packages: | |||
2321 | once: 1.4.0 | 6136 | once: 1.4.0 |
2322 | path-is-absolute: 1.0.1 | 6137 | path-is-absolute: 1.0.1 |
2323 | 6138 | ||
2324 | /global-modules/1.0.0: | 6139 | /glob@8.1.0: |
2325 | resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} | 6140 | resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} |
2326 | engines: {node: '>=0.10.0'} | 6141 | engines: {node: '>=12'} |
2327 | dependencies: | 6142 | dependencies: |
2328 | global-prefix: 1.0.2 | 6143 | fs.realpath: 1.0.0 |
2329 | is-windows: 1.0.2 | 6144 | inflight: 1.0.6 |
2330 | resolve-dir: 1.0.1 | 6145 | inherits: 2.0.4 |
2331 | dev: false | 6146 | minimatch: 5.1.6 |
6147 | once: 1.4.0 | ||
2332 | 6148 | ||
2333 | /global-prefix/1.0.2: | 6149 | /globals@11.12.0: |
2334 | resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} | 6150 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} |
2335 | engines: {node: '>=0.10.0'} | 6151 | engines: {node: '>=4'} |
2336 | dependencies: | 6152 | dev: true |
2337 | expand-tilde: 2.0.2 | ||
2338 | homedir-polyfill: 1.0.3 | ||
2339 | ini: 1.3.8 | ||
2340 | is-windows: 1.0.2 | ||
2341 | which: 1.3.1 | ||
2342 | dev: false | ||
2343 | 6153 | ||
2344 | /globals/13.18.0: | 6154 | /globals@13.22.0: |
2345 | resolution: {integrity: sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==} | 6155 | resolution: {integrity: sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==} |
2346 | engines: {node: '>=8'} | 6156 | engines: {node: '>=8'} |
2347 | dependencies: | 6157 | dependencies: |
2348 | type-fest: 0.20.2 | 6158 | type-fest: 0.20.2 |
2349 | dev: true | 6159 | dev: true |
2350 | 6160 | ||
2351 | /gopd/1.0.1: | 6161 | /globalthis@1.0.3: |
2352 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} | 6162 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} |
6163 | engines: {node: '>= 0.4'} | ||
2353 | dependencies: | 6164 | dependencies: |
2354 | get-intrinsic: 1.1.3 | 6165 | define-properties: 1.2.1 |
2355 | dev: true | 6166 | dev: true |
2356 | 6167 | ||
2357 | /got/8.3.0: | 6168 | /globby@11.1.0: |
2358 | resolution: {integrity: sha512-kBNy/S2CGwrYgDSec5KTWGKUvupwkkTVAjIsVFF2shXO13xpZdFP4d4kxa//CLX2tN/rV0aYwK8vY6UKWGn2vQ==} | 6169 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} |
2359 | engines: {node: '>=4'} | 6170 | engines: {node: '>=10'} |
2360 | dependencies: | 6171 | dependencies: |
2361 | '@sindresorhus/is': 0.7.0 | 6172 | array-union: 2.1.0 |
2362 | '@types/keyv': 3.1.4 | 6173 | dir-glob: 3.0.1 |
2363 | '@types/responselike': 1.0.0 | 6174 | fast-glob: 3.3.1 |
2364 | cacheable-request: 2.1.4 | 6175 | ignore: 5.2.4 |
2365 | decompress-response: 3.3.0 | 6176 | merge2: 1.4.1 |
2366 | duplexer3: 0.1.5 | 6177 | slash: 3.0.0 |
2367 | get-stream: 3.0.0 | 6178 | dev: true |
2368 | into-stream: 3.1.0 | ||
2369 | is-retry-allowed: 1.2.0 | ||
2370 | isurl: 1.0.0 | ||
2371 | lowercase-keys: 1.0.1 | ||
2372 | mimic-response: 1.0.1 | ||
2373 | p-cancelable: 0.4.1 | ||
2374 | p-timeout: 2.0.1 | ||
2375 | pify: 3.0.0 | ||
2376 | safe-buffer: 5.2.1 | ||
2377 | timed-out: 4.0.1 | ||
2378 | url-parse-lax: 3.0.0 | ||
2379 | url-to-options: 1.0.1 | ||
2380 | dev: false | ||
2381 | |||
2382 | /graceful-fs/4.2.10: | ||
2383 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} | ||
2384 | dev: false | ||
2385 | 6179 | ||
2386 | /har-schema/2.0.0: | 6180 | /globby@6.1.0: |
2387 | resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} | 6181 | resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} |
2388 | engines: {node: '>=4'} | 6182 | engines: {node: '>=0.10.0'} |
2389 | dev: false | 6183 | dependencies: |
6184 | array-union: 1.0.2 | ||
6185 | glob: 7.2.3 | ||
6186 | object-assign: 4.1.1 | ||
6187 | pify: 2.3.0 | ||
6188 | pinkie-promise: 2.0.1 | ||
6189 | dev: true | ||
2390 | 6190 | ||
2391 | /har-validator/5.1.5: | 6191 | /globby@9.2.0: |
2392 | resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} | 6192 | resolution: {integrity: sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==} |
2393 | engines: {node: '>=6'} | 6193 | engines: {node: '>=6'} |
2394 | deprecated: this library is no longer supported | ||
2395 | dependencies: | 6194 | dependencies: |
2396 | ajv: 6.12.6 | 6195 | '@types/glob': 7.2.0 |
2397 | har-schema: 2.0.0 | 6196 | array-union: 1.0.2 |
6197 | dir-glob: 2.2.2 | ||
6198 | fast-glob: 2.2.7 | ||
6199 | glob: 7.2.3 | ||
6200 | ignore: 4.0.6 | ||
6201 | pify: 4.0.1 | ||
6202 | slash: 2.0.0 | ||
6203 | transitivePeerDependencies: | ||
6204 | - supports-color | ||
6205 | dev: true | ||
6206 | |||
6207 | /gopd@1.0.1: | ||
6208 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} | ||
6209 | dependencies: | ||
6210 | get-intrinsic: 1.2.1 | ||
6211 | |||
6212 | /got@11.8.6: | ||
6213 | resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} | ||
6214 | engines: {node: '>=10.19.0'} | ||
6215 | dependencies: | ||
6216 | '@sindresorhus/is': 4.6.0 | ||
6217 | '@szmarczak/http-timer': 4.0.6 | ||
6218 | '@types/cacheable-request': 6.0.3 | ||
6219 | '@types/responselike': 1.0.1 | ||
6220 | cacheable-lookup: 5.0.4 | ||
6221 | cacheable-request: 7.0.4 | ||
6222 | decompress-response: 6.0.0 | ||
6223 | http2-wrapper: 1.0.3 | ||
6224 | lowercase-keys: 2.0.0 | ||
6225 | p-cancelable: 2.1.1 | ||
6226 | responselike: 2.0.1 | ||
2398 | dev: false | 6227 | dev: false |
2399 | 6228 | ||
2400 | /has-bigints/1.0.2: | 6229 | /graceful-fs@4.2.11: |
6230 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} | ||
6231 | |||
6232 | /graphemer@1.4.0: | ||
6233 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} | ||
6234 | dev: true | ||
6235 | |||
6236 | /handle-thing@2.0.1: | ||
6237 | resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} | ||
6238 | dev: true | ||
6239 | |||
6240 | /has-ansi@2.0.0: | ||
6241 | resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} | ||
6242 | engines: {node: '>=0.10.0'} | ||
6243 | dependencies: | ||
6244 | ansi-regex: 2.1.1 | ||
6245 | dev: true | ||
6246 | |||
6247 | /has-bigints@1.0.2: | ||
2401 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} | 6248 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} |
2402 | dev: true | 6249 | dev: true |
2403 | 6250 | ||
2404 | /has-flag/3.0.0: | 6251 | /has-flag@3.0.0: |
2405 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} | 6252 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} |
2406 | engines: {node: '>=4'} | 6253 | engines: {node: '>=4'} |
2407 | dev: true | 6254 | dev: true |
2408 | 6255 | ||
2409 | /has-flag/4.0.0: | 6256 | /has-flag@4.0.0: |
2410 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} | 6257 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} |
2411 | engines: {node: '>=8'} | 6258 | engines: {node: '>=8'} |
6259 | |||
6260 | /has-glob@1.0.0: | ||
6261 | resolution: {integrity: sha512-D+8A457fBShSEI3tFCj65PAbT++5sKiFtdCdOam0gnfBgw9D277OERk+HM9qYJXmdVLZ/znez10SqHN0BBQ50g==} | ||
6262 | engines: {node: '>=0.10.0'} | ||
6263 | dependencies: | ||
6264 | is-glob: 3.1.0 | ||
6265 | dev: true | ||
6266 | |||
6267 | /has-own-prop@2.0.0: | ||
6268 | resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} | ||
6269 | engines: {node: '>=8'} | ||
2412 | dev: true | 6270 | dev: true |
2413 | 6271 | ||
2414 | /has-property-descriptors/1.0.0: | 6272 | /has-property-descriptors@1.0.0: |
2415 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} | 6273 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} |
2416 | dependencies: | 6274 | dependencies: |
2417 | get-intrinsic: 1.1.3 | 6275 | get-intrinsic: 1.2.1 |
2418 | dev: true | 6276 | dev: true |
2419 | 6277 | ||
2420 | /has-symbol-support-x/1.4.2: | 6278 | /has-proto@1.0.1: |
2421 | resolution: {integrity: sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==} | 6279 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} |
2422 | dev: false | 6280 | engines: {node: '>= 0.4'} |
2423 | 6281 | ||
2424 | /has-symbols/1.0.3: | 6282 | /has-symbols@1.0.3: |
2425 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} | 6283 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} |
2426 | engines: {node: '>= 0.4'} | 6284 | engines: {node: '>= 0.4'} |
2427 | 6285 | ||
2428 | /has-to-string-tag-x/1.4.1: | 6286 | /has-tostringtag@1.0.0: |
2429 | resolution: {integrity: sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==} | ||
2430 | dependencies: | ||
2431 | has-symbol-support-x: 1.4.2 | ||
2432 | dev: false | ||
2433 | |||
2434 | /has-tostringtag/1.0.0: | ||
2435 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} | 6287 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} |
2436 | engines: {node: '>= 0.4'} | 6288 | engines: {node: '>= 0.4'} |
2437 | dependencies: | 6289 | dependencies: |
2438 | has-symbols: 1.0.3 | 6290 | has-symbols: 1.0.3 |
2439 | dev: true | ||
2440 | 6291 | ||
2441 | /has-unicode/2.0.1: | 6292 | /has-unicode@2.0.1: |
2442 | resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} | 6293 | resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} |
2443 | dev: false | 6294 | dev: false |
2444 | 6295 | ||
2445 | /has-value/0.3.1: | 6296 | /has-value@0.3.1: |
2446 | resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} | 6297 | resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} |
2447 | engines: {node: '>=0.10.0'} | 6298 | engines: {node: '>=0.10.0'} |
2448 | dependencies: | 6299 | dependencies: |
2449 | get-value: 2.0.6 | 6300 | get-value: 2.0.6 |
2450 | has-values: 0.1.4 | 6301 | has-values: 0.1.4 |
2451 | isobject: 2.1.0 | 6302 | isobject: 2.1.0 |
2452 | dev: false | 6303 | dev: true |
2453 | 6304 | ||
2454 | /has-value/1.0.0: | 6305 | /has-value@1.0.0: |
2455 | resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} | 6306 | resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} |
2456 | engines: {node: '>=0.10.0'} | 6307 | engines: {node: '>=0.10.0'} |
2457 | dependencies: | 6308 | dependencies: |
2458 | get-value: 2.0.6 | 6309 | get-value: 2.0.6 |
2459 | has-values: 1.0.0 | 6310 | has-values: 1.0.0 |
2460 | isobject: 3.0.1 | 6311 | isobject: 3.0.1 |
2461 | dev: false | 6312 | dev: true |
2462 | 6313 | ||
2463 | /has-values/0.1.4: | 6314 | /has-values@0.1.4: |
2464 | resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} | 6315 | resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} |
2465 | engines: {node: '>=0.10.0'} | 6316 | engines: {node: '>=0.10.0'} |
2466 | dev: false | 6317 | dev: true |
2467 | 6318 | ||
2468 | /has-values/1.0.0: | 6319 | /has-values@1.0.0: |
2469 | resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} | 6320 | resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} |
2470 | engines: {node: '>=0.10.0'} | 6321 | engines: {node: '>=0.10.0'} |
2471 | dependencies: | 6322 | dependencies: |
2472 | is-number: 3.0.0 | 6323 | is-number: 3.0.0 |
2473 | kind-of: 4.0.0 | 6324 | kind-of: 4.0.0 |
2474 | dev: false | 6325 | dev: true |
2475 | 6326 | ||
2476 | /has/1.0.3: | 6327 | /has-yarn@2.1.0: |
6328 | resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} | ||
6329 | engines: {node: '>=8'} | ||
6330 | dev: true | ||
6331 | |||
6332 | /has@1.0.3: | ||
2477 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} | 6333 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} |
2478 | engines: {node: '>= 0.4.0'} | 6334 | engines: {node: '>= 0.4.0'} |
2479 | dependencies: | 6335 | dependencies: |
2480 | function-bind: 1.1.1 | 6336 | function-bind: 1.1.1 |
2481 | 6337 | ||
2482 | /haye/2.0.2: | 6338 | /haye@3.0.0: |
2483 | resolution: {integrity: sha512-C+jeFipAuwLLmQziwQrXuHzUIihDzqoLpCpwDWYFQVCIyqi5ZvC+4YtzawPTmd1tIKo0ULf+4P0Mw8irUdXIpg==} | 6339 | resolution: {integrity: sha512-yWxbPdeex78IR3x3X/DdqkZbVG4rP4UaRdUGmpClfnUh1C61mASt7Iav8vk2tXcTMSygBHDDfgoVqk68NJqzhQ==} |
2484 | dev: false | ||
2485 | 6340 | ||
2486 | /homedir-polyfill/1.0.3: | 6341 | /he@1.2.0: |
2487 | resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} | 6342 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} |
2488 | engines: {node: '>=0.10.0'} | 6343 | hasBin: true |
6344 | |||
6345 | /header-case@2.0.4: | ||
6346 | resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} | ||
2489 | dependencies: | 6347 | dependencies: |
2490 | parse-passwd: 1.0.0 | 6348 | capital-case: 1.0.4 |
6349 | tslib: 2.6.2 | ||
6350 | |||
6351 | /helmet-csp@3.4.0: | ||
6352 | resolution: {integrity: sha512-a+YgzWw6dajqhQfb6ktxil0FsQuWTKzrLSUfy55dxS8fuvl1jidTIMPZ2udN15mjjcpBPgTHNHGF5tyWKYyR8w==} | ||
6353 | engines: {node: '>=10.0.0'} | ||
2491 | dev: false | 6354 | dev: false |
2492 | 6355 | ||
2493 | /http-cache-semantics/3.8.1: | 6356 | /help-me@4.2.0: |
2494 | resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==} | 6357 | resolution: {integrity: sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==} |
6358 | dependencies: | ||
6359 | glob: 8.1.0 | ||
6360 | readable-stream: 3.6.2 | ||
6361 | |||
6362 | /hexoid@1.0.0: | ||
6363 | resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} | ||
6364 | engines: {node: '>=8'} | ||
6365 | dev: true | ||
6366 | |||
6367 | /hosted-git-info@2.8.9: | ||
6368 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} | ||
6369 | dev: true | ||
6370 | |||
6371 | /hpack.js@2.1.6: | ||
6372 | resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} | ||
6373 | dependencies: | ||
6374 | inherits: 2.0.4 | ||
6375 | obuf: 1.1.2 | ||
6376 | readable-stream: 2.3.8 | ||
6377 | wbuf: 1.7.3 | ||
6378 | dev: true | ||
6379 | |||
6380 | /html-entities@2.4.0: | ||
6381 | resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} | ||
6382 | dev: true | ||
6383 | |||
6384 | /htmlparser2@6.1.0: | ||
6385 | resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} | ||
6386 | dependencies: | ||
6387 | domelementtype: 2.3.0 | ||
6388 | domhandler: 4.3.1 | ||
6389 | domutils: 2.8.0 | ||
6390 | entities: 2.2.0 | ||
6391 | dev: true | ||
6392 | |||
6393 | /http-cache-semantics@4.1.1: | ||
6394 | resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} | ||
2495 | dev: false | 6395 | dev: false |
2496 | 6396 | ||
2497 | /http-errors/1.6.3: | 6397 | /http-deceiver@1.2.7: |
6398 | resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} | ||
6399 | dev: true | ||
6400 | |||
6401 | /http-errors@1.6.3: | ||
2498 | resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} | 6402 | resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} |
2499 | engines: {node: '>= 0.6'} | 6403 | engines: {node: '>= 0.6'} |
2500 | dependencies: | 6404 | dependencies: |
2501 | depd: 1.1.2 | 6405 | depd: 1.1.2 |
2502 | inherits: 2.0.3 | 6406 | inherits: 2.0.3 |
2503 | setprototypeof: 1.1.0 | 6407 | setprototypeof: 1.1.0 |
2504 | statuses: 1.4.0 | ||
2505 | dev: false | ||
2506 | |||
2507 | /http-errors/1.8.1: | ||
2508 | resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} | ||
2509 | engines: {node: '>= 0.6'} | ||
2510 | dependencies: | ||
2511 | depd: 1.1.2 | ||
2512 | inherits: 2.0.4 | ||
2513 | setprototypeof: 1.2.0 | ||
2514 | statuses: 1.5.0 | 6408 | statuses: 1.5.0 |
2515 | toidentifier: 1.0.1 | 6409 | dev: true |
2516 | dev: false | ||
2517 | 6410 | ||
2518 | /http-errors/2.0.0: | 6411 | /http-errors@2.0.0: |
2519 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} | 6412 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} |
2520 | engines: {node: '>= 0.8'} | 6413 | engines: {node: '>= 0.8'} |
2521 | dependencies: | 6414 | dependencies: |
@@ -2524,18 +6417,63 @@ packages: | |||
2524 | setprototypeof: 1.2.0 | 6417 | setprototypeof: 1.2.0 |
2525 | statuses: 2.0.1 | 6418 | statuses: 2.0.1 |
2526 | toidentifier: 1.0.1 | 6419 | toidentifier: 1.0.1 |
6420 | |||
6421 | /http-parser-js@0.5.8: | ||
6422 | resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} | ||
6423 | dev: true | ||
6424 | |||
6425 | /http-proxy-agent@4.0.1: | ||
6426 | resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} | ||
6427 | engines: {node: '>= 6'} | ||
6428 | requiresBuild: true | ||
6429 | dependencies: | ||
6430 | '@tootallnate/once': 1.1.2 | ||
6431 | agent-base: 6.0.2 | ||
6432 | debug: 4.3.4 | ||
6433 | transitivePeerDependencies: | ||
6434 | - supports-color | ||
2527 | dev: false | 6435 | dev: false |
6436 | optional: true | ||
6437 | |||
6438 | /http-proxy-middleware@2.0.6(@types/express@4.17.18): | ||
6439 | resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} | ||
6440 | engines: {node: '>=12.0.0'} | ||
6441 | peerDependencies: | ||
6442 | '@types/express': ^4.17.13 | ||
6443 | peerDependenciesMeta: | ||
6444 | '@types/express': | ||
6445 | optional: true | ||
6446 | dependencies: | ||
6447 | '@types/express': 4.17.18 | ||
6448 | '@types/http-proxy': 1.17.12 | ||
6449 | http-proxy: 1.18.1 | ||
6450 | is-glob: 4.0.3 | ||
6451 | is-plain-obj: 3.0.0 | ||
6452 | micromatch: 4.0.5 | ||
6453 | transitivePeerDependencies: | ||
6454 | - debug | ||
6455 | dev: true | ||
2528 | 6456 | ||
2529 | /http-signature/1.2.0: | 6457 | /http-proxy@1.18.1: |
2530 | resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} | 6458 | resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} |
2531 | engines: {node: '>=0.8', npm: '>=1.3.7'} | 6459 | engines: {node: '>=8.0.0'} |
2532 | dependencies: | 6460 | dependencies: |
2533 | assert-plus: 1.0.0 | 6461 | eventemitter3: 4.0.7 |
2534 | jsprim: 1.4.2 | 6462 | follow-redirects: 1.15.3 |
2535 | sshpk: 1.17.0 | 6463 | requires-port: 1.0.0 |
6464 | transitivePeerDependencies: | ||
6465 | - debug | ||
6466 | dev: true | ||
6467 | |||
6468 | /http2-wrapper@1.0.3: | ||
6469 | resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} | ||
6470 | engines: {node: '>=10.19.0'} | ||
6471 | dependencies: | ||
6472 | quick-lru: 5.1.1 | ||
6473 | resolve-alpn: 1.2.1 | ||
2536 | dev: false | 6474 | dev: false |
2537 | 6475 | ||
2538 | /https-proxy-agent/5.0.1: | 6476 | /https-proxy-agent@5.0.1: |
2539 | resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} | 6477 | resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} |
2540 | engines: {node: '>= 6'} | 6478 | engines: {node: '>= 6'} |
2541 | dependencies: | 6479 | dependencies: |
@@ -2545,30 +6483,116 @@ packages: | |||
2545 | - supports-color | 6483 | - supports-color |
2546 | dev: false | 6484 | dev: false |
2547 | 6485 | ||
2548 | /husky/7.0.4: | 6486 | /human-signals@2.1.0: |
2549 | resolution: {integrity: sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==} | 6487 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} |
2550 | engines: {node: '>=12'} | 6488 | engines: {node: '>=10.17.0'} |
6489 | dev: true | ||
6490 | |||
6491 | /human-signals@4.3.1: | ||
6492 | resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} | ||
6493 | engines: {node: '>=14.18.0'} | ||
6494 | dev: true | ||
6495 | |||
6496 | /humanize-ms@1.2.1: | ||
6497 | resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} | ||
6498 | requiresBuild: true | ||
6499 | dependencies: | ||
6500 | ms: 2.1.3 | ||
6501 | dev: false | ||
6502 | optional: true | ||
6503 | |||
6504 | /husky@8.0.3: | ||
6505 | resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} | ||
6506 | engines: {node: '>=14'} | ||
2551 | hasBin: true | 6507 | hasBin: true |
2552 | dev: true | 6508 | dev: true |
2553 | 6509 | ||
2554 | /iconv-lite/0.4.24: | 6510 | /ical-generator@4.1.0(@types/luxon@3.3.1)(luxon@3.3.0)(moment@2.29.4): |
6511 | resolution: {integrity: sha512-5GrFDJ8SAOj8cB9P1uEZIfKrNxSZ1R2eOQfZePL+CtdWh4RwNXWe8b0goajz+Hu37vcipG3RVldoa2j57Y20IA==} | ||
6512 | engines: {node: ^14.8.0 || >=16.0.0} | ||
6513 | peerDependencies: | ||
6514 | '@touch4it/ical-timezones': '>=1.6.0' | ||
6515 | '@types/luxon': '>= 1.26.0' | ||
6516 | '@types/mocha': '>= 8.2.1' | ||
6517 | '@types/node': '>= 15.0.0' | ||
6518 | dayjs: '>= 1.10.0' | ||
6519 | luxon: '>= 1.26.0' | ||
6520 | moment: '>= 2.29.0' | ||
6521 | moment-timezone: '>= 0.5.33' | ||
6522 | rrule: '>= 2.6.8' | ||
6523 | peerDependenciesMeta: | ||
6524 | '@touch4it/ical-timezones': | ||
6525 | optional: true | ||
6526 | '@types/luxon': | ||
6527 | optional: true | ||
6528 | '@types/mocha': | ||
6529 | optional: true | ||
6530 | '@types/node': | ||
6531 | optional: true | ||
6532 | dayjs: | ||
6533 | optional: true | ||
6534 | luxon: | ||
6535 | optional: true | ||
6536 | moment: | ||
6537 | optional: true | ||
6538 | moment-timezone: | ||
6539 | optional: true | ||
6540 | rrule: | ||
6541 | optional: true | ||
6542 | dependencies: | ||
6543 | '@types/luxon': 3.3.1 | ||
6544 | luxon: 3.3.0 | ||
6545 | moment: 2.29.4 | ||
6546 | uuid-random: 1.3.2 | ||
6547 | dev: false | ||
6548 | |||
6549 | /iconv-lite@0.4.24: | ||
2555 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} | 6550 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} |
2556 | engines: {node: '>=0.10.0'} | 6551 | engines: {node: '>=0.10.0'} |
2557 | dependencies: | 6552 | dependencies: |
2558 | safer-buffer: 2.1.2 | 6553 | safer-buffer: 2.1.2 |
2559 | 6554 | ||
2560 | /ignore-walk/3.0.4: | 6555 | /iconv-lite@0.6.3: |
2561 | resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} | 6556 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} |
6557 | engines: {node: '>=0.10.0'} | ||
6558 | requiresBuild: true | ||
2562 | dependencies: | 6559 | dependencies: |
2563 | minimatch: 3.1.2 | 6560 | safer-buffer: 2.1.2 |
2564 | dev: false | 6561 | dev: false |
6562 | optional: true | ||
6563 | |||
6564 | /icss-utils@5.1.0(postcss@8.4.31): | ||
6565 | resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} | ||
6566 | engines: {node: ^10 || ^12 || >= 14} | ||
6567 | peerDependencies: | ||
6568 | postcss: ^8.1.0 | ||
6569 | dependencies: | ||
6570 | postcss: 8.4.31 | ||
6571 | dev: true | ||
2565 | 6572 | ||
2566 | /ignore/4.0.6: | 6573 | /ieee754@1.1.13: |
6574 | resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==} | ||
6575 | dev: false | ||
6576 | |||
6577 | /ieee754@1.2.1: | ||
6578 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} | ||
6579 | |||
6580 | /igniculus@1.5.0: | ||
6581 | resolution: {integrity: sha512-vhj2J/cSzNg2G5tcK4Z1KZdeYmQa5keoxFULUYAxctK/zHJb1oraO7noCqnJxKe1b2eZdiiaSL1IHPOFAI8UYQ==} | ||
6582 | engines: {node: '>=4.0.0'} | ||
6583 | dev: false | ||
6584 | |||
6585 | /ignore@4.0.6: | ||
2567 | resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} | 6586 | resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} |
2568 | engines: {node: '>= 4'} | 6587 | engines: {node: '>= 4'} |
2569 | dev: true | 6588 | dev: true |
2570 | 6589 | ||
2571 | /import-fresh/3.3.0: | 6590 | /ignore@5.2.4: |
6591 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} | ||
6592 | engines: {node: '>= 4'} | ||
6593 | dev: true | ||
6594 | |||
6595 | /import-fresh@3.3.0: | ||
2572 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} | 6596 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} |
2573 | engines: {node: '>=6'} | 6597 | engines: {node: '>=6'} |
2574 | dependencies: | 6598 | dependencies: |
@@ -2576,133 +6600,138 @@ packages: | |||
2576 | resolve-from: 4.0.0 | 6600 | resolve-from: 4.0.0 |
2577 | dev: true | 6601 | dev: true |
2578 | 6602 | ||
2579 | /imurmurhash/0.1.4: | 6603 | /import-local@3.1.0: |
6604 | resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} | ||
6605 | engines: {node: '>=8'} | ||
6606 | hasBin: true | ||
6607 | dependencies: | ||
6608 | pkg-dir: 4.2.0 | ||
6609 | resolve-cwd: 3.0.0 | ||
6610 | dev: true | ||
6611 | |||
6612 | /imurmurhash@0.1.4: | ||
2580 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} | 6613 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} |
2581 | engines: {node: '>=0.8.19'} | 6614 | engines: {node: '>=0.8.19'} |
6615 | |||
6616 | /inclusion@1.0.1: | ||
6617 | resolution: {integrity: sha512-TRicJXpIfJN+a47xxjs5nfy2V5l413e4aAtsLYRG+OsDM3A3uloBd/+fDmj23RVuIL9VQfwtb37iIc0rtMw9KA==} | ||
6618 | dependencies: | ||
6619 | parent-module: 2.0.0 | ||
2582 | dev: true | 6620 | dev: true |
2583 | 6621 | ||
2584 | /indent-string/3.2.0: | 6622 | /indent-string@4.0.0: |
2585 | resolution: {integrity: sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==} | 6623 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} |
2586 | engines: {node: '>=4'} | 6624 | engines: {node: '>=8'} |
2587 | dev: false | ||
2588 | 6625 | ||
2589 | /indicative/5.0.8: | 6626 | /infer-owner@1.0.4: |
2590 | resolution: {integrity: sha512-Do9YKlrxyvK6RpMs9AdtxmjhweKrA6hJbJejY81iD8aYjjvOU4HYkJcM2IUxC3S7ZRm/L11u67QT4OQ101N5HQ==} | 6627 | resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} |
6628 | requiresBuild: true | ||
2591 | dev: false | 6629 | dev: false |
6630 | optional: true | ||
2592 | 6631 | ||
2593 | /inflation/2.0.0: | 6632 | /inflation@2.0.0: |
2594 | resolution: {integrity: sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==} | 6633 | resolution: {integrity: sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==} |
2595 | engines: {node: '>= 0.8.0'} | 6634 | engines: {node: '>= 0.8.0'} |
2596 | dev: false | ||
2597 | 6635 | ||
2598 | /inflight/1.0.6: | 6636 | /inflight@1.0.6: |
2599 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} | 6637 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} |
2600 | dependencies: | 6638 | dependencies: |
2601 | once: 1.4.0 | 6639 | once: 1.4.0 |
2602 | wrappy: 1.0.2 | 6640 | wrappy: 1.0.2 |
2603 | 6641 | ||
2604 | /info-symbol/0.1.0: | 6642 | /inherits@2.0.3: |
2605 | resolution: {integrity: sha512-qkc9wjLDQ+dYYZnY5uJXGNNHyZ0UOMDUnhvy0SEZGVVYmQ5s4i8cPAin2MbU6OxJgi8dfj/AnwqPx0CJE6+Lsw==} | ||
2606 | engines: {node: '>=0.10.0'} | ||
2607 | dev: false | ||
2608 | |||
2609 | /inherits/2.0.3: | ||
2610 | resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} | 6643 | resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} |
2611 | dev: false | 6644 | dev: true |
2612 | 6645 | ||
2613 | /inherits/2.0.4: | 6646 | /inherits@2.0.4: |
2614 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} | 6647 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} |
2615 | 6648 | ||
2616 | /ini/1.3.8: | 6649 | /ini@1.3.8: |
2617 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} | 6650 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} |
2618 | dev: false | ||
2619 | |||
2620 | /inquirer/7.3.3: | ||
2621 | resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} | ||
2622 | engines: {node: '>=8.0.0'} | ||
2623 | dependencies: | ||
2624 | ansi-escapes: 4.3.2 | ||
2625 | chalk: 4.1.2 | ||
2626 | cli-cursor: 3.1.0 | ||
2627 | cli-width: 3.0.0 | ||
2628 | external-editor: 3.1.0 | ||
2629 | figures: 3.2.0 | ||
2630 | lodash: 4.17.21 | ||
2631 | mute-stream: 0.0.8 | ||
2632 | run-async: 2.4.1 | ||
2633 | rxjs: 6.6.7 | ||
2634 | string-width: 4.2.3 | ||
2635 | strip-ansi: 6.0.1 | ||
2636 | through: 2.3.8 | ||
2637 | dev: true | 6651 | dev: true |
2638 | 6652 | ||
2639 | /internal-slot/1.0.3: | 6653 | /internal-slot@1.0.5: |
2640 | resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} | 6654 | resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} |
2641 | engines: {node: '>= 0.4'} | 6655 | engines: {node: '>= 0.4'} |
2642 | dependencies: | 6656 | dependencies: |
2643 | get-intrinsic: 1.1.3 | 6657 | get-intrinsic: 1.2.1 |
2644 | has: 1.0.3 | 6658 | has: 1.0.3 |
2645 | side-channel: 1.0.4 | 6659 | side-channel: 1.0.4 |
2646 | dev: true | 6660 | dev: true |
2647 | 6661 | ||
2648 | /interpret/2.2.0: | 6662 | /interpret@2.2.0: |
2649 | resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} | 6663 | resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} |
2650 | engines: {node: '>= 0.10'} | 6664 | engines: {node: '>= 0.10'} |
2651 | dev: false | 6665 | dev: false |
2652 | 6666 | ||
2653 | /into-stream/3.1.0: | 6667 | /interpret@3.1.1: |
2654 | resolution: {integrity: sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==} | 6668 | resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} |
2655 | engines: {node: '>=4'} | 6669 | engines: {node: '>=10.13.0'} |
2656 | dependencies: | 6670 | dev: true |
2657 | from2: 2.3.0 | 6671 | |
2658 | p-is-promise: 1.1.0 | 6672 | /ip@2.0.0: |
6673 | resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} | ||
6674 | requiresBuild: true | ||
2659 | dev: false | 6675 | dev: false |
6676 | optional: true | ||
2660 | 6677 | ||
2661 | /ipaddr.js/1.9.1: | 6678 | /ipaddr.js@1.9.1: |
2662 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} | 6679 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} |
2663 | engines: {node: '>= 0.10'} | 6680 | engines: {node: '>= 0.10'} |
2664 | dev: false | ||
2665 | 6681 | ||
2666 | /is-absolute/1.0.0: | 6682 | /ipaddr.js@2.1.0: |
2667 | resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} | 6683 | resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} |
2668 | engines: {node: '>=0.10.0'} | 6684 | engines: {node: '>= 10'} |
2669 | dependencies: | 6685 | dev: true |
2670 | is-relative: 1.0.0 | ||
2671 | is-windows: 1.0.2 | ||
2672 | dev: false | ||
2673 | 6686 | ||
2674 | /is-accessor-descriptor/0.1.6: | 6687 | /is-accessor-descriptor@0.1.6: |
2675 | resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} | 6688 | resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} |
2676 | engines: {node: '>=0.10.0'} | 6689 | engines: {node: '>=0.10.0'} |
2677 | dependencies: | 6690 | dependencies: |
2678 | kind-of: 3.2.2 | 6691 | kind-of: 3.2.2 |
2679 | dev: false | 6692 | dev: true |
2680 | 6693 | ||
2681 | /is-accessor-descriptor/1.0.0: | 6694 | /is-accessor-descriptor@1.0.0: |
2682 | resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} | 6695 | resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} |
2683 | engines: {node: '>=0.10.0'} | 6696 | engines: {node: '>=0.10.0'} |
2684 | dependencies: | 6697 | dependencies: |
2685 | kind-of: 6.0.3 | 6698 | kind-of: 6.0.3 |
2686 | dev: false | 6699 | dev: true |
2687 | |||
2688 | /is-arrayish/0.3.2: | ||
2689 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} | ||
2690 | dev: false | ||
2691 | 6700 | ||
2692 | /is-arrow-function/2.0.3: | 6701 | /is-arguments@1.1.1: |
2693 | resolution: {integrity: sha512-iDStzcT1FJMzx+TjCOK//uDugSe/Mif/8a+T0htydQ3qkJGvSweTZpVYz4hpJH0baloSPiAFQdA8WslAgJphvQ==} | 6702 | resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} |
2694 | engines: {node: '>= 0.4'} | 6703 | engines: {node: '>= 0.4'} |
2695 | dependencies: | 6704 | dependencies: |
2696 | is-callable: 1.2.7 | 6705 | call-bind: 1.0.2 |
6706 | has-tostringtag: 1.0.0 | ||
2697 | dev: false | 6707 | dev: false |
2698 | 6708 | ||
2699 | /is-bigint/1.0.4: | 6709 | /is-array-buffer@3.0.2: |
6710 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} | ||
6711 | dependencies: | ||
6712 | call-bind: 1.0.2 | ||
6713 | get-intrinsic: 1.2.1 | ||
6714 | is-typed-array: 1.1.12 | ||
6715 | dev: true | ||
6716 | |||
6717 | /is-arrayish@0.2.1: | ||
6718 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} | ||
6719 | dev: true | ||
6720 | |||
6721 | /is-bigint@1.0.4: | ||
2700 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} | 6722 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} |
2701 | dependencies: | 6723 | dependencies: |
2702 | has-bigints: 1.0.2 | 6724 | has-bigints: 1.0.2 |
2703 | dev: true | 6725 | dev: true |
2704 | 6726 | ||
2705 | /is-boolean-object/1.1.2: | 6727 | /is-binary-path@2.1.0: |
6728 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} | ||
6729 | engines: {node: '>=8'} | ||
6730 | dependencies: | ||
6731 | binary-extensions: 2.2.0 | ||
6732 | dev: true | ||
6733 | |||
6734 | /is-boolean-object@1.1.2: | ||
2706 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} | 6735 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} |
2707 | engines: {node: '>= 0.4'} | 6736 | engines: {node: '>= 0.4'} |
2708 | dependencies: | 6737 | dependencies: |
@@ -2710,145 +6739,217 @@ packages: | |||
2710 | has-tostringtag: 1.0.0 | 6739 | has-tostringtag: 1.0.0 |
2711 | dev: true | 6740 | dev: true |
2712 | 6741 | ||
2713 | /is-buffer/1.1.6: | 6742 | /is-buffer@1.1.6: |
2714 | resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} | 6743 | resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} |
2715 | dev: false | 6744 | dev: true |
6745 | |||
6746 | /is-builtin-module@3.2.1: | ||
6747 | resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} | ||
6748 | engines: {node: '>=6'} | ||
6749 | dependencies: | ||
6750 | builtin-modules: 3.3.0 | ||
6751 | dev: true | ||
2716 | 6752 | ||
2717 | /is-callable/1.2.7: | 6753 | /is-callable@1.2.7: |
2718 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} | 6754 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} |
2719 | engines: {node: '>= 0.4'} | 6755 | engines: {node: '>= 0.4'} |
2720 | 6756 | ||
2721 | /is-ci/3.0.1: | 6757 | /is-ci@3.0.1: |
2722 | resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} | 6758 | resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} |
2723 | hasBin: true | 6759 | hasBin: true |
2724 | dependencies: | 6760 | dependencies: |
2725 | ci-info: 3.7.0 | 6761 | ci-info: 3.8.0 |
2726 | dev: true | 6762 | dev: true |
2727 | 6763 | ||
2728 | /is-core-module/2.11.0: | 6764 | /is-core-module@2.13.0: |
2729 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} | 6765 | resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} |
2730 | dependencies: | 6766 | dependencies: |
2731 | has: 1.0.3 | 6767 | has: 1.0.3 |
2732 | 6768 | ||
2733 | /is-data-descriptor/0.1.4: | 6769 | /is-data-descriptor@0.1.4: |
2734 | resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} | 6770 | resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} |
2735 | engines: {node: '>=0.10.0'} | 6771 | engines: {node: '>=0.10.0'} |
2736 | dependencies: | 6772 | dependencies: |
2737 | kind-of: 3.2.2 | 6773 | kind-of: 3.2.2 |
2738 | dev: false | 6774 | dev: true |
2739 | 6775 | ||
2740 | /is-data-descriptor/1.0.0: | 6776 | /is-data-descriptor@1.0.0: |
2741 | resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} | 6777 | resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} |
2742 | engines: {node: '>=0.10.0'} | 6778 | engines: {node: '>=0.10.0'} |
2743 | dependencies: | 6779 | dependencies: |
2744 | kind-of: 6.0.3 | 6780 | kind-of: 6.0.3 |
2745 | dev: false | 6781 | dev: true |
2746 | 6782 | ||
2747 | /is-date-object/1.0.5: | 6783 | /is-date-object@1.0.5: |
2748 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} | 6784 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} |
2749 | engines: {node: '>= 0.4'} | 6785 | engines: {node: '>= 0.4'} |
2750 | dependencies: | 6786 | dependencies: |
2751 | has-tostringtag: 1.0.0 | 6787 | has-tostringtag: 1.0.0 |
2752 | dev: true | 6788 | dev: true |
2753 | 6789 | ||
2754 | /is-descriptor/0.1.6: | 6790 | /is-descriptor@0.1.6: |
2755 | resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} | 6791 | resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} |
2756 | engines: {node: '>=0.10.0'} | 6792 | engines: {node: '>=0.10.0'} |
2757 | dependencies: | 6793 | dependencies: |
2758 | is-accessor-descriptor: 0.1.6 | 6794 | is-accessor-descriptor: 0.1.6 |
2759 | is-data-descriptor: 0.1.4 | 6795 | is-data-descriptor: 0.1.4 |
2760 | kind-of: 5.1.0 | 6796 | kind-of: 5.1.0 |
2761 | dev: false | 6797 | dev: true |
2762 | 6798 | ||
2763 | /is-descriptor/1.0.2: | 6799 | /is-descriptor@1.0.2: |
2764 | resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} | 6800 | resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} |
2765 | engines: {node: '>=0.10.0'} | 6801 | engines: {node: '>=0.10.0'} |
2766 | dependencies: | 6802 | dependencies: |
2767 | is-accessor-descriptor: 1.0.0 | 6803 | is-accessor-descriptor: 1.0.0 |
2768 | is-data-descriptor: 1.0.0 | 6804 | is-data-descriptor: 1.0.0 |
2769 | kind-of: 6.0.3 | 6805 | kind-of: 6.0.3 |
2770 | dev: false | 6806 | dev: true |
2771 | 6807 | ||
2772 | /is-extendable/0.1.1: | 6808 | /is-docker@2.2.1: |
6809 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} | ||
6810 | engines: {node: '>=8'} | ||
6811 | hasBin: true | ||
6812 | dev: true | ||
6813 | |||
6814 | /is-docker@3.0.0: | ||
6815 | resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} | ||
6816 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} | ||
6817 | hasBin: true | ||
6818 | dev: true | ||
6819 | |||
6820 | /is-extendable@0.1.1: | ||
2773 | resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} | 6821 | resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} |
2774 | engines: {node: '>=0.10.0'} | 6822 | engines: {node: '>=0.10.0'} |
2775 | dev: false | 6823 | dev: true |
2776 | 6824 | ||
2777 | /is-extendable/1.0.1: | 6825 | /is-extendable@1.0.1: |
2778 | resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} | 6826 | resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} |
2779 | engines: {node: '>=0.10.0'} | 6827 | engines: {node: '>=0.10.0'} |
2780 | dependencies: | 6828 | dependencies: |
2781 | is-plain-object: 2.0.4 | 6829 | is-plain-object: 2.0.4 |
2782 | dev: false | 6830 | dev: true |
2783 | 6831 | ||
2784 | /is-extglob/2.1.1: | 6832 | /is-extglob@1.0.0: |
2785 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} | 6833 | resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==} |
2786 | engines: {node: '>=0.10.0'} | 6834 | engines: {node: '>=0.10.0'} |
6835 | dev: true | ||
2787 | 6836 | ||
2788 | /is-fullwidth-code-point/1.0.0: | 6837 | /is-extglob@2.1.1: |
2789 | resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} | 6838 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} |
2790 | engines: {node: '>=0.10.0'} | 6839 | engines: {node: '>=0.10.0'} |
6840 | |||
6841 | /is-fullwidth-code-point@3.0.0: | ||
6842 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} | ||
6843 | engines: {node: '>=8'} | ||
6844 | |||
6845 | /is-generator-function@1.0.10: | ||
6846 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} | ||
6847 | engines: {node: '>= 0.4'} | ||
2791 | dependencies: | 6848 | dependencies: |
2792 | number-is-nan: 1.0.1 | 6849 | has-tostringtag: 1.0.0 |
2793 | dev: false | 6850 | dev: false |
2794 | 6851 | ||
2795 | /is-fullwidth-code-point/2.0.0: | 6852 | /is-glob@2.0.1: |
2796 | resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} | 6853 | resolution: {integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==} |
2797 | engines: {node: '>=4'} | 6854 | engines: {node: '>=0.10.0'} |
2798 | dev: false | 6855 | dependencies: |
6856 | is-extglob: 1.0.0 | ||
6857 | dev: true | ||
2799 | 6858 | ||
2800 | /is-fullwidth-code-point/3.0.0: | 6859 | /is-glob@3.1.0: |
2801 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} | 6860 | resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} |
2802 | engines: {node: '>=8'} | 6861 | engines: {node: '>=0.10.0'} |
6862 | dependencies: | ||
6863 | is-extglob: 2.1.1 | ||
2803 | dev: true | 6864 | dev: true |
2804 | 6865 | ||
2805 | /is-glob/4.0.3: | 6866 | /is-glob@4.0.3: |
2806 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} | 6867 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} |
2807 | engines: {node: '>=0.10.0'} | 6868 | engines: {node: '>=0.10.0'} |
2808 | dependencies: | 6869 | dependencies: |
2809 | is-extglob: 2.1.1 | 6870 | is-extglob: 2.1.1 |
2810 | 6871 | ||
2811 | /is-negative-zero/2.0.2: | 6872 | /is-inside-container@1.0.0: |
6873 | resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} | ||
6874 | engines: {node: '>=14.16'} | ||
6875 | hasBin: true | ||
6876 | dependencies: | ||
6877 | is-docker: 3.0.0 | ||
6878 | dev: true | ||
6879 | |||
6880 | /is-invalid-path@0.1.0: | ||
6881 | resolution: {integrity: sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==} | ||
6882 | engines: {node: '>=0.10.0'} | ||
6883 | dependencies: | ||
6884 | is-glob: 2.0.1 | ||
6885 | dev: true | ||
6886 | |||
6887 | /is-lambda@1.0.1: | ||
6888 | resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} | ||
6889 | requiresBuild: true | ||
6890 | dev: false | ||
6891 | optional: true | ||
6892 | |||
6893 | /is-negative-zero@2.0.2: | ||
2812 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} | 6894 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} |
2813 | engines: {node: '>= 0.4'} | 6895 | engines: {node: '>= 0.4'} |
2814 | dev: true | 6896 | dev: true |
2815 | 6897 | ||
2816 | /is-number-object/1.0.7: | 6898 | /is-number-object@1.0.7: |
2817 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} | 6899 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} |
2818 | engines: {node: '>= 0.4'} | 6900 | engines: {node: '>= 0.4'} |
2819 | dependencies: | 6901 | dependencies: |
2820 | has-tostringtag: 1.0.0 | 6902 | has-tostringtag: 1.0.0 |
2821 | dev: true | 6903 | dev: true |
2822 | 6904 | ||
2823 | /is-number/3.0.0: | 6905 | /is-number@3.0.0: |
2824 | resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} | 6906 | resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} |
2825 | engines: {node: '>=0.10.0'} | 6907 | engines: {node: '>=0.10.0'} |
2826 | dependencies: | 6908 | dependencies: |
2827 | kind-of: 3.2.2 | 6909 | kind-of: 3.2.2 |
2828 | dev: false | 6910 | dev: true |
2829 | 6911 | ||
2830 | /is-number/6.0.0: | 6912 | /is-number@7.0.0: |
2831 | resolution: {integrity: sha512-Wu1VHeILBK8KAWJUAiSZQX94GmOE45Rg6/538fKwiloUu21KncEkYGPqob2oSZ5mUT73vLGrHQjKw3KMPwfDzg==} | 6913 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} |
2832 | engines: {node: '>=0.10.0'} | 6914 | engines: {node: '>=0.12.0'} |
2833 | dev: false | ||
2834 | 6915 | ||
2835 | /is-object/1.0.2: | 6916 | /is-path-cwd@2.2.0: |
2836 | resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==} | 6917 | resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} |
2837 | dev: false | 6918 | engines: {node: '>=6'} |
6919 | dev: true | ||
2838 | 6920 | ||
2839 | /is-plain-obj/1.1.0: | 6921 | /is-path-in-cwd@2.1.0: |
2840 | resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} | 6922 | resolution: {integrity: sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==} |
2841 | engines: {node: '>=0.10.0'} | 6923 | engines: {node: '>=6'} |
2842 | dev: false | 6924 | dependencies: |
6925 | is-path-inside: 2.1.0 | ||
6926 | dev: true | ||
6927 | |||
6928 | /is-path-inside@2.1.0: | ||
6929 | resolution: {integrity: sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==} | ||
6930 | engines: {node: '>=6'} | ||
6931 | dependencies: | ||
6932 | path-is-inside: 1.0.2 | ||
6933 | dev: true | ||
6934 | |||
6935 | /is-path-inside@3.0.3: | ||
6936 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} | ||
6937 | engines: {node: '>=8'} | ||
6938 | dev: true | ||
6939 | |||
6940 | /is-plain-obj@3.0.0: | ||
6941 | resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} | ||
6942 | engines: {node: '>=10'} | ||
6943 | dev: true | ||
2843 | 6944 | ||
2844 | /is-plain-object/2.0.4: | 6945 | /is-plain-object@2.0.4: |
2845 | resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} | 6946 | resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} |
2846 | engines: {node: '>=0.10.0'} | 6947 | engines: {node: '>=0.10.0'} |
2847 | dependencies: | 6948 | dependencies: |
2848 | isobject: 3.0.1 | 6949 | isobject: 3.0.1 |
2849 | dev: false | 6950 | dev: true |
2850 | 6951 | ||
2851 | /is-regex/1.1.4: | 6952 | /is-regex@1.1.4: |
2852 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} | 6953 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} |
2853 | engines: {node: '>= 0.4'} | 6954 | engines: {node: '>= 0.4'} |
2854 | dependencies: | 6955 | dependencies: |
@@ -2856,101 +6957,185 @@ packages: | |||
2856 | has-tostringtag: 1.0.0 | 6957 | has-tostringtag: 1.0.0 |
2857 | dev: true | 6958 | dev: true |
2858 | 6959 | ||
2859 | /is-relative/1.0.0: | 6960 | /is-shared-array-buffer@1.0.2: |
2860 | resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} | ||
2861 | engines: {node: '>=0.10.0'} | ||
2862 | dependencies: | ||
2863 | is-unc-path: 1.0.0 | ||
2864 | dev: false | ||
2865 | |||
2866 | /is-retry-allowed/1.2.0: | ||
2867 | resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==} | ||
2868 | engines: {node: '>=0.10.0'} | ||
2869 | dev: false | ||
2870 | |||
2871 | /is-shared-array-buffer/1.0.2: | ||
2872 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} | 6961 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} |
2873 | dependencies: | 6962 | dependencies: |
2874 | call-bind: 1.0.2 | 6963 | call-bind: 1.0.2 |
2875 | dev: true | 6964 | dev: true |
2876 | 6965 | ||
2877 | /is-stream/2.0.1: | 6966 | /is-stream@2.0.1: |
2878 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} | 6967 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} |
2879 | engines: {node: '>=8'} | 6968 | engines: {node: '>=8'} |
2880 | dev: false | 6969 | dev: true |
2881 | 6970 | ||
2882 | /is-string/1.0.7: | 6971 | /is-stream@3.0.0: |
6972 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} | ||
6973 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} | ||
6974 | dev: true | ||
6975 | |||
6976 | /is-string@1.0.7: | ||
2883 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} | 6977 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} |
2884 | engines: {node: '>= 0.4'} | 6978 | engines: {node: '>= 0.4'} |
2885 | dependencies: | 6979 | dependencies: |
2886 | has-tostringtag: 1.0.0 | 6980 | has-tostringtag: 1.0.0 |
2887 | dev: true | 6981 | dev: true |
2888 | 6982 | ||
2889 | /is-symbol/1.0.4: | 6983 | /is-symbol@1.0.4: |
2890 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} | 6984 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} |
2891 | engines: {node: '>= 0.4'} | 6985 | engines: {node: '>= 0.4'} |
2892 | dependencies: | 6986 | dependencies: |
2893 | has-symbols: 1.0.3 | 6987 | has-symbols: 1.0.3 |
2894 | dev: true | 6988 | dev: true |
2895 | 6989 | ||
2896 | /is-typedarray/1.0.0: | 6990 | /is-typed-array@1.1.12: |
2897 | resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} | 6991 | resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} |
2898 | dev: false | 6992 | engines: {node: '>= 0.4'} |
6993 | dependencies: | ||
6994 | which-typed-array: 1.1.11 | ||
2899 | 6995 | ||
2900 | /is-unc-path/1.0.0: | 6996 | /is-valid-path@0.1.1: |
2901 | resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} | 6997 | resolution: {integrity: sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==} |
2902 | engines: {node: '>=0.10.0'} | 6998 | engines: {node: '>=0.10.0'} |
2903 | dependencies: | 6999 | dependencies: |
2904 | unc-path-regex: 0.1.2 | 7000 | is-invalid-path: 0.1.0 |
2905 | dev: false | 7001 | dev: true |
2906 | 7002 | ||
2907 | /is-weakref/1.0.2: | 7003 | /is-weakref@1.0.2: |
2908 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} | 7004 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} |
2909 | dependencies: | 7005 | dependencies: |
2910 | call-bind: 1.0.2 | 7006 | call-bind: 1.0.2 |
2911 | dev: true | 7007 | dev: true |
2912 | 7008 | ||
2913 | /is-windows/1.0.2: | 7009 | /is-windows@1.0.2: |
2914 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} | 7010 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} |
2915 | engines: {node: '>=0.10.0'} | 7011 | engines: {node: '>=0.10.0'} |
2916 | dev: false | 7012 | dev: true |
7013 | |||
7014 | /is-wsl@2.2.0: | ||
7015 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} | ||
7016 | engines: {node: '>=8'} | ||
7017 | dependencies: | ||
7018 | is-docker: 2.2.1 | ||
7019 | dev: true | ||
2917 | 7020 | ||
2918 | /isarray/1.0.0: | 7021 | /isarray@1.0.0: |
2919 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} | 7022 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} |
2920 | dev: false | ||
2921 | 7023 | ||
2922 | /isexe/2.0.0: | 7024 | /isarray@2.0.5: |
7025 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} | ||
7026 | dev: true | ||
7027 | |||
7028 | /isexe@2.0.0: | ||
2923 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} | 7029 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} |
2924 | 7030 | ||
2925 | /isobject/2.1.0: | 7031 | /isobject@2.1.0: |
2926 | resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} | 7032 | resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} |
2927 | engines: {node: '>=0.10.0'} | 7033 | engines: {node: '>=0.10.0'} |
2928 | dependencies: | 7034 | dependencies: |
2929 | isarray: 1.0.0 | 7035 | isarray: 1.0.0 |
2930 | dev: false | 7036 | dev: true |
2931 | 7037 | ||
2932 | /isobject/3.0.1: | 7038 | /isobject@3.0.1: |
2933 | resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} | 7039 | resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} |
2934 | engines: {node: '>=0.10.0'} | 7040 | engines: {node: '>=0.10.0'} |
7041 | dev: true | ||
7042 | |||
7043 | /jest-diff@25.5.0: | ||
7044 | resolution: {integrity: sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==} | ||
7045 | engines: {node: '>= 8.3'} | ||
7046 | dependencies: | ||
7047 | chalk: 3.0.0 | ||
7048 | diff-sequences: 25.2.6 | ||
7049 | jest-get-type: 25.2.6 | ||
7050 | pretty-format: 25.5.0 | ||
7051 | dev: true | ||
7052 | |||
7053 | /jest-diff@29.7.0: | ||
7054 | resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} | ||
7055 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} | ||
7056 | dependencies: | ||
7057 | chalk: 4.1.2 | ||
7058 | diff-sequences: 29.6.3 | ||
7059 | jest-get-type: 29.6.3 | ||
7060 | pretty-format: 29.7.0 | ||
7061 | dev: true | ||
7062 | |||
7063 | /jest-get-type@25.2.6: | ||
7064 | resolution: {integrity: sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==} | ||
7065 | engines: {node: '>= 8.3'} | ||
7066 | dev: true | ||
7067 | |||
7068 | /jest-get-type@29.6.3: | ||
7069 | resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} | ||
7070 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} | ||
7071 | dev: true | ||
7072 | |||
7073 | /jest-matcher-utils@25.5.0: | ||
7074 | resolution: {integrity: sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==} | ||
7075 | engines: {node: '>= 8.3'} | ||
7076 | dependencies: | ||
7077 | chalk: 3.0.0 | ||
7078 | jest-diff: 25.5.0 | ||
7079 | jest-get-type: 25.2.6 | ||
7080 | pretty-format: 25.5.0 | ||
7081 | dev: true | ||
7082 | |||
7083 | /jest-util@29.7.0: | ||
7084 | resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} | ||
7085 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} | ||
7086 | dependencies: | ||
7087 | '@jest/types': 29.6.3 | ||
7088 | '@types/node': 20.7.2 | ||
7089 | chalk: 4.1.2 | ||
7090 | ci-info: 3.8.0 | ||
7091 | graceful-fs: 4.2.11 | ||
7092 | picomatch: 2.3.1 | ||
7093 | dev: true | ||
7094 | |||
7095 | /jest-worker@27.5.1: | ||
7096 | resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} | ||
7097 | engines: {node: '>= 10.13.0'} | ||
7098 | dependencies: | ||
7099 | '@types/node': 20.7.2 | ||
7100 | merge-stream: 2.0.0 | ||
7101 | supports-color: 8.1.1 | ||
7102 | |||
7103 | /jest-worker@29.7.0: | ||
7104 | resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} | ||
7105 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} | ||
7106 | dependencies: | ||
7107 | '@types/node': 20.7.2 | ||
7108 | jest-util: 29.7.0 | ||
7109 | merge-stream: 2.0.0 | ||
7110 | supports-color: 8.1.1 | ||
7111 | dev: true | ||
7112 | |||
7113 | /jmespath@0.16.0: | ||
7114 | resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} | ||
7115 | engines: {node: '>= 0.6.0'} | ||
2935 | dev: false | 7116 | dev: false |
2936 | 7117 | ||
2937 | /isstream/0.1.2: | 7118 | /jose@4.14.6: |
2938 | resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} | 7119 | resolution: {integrity: sha512-EqJPEUlZD0/CSUMubKtMaYUOtWe91tZXTWMJZoKSbLk+KtdhNdcvppH8lA9XwVu2V4Ailvsj0GBZJ2ZwDjfesQ==} |
2939 | dev: false | 7120 | dev: false |
2940 | 7121 | ||
2941 | /isurl/1.0.0: | 7122 | /joycon@3.1.1: |
2942 | resolution: {integrity: sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==} | 7123 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} |
2943 | engines: {node: '>= 4'} | 7124 | engines: {node: '>=10'} |
2944 | dependencies: | 7125 | |
2945 | has-to-string-tag-x: 1.4.1 | 7126 | /js-stringify@1.0.2: |
2946 | is-object: 1.0.2 | 7127 | resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==} |
2947 | dev: false | 7128 | dev: false |
2948 | 7129 | ||
2949 | /js-tokens/4.0.0: | 7130 | /js-tokens@3.0.2: |
7131 | resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==} | ||
7132 | dev: true | ||
7133 | |||
7134 | /js-tokens@4.0.0: | ||
2950 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} | 7135 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} |
2951 | dev: true | 7136 | dev: true |
2952 | 7137 | ||
2953 | /js-yaml/3.14.1: | 7138 | /js-yaml@3.14.1: |
2954 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} | 7139 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} |
2955 | hasBin: true | 7140 | hasBin: true |
2956 | dependencies: | 7141 | dependencies: |
@@ -2958,164 +7143,162 @@ packages: | |||
2958 | esprima: 4.0.1 | 7143 | esprima: 4.0.1 |
2959 | dev: true | 7144 | dev: true |
2960 | 7145 | ||
2961 | /jsbn/0.1.1: | 7146 | /js-yaml@4.1.0: |
2962 | resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} | 7147 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} |
2963 | dev: false | 7148 | hasBin: true |
7149 | dependencies: | ||
7150 | argparse: 2.0.1 | ||
7151 | dev: true | ||
2964 | 7152 | ||
2965 | /json-buffer/3.0.0: | 7153 | /jsesc@0.5.0: |
2966 | resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} | 7154 | resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} |
2967 | dev: false | 7155 | hasBin: true |
7156 | dev: true | ||
2968 | 7157 | ||
2969 | /json-fixer/1.6.15: | 7158 | /jsesc@2.5.2: |
2970 | resolution: {integrity: sha512-TuDuZ5KrgyjoCIppdPXBMqiGfota55+odM+j2cQ5rt/XKyKmqGB3Whz1F8SN8+60yYGy/Nu5lbRZ+rx8kBIvBw==} | 7159 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} |
2971 | engines: {node: '>=10'} | 7160 | engines: {node: '>=4'} |
7161 | hasBin: true | ||
7162 | dev: true | ||
7163 | |||
7164 | /jsesc@3.0.2: | ||
7165 | resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} | ||
7166 | engines: {node: '>=6'} | ||
7167 | hasBin: true | ||
7168 | dev: true | ||
7169 | |||
7170 | /json-buffer@3.0.1: | ||
7171 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} | ||
7172 | |||
7173 | /json-parse-even-better-errors@2.3.1: | ||
7174 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} | ||
7175 | dev: true | ||
7176 | |||
7177 | /json-schema-deref-sync@0.14.0: | ||
7178 | resolution: {integrity: sha512-yGR1xmhdiD6R0MSrwWcFxQzAj5b3i5Gb/mt5tvQKgFMMeNe0KZYNEN/jWr7G+xn39Azqgcvk4ZKMs8dQl8e4wA==} | ||
7179 | engines: {node: '>=6.0.0'} | ||
2972 | dependencies: | 7180 | dependencies: |
2973 | '@babel/runtime': 7.20.6 | 7181 | clone: 2.1.2 |
2974 | chalk: 4.1.2 | 7182 | dag-map: 1.0.2 |
2975 | pegjs: 0.10.0 | 7183 | is-valid-path: 0.1.1 |
7184 | lodash: 4.17.21 | ||
7185 | md5: 2.2.1 | ||
7186 | memory-cache: 0.2.0 | ||
7187 | traverse: 0.6.7 | ||
7188 | valid-url: 1.0.9 | ||
2976 | dev: true | 7189 | dev: true |
2977 | 7190 | ||
2978 | /json-schema-traverse/0.4.1: | 7191 | /json-schema-traverse@0.4.1: |
2979 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} | 7192 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} |
7193 | dev: true | ||
2980 | 7194 | ||
2981 | /json-schema-traverse/1.0.0: | 7195 | /json-schema-traverse@1.0.0: |
2982 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} | 7196 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} |
2983 | dev: true | 7197 | dev: true |
2984 | 7198 | ||
2985 | /json-schema/0.4.0: | 7199 | /json-stable-stringify-without-jsonify@1.0.1: |
2986 | resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} | ||
2987 | dev: false | ||
2988 | |||
2989 | /json-stable-stringify-without-jsonify/1.0.1: | ||
2990 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} | 7200 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} |
2991 | dev: true | 7201 | dev: true |
2992 | 7202 | ||
2993 | /json-stringify-safe/5.0.1: | 7203 | /json5@1.0.2: |
2994 | resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} | 7204 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} |
2995 | dev: false | ||
2996 | |||
2997 | /json5/1.0.1: | ||
2998 | resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} | ||
2999 | hasBin: true | 7205 | hasBin: true |
3000 | dependencies: | 7206 | dependencies: |
3001 | minimist: 1.2.7 | 7207 | minimist: 1.2.8 |
7208 | dev: true | ||
7209 | |||
7210 | /json5@2.2.3: | ||
7211 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} | ||
7212 | engines: {node: '>=6'} | ||
7213 | hasBin: true | ||
3002 | dev: true | 7214 | dev: true |
3003 | 7215 | ||
3004 | /jsonfile/4.0.0: | 7216 | /jsonfile@4.0.0: |
3005 | resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} | 7217 | resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} |
3006 | optionalDependencies: | 7218 | optionalDependencies: |
3007 | graceful-fs: 4.2.10 | 7219 | graceful-fs: 4.2.11 |
3008 | dev: false | 7220 | dev: true |
3009 | 7221 | ||
3010 | /jsonfile/6.1.0: | 7222 | /jsonfile@6.1.0: |
3011 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} | 7223 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} |
3012 | dependencies: | 7224 | dependencies: |
3013 | universalify: 2.0.0 | 7225 | universalify: 2.0.0 |
3014 | optionalDependencies: | 7226 | optionalDependencies: |
3015 | graceful-fs: 4.2.10 | 7227 | graceful-fs: 4.2.11 |
3016 | dev: false | ||
3017 | |||
3018 | /jsonwebtoken/8.5.1: | ||
3019 | resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} | ||
3020 | engines: {node: '>=4', npm: '>=1.4.28'} | ||
3021 | dependencies: | ||
3022 | jws: 3.2.2 | ||
3023 | lodash.includes: 4.3.0 | ||
3024 | lodash.isboolean: 3.0.3 | ||
3025 | lodash.isinteger: 4.0.4 | ||
3026 | lodash.isnumber: 3.0.3 | ||
3027 | lodash.isplainobject: 4.0.6 | ||
3028 | lodash.isstring: 4.0.1 | ||
3029 | lodash.once: 4.1.1 | ||
3030 | ms: 2.1.3 | ||
3031 | semver: 5.7.1 | ||
3032 | dev: false | ||
3033 | 7228 | ||
3034 | /jsprim/1.4.2: | 7229 | /junk@3.1.0: |
3035 | resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} | 7230 | resolution: {integrity: sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==} |
3036 | engines: {node: '>=0.6.0'} | 7231 | engines: {node: '>=8'} |
3037 | dependencies: | 7232 | dev: true |
3038 | assert-plus: 1.0.0 | ||
3039 | extsprintf: 1.3.0 | ||
3040 | json-schema: 0.4.0 | ||
3041 | verror: 1.10.0 | ||
3042 | dev: false | ||
3043 | |||
3044 | /jwa/1.4.1: | ||
3045 | resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} | ||
3046 | dependencies: | ||
3047 | buffer-equal-constant-time: 1.0.1 | ||
3048 | ecdsa-sig-formatter: 1.0.11 | ||
3049 | safe-buffer: 5.2.1 | ||
3050 | dev: false | ||
3051 | |||
3052 | /jws/3.2.2: | ||
3053 | resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} | ||
3054 | dependencies: | ||
3055 | jwa: 1.4.1 | ||
3056 | safe-buffer: 5.2.1 | ||
3057 | dev: false | ||
3058 | 7233 | ||
3059 | /keyv/3.0.0: | 7234 | /keyv@4.5.3: |
3060 | resolution: {integrity: sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==} | 7235 | resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} |
3061 | dependencies: | 7236 | dependencies: |
3062 | json-buffer: 3.0.0 | 7237 | json-buffer: 3.0.1 |
3063 | dev: false | ||
3064 | 7238 | ||
3065 | /kind-of/2.0.1: | 7239 | /kind-of@3.2.2: |
3066 | resolution: {integrity: sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==} | ||
3067 | engines: {node: '>=0.10.0'} | ||
3068 | dependencies: | ||
3069 | is-buffer: 1.1.6 | ||
3070 | dev: false | ||
3071 | |||
3072 | /kind-of/3.2.2: | ||
3073 | resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} | 7240 | resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} |
3074 | engines: {node: '>=0.10.0'} | 7241 | engines: {node: '>=0.10.0'} |
3075 | dependencies: | 7242 | dependencies: |
3076 | is-buffer: 1.1.6 | 7243 | is-buffer: 1.1.6 |
3077 | dev: false | 7244 | dev: true |
3078 | 7245 | ||
3079 | /kind-of/4.0.0: | 7246 | /kind-of@4.0.0: |
3080 | resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} | 7247 | resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} |
3081 | engines: {node: '>=0.10.0'} | 7248 | engines: {node: '>=0.10.0'} |
3082 | dependencies: | 7249 | dependencies: |
3083 | is-buffer: 1.1.6 | 7250 | is-buffer: 1.1.6 |
3084 | dev: false | 7251 | dev: true |
3085 | 7252 | ||
3086 | /kind-of/5.1.0: | 7253 | /kind-of@5.1.0: |
3087 | resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} | 7254 | resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} |
3088 | engines: {node: '>=0.10.0'} | 7255 | engines: {node: '>=0.10.0'} |
3089 | dev: false | 7256 | dev: true |
3090 | 7257 | ||
3091 | /kind-of/6.0.3: | 7258 | /kind-of@6.0.3: |
3092 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} | 7259 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} |
3093 | engines: {node: '>=0.10.0'} | 7260 | engines: {node: '>=0.10.0'} |
3094 | dev: false | ||
3095 | 7261 | ||
3096 | /kleur/2.0.2: | 7262 | /kleur@3.0.3: |
3097 | resolution: {integrity: sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ==} | 7263 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} |
3098 | engines: {node: '>=6'} | 7264 | engines: {node: '>=6'} |
3099 | deprecated: Please upgrade to kleur@3 or migrate to 'ansi-colors' if you prefer the old syntax. Visit <https://github.com/lukeed/kleur/releases/tag/v3.0.0\> for migration path(s). | 7265 | dev: true |
3100 | dev: false | ||
3101 | 7266 | ||
3102 | /kleur/4.1.5: | 7267 | /kleur@4.1.5: |
3103 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} | 7268 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} |
3104 | engines: {node: '>=6'} | 7269 | engines: {node: '>=6'} |
7270 | |||
7271 | /knex-dynamic-connection@3.1.0(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6): | ||
7272 | resolution: {integrity: sha512-owRQ9cHBtaBUfYBs/dyt1s/Y0PYwUE66apnfYpzzMTkN2tNlzC1s7owqDJleHOelhJERZgd4jd1BZgcdfXLEhQ==} | ||
7273 | engines: {node: '>=14.0.0'} | ||
7274 | dependencies: | ||
7275 | debug: 4.3.4 | ||
7276 | knex: 2.5.1(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6) | ||
7277 | transitivePeerDependencies: | ||
7278 | - better-sqlite3 | ||
7279 | - mysql | ||
7280 | - mysql2 | ||
7281 | - pg | ||
7282 | - pg-native | ||
7283 | - sqlite3 | ||
7284 | - supports-color | ||
7285 | - tedious | ||
3105 | dev: false | 7286 | dev: false |
3106 | 7287 | ||
3107 | /knex/0.21.21_siu2g6ofdcuoryphtpy44uq2je: | 7288 | /knex@2.5.1(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6): |
3108 | resolution: {integrity: sha512-cjw5qO1EzVKjbywcVa61IQJMLt7PfYBRI/2NwCA/B9beXgbw652wDNLz+JM+UKKNsfwprq0ugYqBYc9q4JN36A==} | 7289 | resolution: {integrity: sha512-z78DgGKUr4SE/6cm7ku+jHvFT0X97aERh/f0MUKAKgFnwCYBEW4TFBqtHWFYiJFid7fMrtpZ/gxJthvz5mEByA==} |
3109 | engines: {node: '>=10'} | 7290 | engines: {node: '>=12'} |
3110 | hasBin: true | 7291 | hasBin: true |
3111 | peerDependencies: | 7292 | peerDependencies: |
3112 | mssql: ^6.2.1 | 7293 | better-sqlite3: '*' |
3113 | mysql: ^2.18.1 | 7294 | mysql: '*' |
3114 | mysql2: ^2.1.0 | 7295 | mysql2: '*' |
3115 | pg: ^8.3.0 | 7296 | pg: '*' |
3116 | sqlite3: ^5.0.0 | 7297 | pg-native: '*' |
7298 | sqlite3: '*' | ||
7299 | tedious: '*' | ||
3117 | peerDependenciesMeta: | 7300 | peerDependenciesMeta: |
3118 | mssql: | 7301 | better-sqlite3: |
3119 | optional: true | 7302 | optional: true |
3120 | mysql: | 7303 | mysql: |
3121 | optional: true | 7304 | optional: true |
@@ -3123,50 +7306,46 @@ packages: | |||
3123 | optional: true | 7306 | optional: true |
3124 | pg: | 7307 | pg: |
3125 | optional: true | 7308 | optional: true |
7309 | pg-native: | ||
7310 | optional: true | ||
3126 | sqlite3: | 7311 | sqlite3: |
3127 | optional: true | 7312 | optional: true |
7313 | tedious: | ||
7314 | optional: true | ||
3128 | dependencies: | 7315 | dependencies: |
3129 | colorette: 1.2.1 | 7316 | colorette: 2.0.19 |
3130 | commander: 6.2.1 | 7317 | commander: 10.0.1 |
3131 | debug: 4.3.1 | 7318 | debug: 4.3.4 |
7319 | escalade: 3.1.1 | ||
3132 | esm: 3.2.25 | 7320 | esm: 3.2.25 |
3133 | getopts: 2.2.5 | 7321 | get-package-type: 0.1.0 |
7322 | getopts: 2.3.0 | ||
3134 | interpret: 2.2.0 | 7323 | interpret: 2.2.0 |
3135 | liftoff: 3.1.0 | ||
3136 | lodash: 4.17.21 | 7324 | lodash: 4.17.21 |
3137 | mysql: 2.18.1 | 7325 | mysql: 2.18.1 |
3138 | pg: 8.8.0 | 7326 | pg: 8.11.1 |
3139 | pg-connection-string: 2.4.0 | 7327 | pg-connection-string: 2.6.1 |
3140 | sqlite3: 4.2.0 | 7328 | rechoir: 0.8.0 |
7329 | resolve-from: 5.0.0 | ||
7330 | sqlite3: 5.1.6 | ||
3141 | tarn: 3.0.2 | 7331 | tarn: 3.0.2 |
3142 | tildify: 2.0.0 | 7332 | tildify: 2.0.0 |
3143 | v8flags: 3.2.0 | ||
3144 | transitivePeerDependencies: | 7333 | transitivePeerDependencies: |
3145 | - supports-color | 7334 | - supports-color |
3146 | dev: false | 7335 | dev: false |
3147 | 7336 | ||
3148 | /koalas/1.0.2: | 7337 | /launch-editor@2.6.0: |
3149 | resolution: {integrity: sha512-RYhBbYaTTTHId3l6fnMZc3eGQNW6FVCqMG6AMwA5I1Mafr6AflaXeoi6x3xQuATRotGYRLk6+1ELZH4dstFNOA==} | 7338 | resolution: {integrity: sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==} |
3150 | engines: {node: '>=0.10.0'} | ||
3151 | dev: false | ||
3152 | |||
3153 | /kuler/2.0.0: | ||
3154 | resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} | ||
3155 | dev: false | ||
3156 | |||
3157 | /lazy-cache/0.2.7: | ||
3158 | resolution: {integrity: sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==} | ||
3159 | engines: {node: '>=0.10.0'} | ||
3160 | dev: false | ||
3161 | |||
3162 | /lazy-cache/2.0.2: | ||
3163 | resolution: {integrity: sha512-7vp2Acd2+Kz4XkzxGxaB1FWOi8KjWIWsgdfD5MCb86DWvlLqhRPM+d6Pro3iNEL5VT9mstz5hKAlcd+QR6H3aA==} | ||
3164 | engines: {node: '>=0.10.0'} | ||
3165 | dependencies: | 7339 | dependencies: |
3166 | set-getter: 0.1.1 | 7340 | picocolors: 1.0.0 |
3167 | dev: false | 7341 | shell-quote: 1.8.1 |
7342 | dev: true | ||
3168 | 7343 | ||
3169 | /levn/0.4.1: | 7344 | /leven@3.1.0: |
7345 | resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} | ||
7346 | engines: {node: '>=6'} | ||
7347 | |||
7348 | /levn@0.4.1: | ||
3170 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} | 7349 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} |
3171 | engines: {node: '>= 0.8.0'} | 7350 | engines: {node: '>= 0.8.0'} |
3172 | dependencies: | 7351 | dependencies: |
@@ -3174,162 +7353,279 @@ packages: | |||
3174 | type-check: 0.4.0 | 7353 | type-check: 0.4.0 |
3175 | dev: true | 7354 | dev: true |
3176 | 7355 | ||
3177 | /liftoff/3.1.0: | 7356 | /lilconfig@2.1.0: |
3178 | resolution: {integrity: sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==} | 7357 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} |
3179 | engines: {node: '>= 0.8'} | 7358 | engines: {node: '>=10'} |
7359 | dev: true | ||
7360 | |||
7361 | /lines-and-columns@1.2.4: | ||
7362 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} | ||
7363 | dev: true | ||
7364 | |||
7365 | /listify@1.0.3: | ||
7366 | resolution: {integrity: sha512-083swF7iH7bx8666zdzBColpgEuy46HjN3r1isD4zV6Ix7FuHfb/2/WVnl4CH8hjuoWeFF7P5KkKNXUnJCFEJg==} | ||
7367 | engines: {node: '>= 0.4'} | ||
7368 | dev: true | ||
7369 | |||
7370 | /loader-runner@4.3.0: | ||
7371 | resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} | ||
7372 | engines: {node: '>=6.11.5'} | ||
7373 | dev: true | ||
7374 | |||
7375 | /loader-utils@2.0.4: | ||
7376 | resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} | ||
7377 | engines: {node: '>=8.9.0'} | ||
3180 | dependencies: | 7378 | dependencies: |
3181 | extend: 3.0.2 | 7379 | big.js: 5.2.2 |
3182 | findup-sync: 3.0.0 | 7380 | emojis-list: 3.0.0 |
3183 | fined: 1.2.0 | 7381 | json5: 2.2.3 |
3184 | flagged-respawn: 1.0.1 | 7382 | dev: true |
3185 | is-plain-object: 2.0.4 | ||
3186 | object.map: 1.0.1 | ||
3187 | rechoir: 0.6.2 | ||
3188 | resolve: 1.22.1 | ||
3189 | transitivePeerDependencies: | ||
3190 | - supports-color | ||
3191 | dev: false | ||
3192 | 7383 | ||
3193 | /locate-path/5.0.0: | 7384 | /locate-path@3.0.0: |
7385 | resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} | ||
7386 | engines: {node: '>=6'} | ||
7387 | dependencies: | ||
7388 | p-locate: 3.0.0 | ||
7389 | path-exists: 3.0.0 | ||
7390 | dev: true | ||
7391 | |||
7392 | /locate-path@5.0.0: | ||
3194 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} | 7393 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} |
3195 | engines: {node: '>=8'} | 7394 | engines: {node: '>=8'} |
3196 | dependencies: | 7395 | dependencies: |
3197 | p-locate: 4.1.0 | 7396 | p-locate: 4.1.0 |
3198 | dev: true | 7397 | dev: true |
3199 | 7398 | ||
3200 | /lodash.includes/4.3.0: | 7399 | /locate-path@6.0.0: |
3201 | resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} | 7400 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} |
3202 | dev: false | 7401 | engines: {node: '>=10'} |
7402 | dependencies: | ||
7403 | p-locate: 5.0.0 | ||
7404 | dev: true | ||
3203 | 7405 | ||
3204 | /lodash.isboolean/3.0.3: | 7406 | /lodash.debounce@4.0.8: |
3205 | resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} | 7407 | resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} |
3206 | dev: false | 7408 | dev: true |
3207 | 7409 | ||
3208 | /lodash.isinteger/4.0.4: | 7410 | /lodash.flatten@4.4.0: |
3209 | resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} | 7411 | resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} |
3210 | dev: false | 7412 | dev: true |
3211 | 7413 | ||
3212 | /lodash.isnumber/3.0.3: | 7414 | /lodash.get@4.4.2: |
3213 | resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} | 7415 | resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} |
3214 | dev: false | 7416 | dev: true |
3215 | 7417 | ||
3216 | /lodash.isplainobject/4.0.6: | 7418 | /lodash.isequal@4.5.0: |
3217 | resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} | 7419 | resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} |
3218 | dev: false | 7420 | dev: true |
3219 | 7421 | ||
3220 | /lodash.isstring/4.0.1: | 7422 | /lodash.memoize@4.1.2: |
3221 | resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} | 7423 | resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} |
3222 | dev: false | 7424 | dev: true |
3223 | 7425 | ||
3224 | /lodash.merge/4.6.2: | 7426 | /lodash.merge@4.6.2: |
3225 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} | 7427 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} |
3226 | dev: true | 7428 | dev: true |
3227 | 7429 | ||
3228 | /lodash.once/4.1.1: | 7430 | /lodash.set@4.3.2: |
3229 | resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} | 7431 | resolution: {integrity: sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==} |
3230 | dev: false | 7432 | dev: true |
3231 | 7433 | ||
3232 | /lodash.truncate/4.4.2: | 7434 | /lodash.uniq@4.5.0: |
3233 | resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} | 7435 | resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} |
3234 | dev: true | 7436 | dev: true |
3235 | 7437 | ||
3236 | /lodash/4.17.21: | 7438 | /lodash@4.17.21: |
3237 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} | 7439 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} |
3238 | 7440 | ||
3239 | /log-ok/0.1.1: | 7441 | /log-update@4.0.0: |
3240 | resolution: {integrity: sha512-cc8VrkS6C+9TFuYAwuHpshrcrGRAv7d0tUJ0GdM72ZBlKXtlgjUZF84O+OhQUdiVHoF7U/nVxwpjOdwUJ8d3Vg==} | 7442 | resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} |
3241 | engines: {node: '>=0.10.0'} | 7443 | engines: {node: '>=10'} |
3242 | dependencies: | 7444 | dependencies: |
3243 | ansi-green: 0.1.1 | 7445 | ansi-escapes: 4.3.2 |
3244 | success-symbol: 0.1.0 | 7446 | cli-cursor: 3.1.0 |
3245 | dev: false | 7447 | slice-ansi: 4.0.0 |
7448 | wrap-ansi: 6.2.0 | ||
3246 | 7449 | ||
3247 | /log-utils/0.2.1: | 7450 | /loupe@2.3.6: |
3248 | resolution: {integrity: sha512-udyegKoMz9eGfpKAX//Khy7sVAZ8b1F7oLDnepZv/1/y8xTvsyPgqQrM94eG8V0vcc2BieYI2kVW4+aa6m+8Qw==} | 7451 | resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} |
3249 | engines: {node: '>=0.10.0'} | ||
3250 | dependencies: | 7452 | dependencies: |
3251 | ansi-colors: 0.2.0 | 7453 | get-func-name: 2.0.2 |
3252 | error-symbol: 0.1.0 | 7454 | dev: true |
3253 | info-symbol: 0.1.0 | ||
3254 | log-ok: 0.1.1 | ||
3255 | success-symbol: 0.1.0 | ||
3256 | time-stamp: 1.1.0 | ||
3257 | warning-symbol: 0.1.0 | ||
3258 | dev: false | ||
3259 | 7455 | ||
3260 | /logform/2.4.2: | 7456 | /lower-case@2.0.2: |
3261 | resolution: {integrity: sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==} | 7457 | resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} |
3262 | dependencies: | 7458 | dependencies: |
3263 | '@colors/colors': 1.5.0 | 7459 | tslib: 2.6.2 |
3264 | fecha: 4.2.3 | ||
3265 | ms: 2.1.3 | ||
3266 | safe-stable-stringify: 2.4.1 | ||
3267 | triple-beam: 1.3.0 | ||
3268 | dev: false | ||
3269 | 7460 | ||
3270 | /lowercase-keys/1.0.0: | 7461 | /lowercase-keys@2.0.0: |
3271 | resolution: {integrity: sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==} | 7462 | resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} |
3272 | engines: {node: '>=0.10.0'} | 7463 | engines: {node: '>=8'} |
3273 | dev: false | ||
3274 | |||
3275 | /lowercase-keys/1.0.1: | ||
3276 | resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} | ||
3277 | engines: {node: '>=0.10.0'} | ||
3278 | dev: false | 7464 | dev: false |
3279 | 7465 | ||
3280 | /lru-cache/4.1.5: | 7466 | /lru-cache@4.1.5: |
3281 | resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} | 7467 | resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} |
3282 | dependencies: | 7468 | dependencies: |
3283 | pseudomap: 1.0.2 | 7469 | pseudomap: 1.0.2 |
3284 | yallist: 2.1.2 | 7470 | yallist: 2.1.2 |
3285 | dev: false | 7471 | dev: true |
7472 | |||
7473 | /lru-cache@5.1.1: | ||
7474 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} | ||
7475 | dependencies: | ||
7476 | yallist: 3.1.1 | ||
7477 | dev: true | ||
3286 | 7478 | ||
3287 | /lru-cache/6.0.0: | 7479 | /lru-cache@6.0.0: |
3288 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} | 7480 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} |
3289 | engines: {node: '>=10'} | 7481 | engines: {node: '>=10'} |
3290 | dependencies: | 7482 | dependencies: |
3291 | yallist: 4.0.0 | 7483 | yallist: 4.0.0 |
3292 | 7484 | ||
3293 | /lru_map/0.3.3: | 7485 | /luxon@3.3.0: |
3294 | resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} | 7486 | resolution: {integrity: sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==} |
7487 | engines: {node: '>=12'} | ||
3295 | dev: false | 7488 | dev: false |
3296 | 7489 | ||
3297 | /macroable/1.0.0: | 7490 | /luxon@3.4.3: |
3298 | resolution: {integrity: sha512-nsPllAMlOY4q0PpqybUtfvSeLtAC6/5nt1LIPtjp3vYloMeMUSzaLVJadNP57+ZysJEb9Q9HBzqqM69zupKwfg==} | 7491 | resolution: {integrity: sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg==} |
7492 | engines: {node: '>=12'} | ||
7493 | |||
7494 | /macroable@7.0.2: | ||
7495 | resolution: {integrity: sha512-QS9p+Q20YBxpE0dJBnF6CPURP7p1GUsxnhTxTWH5nG3A1F5w8Rg3T4Xyh5UlrFSbHp88oOciVP/0agsNLhkHdQ==} | ||
7496 | |||
7497 | /make-dir@3.1.0: | ||
7498 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} | ||
7499 | engines: {node: '>=8'} | ||
3299 | dependencies: | 7500 | dependencies: |
3300 | node-exceptions: 2.0.2 | 7501 | semver: 6.3.1 |
3301 | dev: false | ||
3302 | 7502 | ||
3303 | /make-iterator/1.0.1: | 7503 | /make-fetch-happen@9.1.0: |
3304 | resolution: {integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==} | 7504 | resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} |
3305 | engines: {node: '>=0.10.0'} | 7505 | engines: {node: '>= 10'} |
7506 | requiresBuild: true | ||
3306 | dependencies: | 7507 | dependencies: |
3307 | kind-of: 6.0.3 | 7508 | agentkeepalive: 4.5.0 |
7509 | cacache: 15.3.0 | ||
7510 | http-cache-semantics: 4.1.1 | ||
7511 | http-proxy-agent: 4.0.1 | ||
7512 | https-proxy-agent: 5.0.1 | ||
7513 | is-lambda: 1.0.1 | ||
7514 | lru-cache: 6.0.0 | ||
7515 | minipass: 3.3.6 | ||
7516 | minipass-collect: 1.0.2 | ||
7517 | minipass-fetch: 1.4.1 | ||
7518 | minipass-flush: 1.0.5 | ||
7519 | minipass-pipeline: 1.2.4 | ||
7520 | negotiator: 0.6.3 | ||
7521 | promise-retry: 2.0.1 | ||
7522 | socks-proxy-agent: 6.2.1 | ||
7523 | ssri: 8.0.1 | ||
7524 | transitivePeerDependencies: | ||
7525 | - bluebird | ||
7526 | - supports-color | ||
3308 | dev: false | 7527 | dev: false |
7528 | optional: true | ||
7529 | |||
7530 | /map-age-cleaner@0.1.3: | ||
7531 | resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} | ||
7532 | engines: {node: '>=6'} | ||
7533 | dependencies: | ||
7534 | p-defer: 1.0.0 | ||
7535 | dev: true | ||
3309 | 7536 | ||
3310 | /map-cache/0.2.2: | 7537 | /map-cache@0.2.2: |
3311 | resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} | 7538 | resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} |
3312 | engines: {node: '>=0.10.0'} | 7539 | engines: {node: '>=0.10.0'} |
3313 | dev: false | 7540 | dev: true |
3314 | 7541 | ||
3315 | /map-visit/1.0.0: | 7542 | /map-visit@1.0.0: |
3316 | resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} | 7543 | resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} |
3317 | engines: {node: '>=0.10.0'} | 7544 | engines: {node: '>=0.10.0'} |
3318 | dependencies: | 7545 | dependencies: |
3319 | object-visit: 1.0.1 | 7546 | object-visit: 1.0.1 |
3320 | dev: false | 7547 | dev: true |
3321 | 7548 | ||
3322 | /media-typer/0.3.0: | 7549 | /marked-terminal@5.2.0(marked@4.3.0): |
7550 | resolution: {integrity: sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==} | ||
7551 | engines: {node: '>=14.13.1 || >=16.0.0'} | ||
7552 | peerDependencies: | ||
7553 | marked: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 | ||
7554 | dependencies: | ||
7555 | ansi-escapes: 6.2.0 | ||
7556 | cardinal: 2.1.1 | ||
7557 | chalk: 5.3.0 | ||
7558 | cli-table3: 0.6.3 | ||
7559 | marked: 4.3.0 | ||
7560 | node-emoji: 1.11.0 | ||
7561 | supports-hyperlinks: 2.3.0 | ||
7562 | dev: true | ||
7563 | |||
7564 | /marked@4.3.0: | ||
7565 | resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} | ||
7566 | engines: {node: '>= 12'} | ||
7567 | hasBin: true | ||
7568 | dev: true | ||
7569 | |||
7570 | /md5@2.2.1: | ||
7571 | resolution: {integrity: sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==} | ||
7572 | dependencies: | ||
7573 | charenc: 0.0.2 | ||
7574 | crypt: 0.0.2 | ||
7575 | is-buffer: 1.1.6 | ||
7576 | dev: true | ||
7577 | |||
7578 | /mdn-data@2.0.28: | ||
7579 | resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} | ||
7580 | dev: true | ||
7581 | |||
7582 | /mdn-data@2.0.30: | ||
7583 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} | ||
7584 | dev: true | ||
7585 | |||
7586 | /media-typer@0.3.0: | ||
3323 | resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} | 7587 | resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} |
3324 | engines: {node: '>= 0.6'} | 7588 | engines: {node: '>= 0.6'} |
3325 | dev: false | ||
3326 | 7589 | ||
3327 | /media-typer/1.1.0: | 7590 | /media-typer@1.1.0: |
3328 | resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} | 7591 | resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} |
3329 | engines: {node: '>= 0.8'} | 7592 | engines: {node: '>= 0.8'} |
3330 | dev: false | ||
3331 | 7593 | ||
3332 | /micromatch/3.1.10: | 7594 | /mem@8.1.1: |
7595 | resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} | ||
7596 | engines: {node: '>=10'} | ||
7597 | dependencies: | ||
7598 | map-age-cleaner: 0.1.3 | ||
7599 | mimic-fn: 3.1.0 | ||
7600 | dev: true | ||
7601 | |||
7602 | /memfs@3.5.3: | ||
7603 | resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} | ||
7604 | engines: {node: '>= 4.0.0'} | ||
7605 | dependencies: | ||
7606 | fs-monkey: 1.0.5 | ||
7607 | |||
7608 | /memory-cache@0.2.0: | ||
7609 | resolution: {integrity: sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==} | ||
7610 | dev: true | ||
7611 | |||
7612 | /merge-descriptors@1.0.1: | ||
7613 | resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} | ||
7614 | dev: true | ||
7615 | |||
7616 | /merge-stream@2.0.0: | ||
7617 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} | ||
7618 | |||
7619 | /merge2@1.4.1: | ||
7620 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} | ||
7621 | engines: {node: '>= 8'} | ||
7622 | |||
7623 | /methods@1.1.2: | ||
7624 | resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} | ||
7625 | engines: {node: '>= 0.6'} | ||
7626 | dev: true | ||
7627 | |||
7628 | /micromatch@3.1.10: | ||
3333 | resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} | 7629 | resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} |
3334 | engines: {node: '>=0.10.0'} | 7630 | engines: {node: '>=0.10.0'} |
3335 | dependencies: | 7631 | dependencies: |
@@ -3348,121 +7644,256 @@ packages: | |||
3348 | to-regex: 3.0.2 | 7644 | to-regex: 3.0.2 |
3349 | transitivePeerDependencies: | 7645 | transitivePeerDependencies: |
3350 | - supports-color | 7646 | - supports-color |
3351 | dev: false | 7647 | dev: true |
3352 | 7648 | ||
3353 | /mime-db/1.52.0: | 7649 | /micromatch@4.0.5: |
7650 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} | ||
7651 | engines: {node: '>=8.6'} | ||
7652 | dependencies: | ||
7653 | braces: 3.0.2 | ||
7654 | picomatch: 2.3.1 | ||
7655 | |||
7656 | /mime-db@1.52.0: | ||
3354 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} | 7657 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} |
3355 | engines: {node: '>= 0.6'} | 7658 | engines: {node: '>= 0.6'} |
7659 | |||
7660 | /mime-kind@3.0.0: | ||
7661 | resolution: {integrity: sha512-sx9lClVP7GXY2mO3aVDWTQLhfvAdDvNhGi3o3g7+ae3aKaoybeGbEIlnreoRKjrbDpvlPltlkIryxOtatojeXQ==} | ||
7662 | engines: {node: '>=8.3.0'} | ||
7663 | dependencies: | ||
7664 | file-type: 12.4.2 | ||
7665 | mime-types: 2.1.35 | ||
3356 | dev: false | 7666 | dev: false |
3357 | 7667 | ||
3358 | /mime-types/2.1.35: | 7668 | /mime-types@2.1.35: |
3359 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} | 7669 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} |
3360 | engines: {node: '>= 0.6'} | 7670 | engines: {node: '>= 0.6'} |
3361 | dependencies: | 7671 | dependencies: |
3362 | mime-db: 1.52.0 | 7672 | mime-db: 1.52.0 |
3363 | dev: false | ||
3364 | |||
3365 | /mime/1.4.1: | ||
3366 | resolution: {integrity: sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==} | ||
3367 | hasBin: true | ||
3368 | dev: false | ||
3369 | 7673 | ||
3370 | /mime/1.6.0: | 7674 | /mime@1.6.0: |
3371 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} | 7675 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} |
3372 | engines: {node: '>=4'} | 7676 | engines: {node: '>=4'} |
3373 | hasBin: true | 7677 | hasBin: true |
3374 | dev: false | ||
3375 | 7678 | ||
3376 | /mimic-fn/2.1.0: | 7679 | /mime@2.6.0: |
7680 | resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} | ||
7681 | engines: {node: '>=4.0.0'} | ||
7682 | hasBin: true | ||
7683 | dev: true | ||
7684 | |||
7685 | /mimic-fn@2.1.0: | ||
3377 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} | 7686 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} |
3378 | engines: {node: '>=6'} | 7687 | engines: {node: '>=6'} |
7688 | |||
7689 | /mimic-fn@3.1.0: | ||
7690 | resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} | ||
7691 | engines: {node: '>=8'} | ||
3379 | dev: true | 7692 | dev: true |
3380 | 7693 | ||
3381 | /mimic-response/1.0.1: | 7694 | /mimic-fn@4.0.0: |
7695 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} | ||
7696 | engines: {node: '>=12'} | ||
7697 | dev: true | ||
7698 | |||
7699 | /mimic-response@1.0.1: | ||
3382 | resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} | 7700 | resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} |
3383 | engines: {node: '>=4'} | 7701 | engines: {node: '>=4'} |
3384 | dev: false | 7702 | dev: false |
3385 | 7703 | ||
3386 | /minimatch/3.1.2: | 7704 | /mimic-response@3.1.0: |
7705 | resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} | ||
7706 | engines: {node: '>=10'} | ||
7707 | dev: false | ||
7708 | |||
7709 | /min-indent@1.0.1: | ||
7710 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} | ||
7711 | engines: {node: '>=4'} | ||
7712 | dev: true | ||
7713 | |||
7714 | /mini-css-extract-plugin@2.7.6(webpack@5.88.2): | ||
7715 | resolution: {integrity: sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==} | ||
7716 | engines: {node: '>= 12.13.0'} | ||
7717 | peerDependencies: | ||
7718 | webpack: ^5.0.0 | ||
7719 | dependencies: | ||
7720 | schema-utils: 4.2.0 | ||
7721 | webpack: 5.88.2(webpack-cli@5.1.4) | ||
7722 | dev: true | ||
7723 | |||
7724 | /minimalistic-assert@1.0.1: | ||
7725 | resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} | ||
7726 | dev: true | ||
7727 | |||
7728 | /minimatch@3.1.2: | ||
3387 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} | 7729 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} |
3388 | dependencies: | 7730 | dependencies: |
3389 | brace-expansion: 1.1.11 | 7731 | brace-expansion: 1.1.11 |
3390 | 7732 | ||
3391 | /minimist/1.2.7: | 7733 | /minimatch@5.1.6: |
3392 | resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} | 7734 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} |
7735 | engines: {node: '>=10'} | ||
7736 | dependencies: | ||
7737 | brace-expansion: 2.0.1 | ||
3393 | 7738 | ||
3394 | /minipass/2.9.0: | 7739 | /minimist@1.2.8: |
3395 | resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} | 7740 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} |
7741 | |||
7742 | /minipass-collect@1.0.2: | ||
7743 | resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} | ||
7744 | engines: {node: '>= 8'} | ||
7745 | requiresBuild: true | ||
3396 | dependencies: | 7746 | dependencies: |
3397 | safe-buffer: 5.2.1 | 7747 | minipass: 3.3.6 |
3398 | yallist: 3.1.1 | ||
3399 | dev: false | 7748 | dev: false |
7749 | optional: true | ||
3400 | 7750 | ||
3401 | /minizlib/1.3.3: | 7751 | /minipass-fetch@1.4.1: |
3402 | resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} | 7752 | resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} |
7753 | engines: {node: '>=8'} | ||
7754 | requiresBuild: true | ||
3403 | dependencies: | 7755 | dependencies: |
3404 | minipass: 2.9.0 | 7756 | minipass: 3.3.6 |
7757 | minipass-sized: 1.0.3 | ||
7758 | minizlib: 2.1.2 | ||
7759 | optionalDependencies: | ||
7760 | encoding: 0.1.13 | ||
3405 | dev: false | 7761 | dev: false |
7762 | optional: true | ||
3406 | 7763 | ||
3407 | /mixin-deep/1.3.2: | 7764 | /minipass-flush@1.0.5: |
7765 | resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} | ||
7766 | engines: {node: '>= 8'} | ||
7767 | requiresBuild: true | ||
7768 | dependencies: | ||
7769 | minipass: 3.3.6 | ||
7770 | dev: false | ||
7771 | optional: true | ||
7772 | |||
7773 | /minipass-pipeline@1.2.4: | ||
7774 | resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} | ||
7775 | engines: {node: '>=8'} | ||
7776 | requiresBuild: true | ||
7777 | dependencies: | ||
7778 | minipass: 3.3.6 | ||
7779 | dev: false | ||
7780 | optional: true | ||
7781 | |||
7782 | /minipass-sized@1.0.3: | ||
7783 | resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} | ||
7784 | engines: {node: '>=8'} | ||
7785 | requiresBuild: true | ||
7786 | dependencies: | ||
7787 | minipass: 3.3.6 | ||
7788 | dev: false | ||
7789 | optional: true | ||
7790 | |||
7791 | /minipass@3.3.6: | ||
7792 | resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} | ||
7793 | engines: {node: '>=8'} | ||
7794 | dependencies: | ||
7795 | yallist: 4.0.0 | ||
7796 | dev: false | ||
7797 | |||
7798 | /minipass@5.0.0: | ||
7799 | resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} | ||
7800 | engines: {node: '>=8'} | ||
7801 | dev: false | ||
7802 | |||
7803 | /minizlib@2.1.2: | ||
7804 | resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} | ||
7805 | engines: {node: '>= 8'} | ||
7806 | dependencies: | ||
7807 | minipass: 3.3.6 | ||
7808 | yallist: 4.0.0 | ||
7809 | dev: false | ||
7810 | |||
7811 | /mixin-deep@1.3.2: | ||
3408 | resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} | 7812 | resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} |
3409 | engines: {node: '>=0.10.0'} | 7813 | engines: {node: '>=0.10.0'} |
3410 | dependencies: | 7814 | dependencies: |
3411 | for-in: 1.0.2 | 7815 | for-in: 1.0.2 |
3412 | is-extendable: 1.0.1 | 7816 | is-extendable: 1.0.1 |
3413 | dev: false | 7817 | dev: true |
3414 | 7818 | ||
3415 | /mixin-object/2.0.1: | 7819 | /mkdirp@0.5.6: |
3416 | resolution: {integrity: sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==} | 7820 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} |
3417 | engines: {node: '>=0.10.0'} | 7821 | hasBin: true |
3418 | dependencies: | 7822 | dependencies: |
3419 | for-in: 0.1.8 | 7823 | minimist: 1.2.8 |
3420 | is-extendable: 0.1.1 | ||
3421 | dev: false | 7824 | dev: false |
3422 | 7825 | ||
3423 | /mkdirp/0.5.6: | 7826 | /mkdirp@1.0.4: |
3424 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} | 7827 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} |
7828 | engines: {node: '>=10'} | ||
3425 | hasBin: true | 7829 | hasBin: true |
3426 | dependencies: | ||
3427 | minimist: 1.2.7 | ||
3428 | dev: false | 7830 | dev: false |
3429 | 7831 | ||
3430 | /moment/2.29.4: | 7832 | /moment@2.29.4: |
3431 | resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} | 7833 | resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} |
3432 | dev: false | 7834 | dev: false |
3433 | 7835 | ||
3434 | /ms/2.0.0: | 7836 | /mrm-core@7.1.13: |
7837 | resolution: {integrity: sha512-+AlsNuryLYw9HWqf+HBcNXULiwBEfcmb2VDccvYyg71x25bC8nJOn0YJA13x1PUUEF0aEbc5RTfqa6weMtRHaw==} | ||
7838 | engines: {node: '>=10.13'} | ||
7839 | dependencies: | ||
7840 | babel-code-frame: 6.26.0 | ||
7841 | comment-json: 2.4.2 | ||
7842 | detect-indent: 6.1.0 | ||
7843 | editorconfig: 0.15.3 | ||
7844 | find-up: 4.1.0 | ||
7845 | fs-extra: 8.1.0 | ||
7846 | kleur: 3.0.3 | ||
7847 | listify: 1.0.3 | ||
7848 | lodash: 4.17.21 | ||
7849 | minimist: 1.2.8 | ||
7850 | prop-ini: 0.0.2 | ||
7851 | rc: 1.2.8 | ||
7852 | readme-badger: 0.3.0 | ||
7853 | semver: 6.3.1 | ||
7854 | smpltmpl: 1.0.2 | ||
7855 | split-lines: 2.1.0 | ||
7856 | strip-bom: 4.0.0 | ||
7857 | validate-npm-package-name: 3.0.0 | ||
7858 | webpack-merge: 4.2.2 | ||
7859 | yaml: 2.3.2 | ||
7860 | dev: true | ||
7861 | |||
7862 | /ms@2.0.0: | ||
3435 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} | 7863 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} |
3436 | 7864 | ||
3437 | /ms/2.1.2: | 7865 | /ms@2.1.2: |
3438 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} | 7866 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} |
3439 | 7867 | ||
3440 | /ms/2.1.3: | 7868 | /ms@2.1.3: |
3441 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} | 7869 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} |
3442 | 7870 | ||
3443 | /multiparty/4.2.3: | 7871 | /multi-part-lite@1.0.0: |
3444 | resolution: {integrity: sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ==} | 7872 | resolution: {integrity: sha512-KxIRbBZZ45hoKX1ROD/19wJr0ql1bef1rE8Y1PCwD3PuNXV42pp7Wo8lEHYuAajoT4vfAFcd3rPjlkyEEyt1nw==} |
3445 | engines: {node: '>= 0.10'} | 7873 | engines: {node: '>=8.3.0'} |
3446 | dependencies: | ||
3447 | http-errors: 1.8.1 | ||
3448 | safe-buffer: 5.2.1 | ||
3449 | uid-safe: 2.1.5 | ||
3450 | dev: false | 7874 | dev: false |
3451 | 7875 | ||
3452 | /mustache/4.2.0: | 7876 | /multi-part@3.0.0: |
3453 | resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} | 7877 | resolution: {integrity: sha512-pDbdYQ6DLDxAsD83w9R7r7rlW56cETL7hIB5bCWX7FJYw0K+kL5JwHr0I8tRk9lGeFcAzf+2OEzXWlG/4wCnFw==} |
3454 | hasBin: true | 7878 | engines: {node: '>=8.3.0'} |
3455 | dev: false | 7879 | dependencies: |
3456 | 7880 | mime-kind: 3.0.0 | |
3457 | /mute-stream/0.0.7: | 7881 | multi-part-lite: 1.0.0 |
3458 | resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==} | ||
3459 | dev: false | 7882 | dev: false |
3460 | 7883 | ||
3461 | /mute-stream/0.0.8: | 7884 | /multicast-dns@7.2.5: |
3462 | resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} | 7885 | resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} |
7886 | hasBin: true | ||
7887 | dependencies: | ||
7888 | dns-packet: 5.6.1 | ||
7889 | thunky: 1.1.0 | ||
3463 | dev: true | 7890 | dev: true |
3464 | 7891 | ||
3465 | /mysql/2.18.1: | 7892 | /mustache@4.2.0: |
7893 | resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} | ||
7894 | hasBin: true | ||
7895 | |||
7896 | /mysql@2.18.1: | ||
3466 | resolution: {integrity: sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==} | 7897 | resolution: {integrity: sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==} |
3467 | engines: {node: '>= 0.6'} | 7898 | engines: {node: '>= 0.6'} |
3468 | dependencies: | 7899 | dependencies: |
@@ -3472,11 +7903,13 @@ packages: | |||
3472 | sqlstring: 2.3.1 | 7903 | sqlstring: 2.3.1 |
3473 | dev: false | 7904 | dev: false |
3474 | 7905 | ||
3475 | /nan/2.17.0: | 7906 | /nanoid@3.3.6: |
3476 | resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==} | 7907 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} |
3477 | dev: false | 7908 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} |
7909 | hasBin: true | ||
7910 | dev: true | ||
3478 | 7911 | ||
3479 | /nanomatch/1.2.13: | 7912 | /nanomatch@1.2.13: |
3480 | resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} | 7913 | resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} |
3481 | engines: {node: '>=0.10.0'} | 7914 | engines: {node: '>=0.10.0'} |
3482 | dependencies: | 7915 | dependencies: |
@@ -3493,57 +7926,50 @@ packages: | |||
3493 | to-regex: 3.0.2 | 7926 | to-regex: 3.0.2 |
3494 | transitivePeerDependencies: | 7927 | transitivePeerDependencies: |
3495 | - supports-color | 7928 | - supports-color |
3496 | dev: false | 7929 | dev: true |
3497 | 7930 | ||
3498 | /natural-compare/1.4.0: | 7931 | /natural-compare-lite@1.4.0: |
3499 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} | 7932 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} |
3500 | dev: true | 7933 | dev: true |
3501 | 7934 | ||
3502 | /needle/2.9.1: | 7935 | /natural-compare@1.4.0: |
3503 | resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} | 7936 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} |
3504 | engines: {node: '>= 4.4.x'} | 7937 | dev: true |
3505 | hasBin: true | ||
3506 | dependencies: | ||
3507 | debug: 3.2.7 | ||
3508 | iconv-lite: 0.4.24 | ||
3509 | sax: 1.2.4 | ||
3510 | transitivePeerDependencies: | ||
3511 | - supports-color | ||
3512 | dev: false | ||
3513 | 7938 | ||
3514 | /negotiator/0.6.3: | 7939 | /negotiator@0.6.3: |
3515 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} | 7940 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} |
3516 | engines: {node: '>= 0.6'} | 7941 | engines: {node: '>= 0.6'} |
3517 | dev: false | ||
3518 | 7942 | ||
3519 | /nice-try/1.0.5: | 7943 | /neo-async@2.6.2: |
3520 | resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} | 7944 | resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} |
3521 | dev: false | 7945 | dev: true |
3522 | 7946 | ||
3523 | /node-cookie/2.1.2: | 7947 | /nested-error-stacks@2.1.1: |
3524 | resolution: {integrity: sha512-8/k8V9/2hCESYMmNVtJiHweKlP1ZqjrzG3bv+cSooiWurHB6N7KqVdX/s7ojbBXTwOJrLKJzC9rlPRvFRYuKRA==} | 7948 | resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} |
3525 | dependencies: | 7949 | dev: true |
3526 | cookie: 0.4.2 | ||
3527 | cookie-signature: 1.2.0 | ||
3528 | simple-encryptor: 3.0.0 | ||
3529 | dev: false | ||
3530 | 7950 | ||
3531 | /node-csp/1.0.1: | 7951 | /no-case@3.0.4: |
3532 | resolution: {integrity: sha512-t0TZaoJVYlWR/rgIlQvNedyUIVvAnzQIPqxIyUiS2W4PzSFDa93RRcKxLF/KNZGFvKUFlFf6guHZI23fiDBF+A==} | 7952 | resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} |
3533 | dependencies: | 7953 | dependencies: |
3534 | platform: 1.3.6 | 7954 | lower-case: 2.0.2 |
3535 | dev: false | 7955 | tslib: 2.6.2 |
3536 | 7956 | ||
3537 | /node-exceptions/2.0.2: | 7957 | /node-addon-api@4.3.0: |
3538 | resolution: {integrity: sha512-nILccFLvnaOBoKZZtWfZipn/hlThZOT6UJOLX6SA3yLMYPcvLTIF26PXx73sPnAg45p05iYFYw2jvayNHz4rDA==} | 7958 | resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} |
3539 | dev: false | 7959 | dev: false |
3540 | 7960 | ||
3541 | /node-exceptions/3.0.0: | 7961 | /node-addon-api@5.1.0: |
3542 | resolution: {integrity: sha512-pFhMAqdN1avrFwtZs66HxYiVnbnH9wjXB4m8IKs5Z9+r7U5voqxT+EDbVkRfge+V7JnkOgKhN4HfKBn1o5g9Wg==} | 7962 | resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} |
3543 | dev: false | 7963 | dev: false |
3544 | 7964 | ||
3545 | /node-fetch/2.6.7: | 7965 | /node-emoji@1.11.0: |
3546 | resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} | 7966 | resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} |
7967 | dependencies: | ||
7968 | lodash: 4.17.21 | ||
7969 | dev: true | ||
7970 | |||
7971 | /node-fetch@2.7.0: | ||
7972 | resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} | ||
3547 | engines: {node: 4.x || >=6.0.0} | 7973 | engines: {node: 4.x || >=6.0.0} |
3548 | peerDependencies: | 7974 | peerDependencies: |
3549 | encoding: ^0.1.0 | 7975 | encoding: ^0.1.0 |
@@ -3552,403 +7978,548 @@ packages: | |||
3552 | optional: true | 7978 | optional: true |
3553 | dependencies: | 7979 | dependencies: |
3554 | whatwg-url: 5.0.0 | 7980 | whatwg-url: 5.0.0 |
3555 | |||
3556 | /node-guard/1.0.0: | ||
3557 | resolution: {integrity: sha512-LX911hOl63/YBO3Skl/jQ9QQG+lE++66xaF9/lg7G02bBpdgHMmSdMK5+jgo7p/3i5hn4fGOipX3Ko17Yzfi2w==} | ||
3558 | dev: false | 7981 | dev: false |
3559 | 7982 | ||
3560 | /node-pre-gyp/0.11.0: | 7983 | /node-forge@1.3.1: |
3561 | resolution: {integrity: sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==} | 7984 | resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} |
3562 | deprecated: 'Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future' | 7985 | engines: {node: '>= 6.13.0'} |
7986 | dev: true | ||
7987 | |||
7988 | /node-gyp@8.4.1: | ||
7989 | resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} | ||
7990 | engines: {node: '>= 10.12.0'} | ||
3563 | hasBin: true | 7991 | hasBin: true |
7992 | requiresBuild: true | ||
3564 | dependencies: | 7993 | dependencies: |
3565 | detect-libc: 1.0.3 | 7994 | env-paths: 2.2.1 |
3566 | mkdirp: 0.5.6 | 7995 | glob: 7.2.3 |
3567 | needle: 2.9.1 | 7996 | graceful-fs: 4.2.11 |
3568 | nopt: 4.0.3 | 7997 | make-fetch-happen: 9.1.0 |
3569 | npm-packlist: 1.4.8 | 7998 | nopt: 5.0.0 |
3570 | npmlog: 4.1.2 | 7999 | npmlog: 6.0.2 |
3571 | rc: 1.2.8 | 8000 | rimraf: 3.0.2 |
3572 | rimraf: 2.7.1 | 8001 | semver: 7.5.4 |
3573 | semver: 5.7.1 | 8002 | tar: 6.2.0 |
3574 | tar: 4.4.19 | 8003 | which: 2.0.2 |
3575 | transitivePeerDependencies: | 8004 | transitivePeerDependencies: |
8005 | - bluebird | ||
3576 | - supports-color | 8006 | - supports-color |
3577 | dev: false | 8007 | dev: false |
8008 | optional: true | ||
3578 | 8009 | ||
3579 | /node-req/2.1.2: | 8010 | /node-releases@2.0.13: |
3580 | resolution: {integrity: sha512-zJqZ03vs0oHN8u+wn7kUT/vj63jQdQvNYWjbRMGNVu7ijV3mVz8UwX7pJl7LUugOT2x8vBKasKqbUqnh6GDKMQ==} | 8011 | resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} |
3581 | dependencies: | 8012 | dev: true |
3582 | accepts: 1.3.8 | ||
3583 | fresh: 0.5.2 | ||
3584 | parseurl: 1.3.3 | ||
3585 | proxy-addr: 2.0.7 | ||
3586 | qs: 6.11.0 | ||
3587 | type-is: 1.6.18 | ||
3588 | dev: false | ||
3589 | 8013 | ||
3590 | /node-res/4.1.4: | 8014 | /node-repl-await@0.1.2: |
3591 | resolution: {integrity: sha512-CE6NEM51MVeySzGn6stEuohJzYPHovjo9+/UK147peh8Hslth/S+IpXKupb1qv9QeIxbgnKJ9WoVOpEwJd5pYg==} | 8015 | resolution: {integrity: sha512-e03zlI31RjF6Ks9+/ju0gY55dZSm21XXMSzy85FGZtDxuAZCa/iQwzWoQjmZvaolQCrIjzs0e4shxZs1bxbpUg==} |
3592 | dependencies: | 8016 | dependencies: |
3593 | content-disposition: 0.5.4 | 8017 | acorn: 8.10.0 |
3594 | etag: 1.8.1 | 8018 | acorn-class-fields: 1.0.0(acorn@8.10.0) |
3595 | mime-types: 2.1.35 | 8019 | acorn-private-methods: 1.0.0(acorn@8.10.0) |
3596 | send: 0.16.2 | 8020 | acorn-static-class-features: 1.0.0(acorn@8.10.0) |
3597 | vary: 1.1.2 | 8021 | acorn-walk: 8.2.0 |
3598 | transitivePeerDependencies: | ||
3599 | - supports-color | ||
3600 | dev: false | 8022 | dev: false |
3601 | 8023 | ||
3602 | /nodemailer/4.7.0: | 8024 | /nodemailer@6.9.5: |
3603 | resolution: {integrity: sha512-IludxDypFpYw4xpzKdMAozBSkzKHmNBvGanUREjJItgJ2NYcK/s8+PggVhj7c2yGFQykKsnnmv1+Aqo0ZfjHmw==} | 8025 | resolution: {integrity: sha512-/dmdWo62XjumuLc5+AYQZeiRj+PRR8y8qKtFCOyuOl1k/hckZd8durUUHs/ucKx6/8kN+wFxqKJlQ/LK/qR5FA==} |
3604 | engines: {node: '>=6.0.0'} | 8026 | engines: {node: '>=6.0.0'} |
3605 | dev: false | 8027 | dev: false |
3606 | 8028 | ||
3607 | /nopt/4.0.3: | 8029 | /nopt@5.0.0: |
3608 | resolution: {integrity: sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==} | 8030 | resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} |
8031 | engines: {node: '>=6'} | ||
3609 | hasBin: true | 8032 | hasBin: true |
3610 | dependencies: | 8033 | dependencies: |
3611 | abbrev: 1.1.1 | 8034 | abbrev: 1.1.1 |
3612 | osenv: 0.1.5 | ||
3613 | dev: false | 8035 | dev: false |
3614 | 8036 | ||
3615 | /normalize-url/2.0.1: | 8037 | /normalize-package-data@2.5.0: |
3616 | resolution: {integrity: sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==} | 8038 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} |
3617 | engines: {node: '>=4'} | ||
3618 | dependencies: | 8039 | dependencies: |
3619 | prepend-http: 2.0.0 | 8040 | hosted-git-info: 2.8.9 |
3620 | query-string: 5.1.1 | 8041 | resolve: 1.22.6 |
3621 | sort-keys: 2.0.0 | 8042 | semver: 5.7.2 |
3622 | dev: false | 8043 | validate-npm-package-license: 3.0.4 |
8044 | dev: true | ||
3623 | 8045 | ||
3624 | /npm-bundled/1.1.2: | 8046 | /normalize-path@3.0.0: |
3625 | resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} | 8047 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} |
3626 | dependencies: | 8048 | engines: {node: '>=0.10.0'} |
3627 | npm-normalize-package-bin: 1.0.1 | 8049 | dev: true |
3628 | dev: false | ||
3629 | 8050 | ||
3630 | /npm-normalize-package-bin/1.0.1: | 8051 | /normalize-url@6.1.0: |
3631 | resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} | 8052 | resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} |
3632 | dev: false | 8053 | engines: {node: '>=10'} |
3633 | 8054 | ||
3634 | /npm-packlist/1.4.8: | 8055 | /npm-run-path@4.0.1: |
3635 | resolution: {integrity: sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==} | 8056 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} |
8057 | engines: {node: '>=8'} | ||
3636 | dependencies: | 8058 | dependencies: |
3637 | ignore-walk: 3.0.4 | 8059 | path-key: 3.1.1 |
3638 | npm-bundled: 1.1.2 | 8060 | dev: true |
3639 | npm-normalize-package-bin: 1.0.1 | ||
3640 | dev: false | ||
3641 | 8061 | ||
3642 | /npmlog/4.1.2: | 8062 | /npm-run-path@5.1.0: |
3643 | resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} | 8063 | resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} |
8064 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} | ||
3644 | dependencies: | 8065 | dependencies: |
3645 | are-we-there-yet: 1.1.7 | 8066 | path-key: 4.0.0 |
8067 | dev: true | ||
8068 | |||
8069 | /npmlog@5.0.1: | ||
8070 | resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} | ||
8071 | dependencies: | ||
8072 | are-we-there-yet: 2.0.0 | ||
3646 | console-control-strings: 1.1.0 | 8073 | console-control-strings: 1.1.0 |
3647 | gauge: 2.7.4 | 8074 | gauge: 3.0.2 |
3648 | set-blocking: 2.0.0 | 8075 | set-blocking: 2.0.0 |
3649 | dev: false | 8076 | dev: false |
3650 | 8077 | ||
3651 | /number-is-nan/1.0.1: | 8078 | /npmlog@6.0.2: |
3652 | resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} | 8079 | resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} |
3653 | engines: {node: '>=0.10.0'} | 8080 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} |
8081 | requiresBuild: true | ||
8082 | dependencies: | ||
8083 | are-we-there-yet: 3.0.1 | ||
8084 | console-control-strings: 1.1.0 | ||
8085 | gauge: 4.0.4 | ||
8086 | set-blocking: 2.0.0 | ||
3654 | dev: false | 8087 | dev: false |
8088 | optional: true | ||
3655 | 8089 | ||
3656 | /oauth-sign/0.9.0: | 8090 | /nth-check@2.1.1: |
3657 | resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} | 8091 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} |
3658 | dev: false | 8092 | dependencies: |
8093 | boolbase: 1.0.0 | ||
8094 | dev: true | ||
3659 | 8095 | ||
3660 | /object-assign/4.1.1: | 8096 | /object-assign@4.1.1: |
3661 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} | 8097 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} |
3662 | engines: {node: '>=0.10.0'} | 8098 | engines: {node: '>=0.10.0'} |
3663 | dev: false | ||
3664 | 8099 | ||
3665 | /object-copy/0.1.0: | 8100 | /object-copy@0.1.0: |
3666 | resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} | 8101 | resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} |
3667 | engines: {node: '>=0.10.0'} | 8102 | engines: {node: '>=0.10.0'} |
3668 | dependencies: | 8103 | dependencies: |
3669 | copy-descriptor: 0.1.1 | 8104 | copy-descriptor: 0.1.1 |
3670 | define-property: 0.2.5 | 8105 | define-property: 0.2.5 |
3671 | kind-of: 3.2.2 | 8106 | kind-of: 3.2.2 |
3672 | dev: false | 8107 | dev: true |
3673 | 8108 | ||
3674 | /object-inspect/1.12.2: | 8109 | /object-inspect@1.12.3: |
3675 | resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} | 8110 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} |
3676 | 8111 | ||
3677 | /object-keys/1.1.1: | 8112 | /object-keys@1.1.1: |
3678 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} | 8113 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} |
3679 | engines: {node: '>= 0.4'} | 8114 | engines: {node: '>= 0.4'} |
3680 | dev: true | 8115 | dev: true |
3681 | 8116 | ||
3682 | /object-visit/1.0.1: | 8117 | /object-visit@1.0.1: |
3683 | resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} | 8118 | resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} |
3684 | engines: {node: '>=0.10.0'} | 8119 | engines: {node: '>=0.10.0'} |
3685 | dependencies: | 8120 | dependencies: |
3686 | isobject: 3.0.1 | 8121 | isobject: 3.0.1 |
3687 | dev: false | 8122 | dev: true |
3688 | 8123 | ||
3689 | /object.assign/4.1.4: | 8124 | /object.assign@4.1.4: |
3690 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} | 8125 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} |
3691 | engines: {node: '>= 0.4'} | 8126 | engines: {node: '>= 0.4'} |
3692 | dependencies: | 8127 | dependencies: |
3693 | call-bind: 1.0.2 | 8128 | call-bind: 1.0.2 |
3694 | define-properties: 1.1.4 | 8129 | define-properties: 1.2.1 |
3695 | has-symbols: 1.0.3 | 8130 | has-symbols: 1.0.3 |
3696 | object-keys: 1.1.1 | 8131 | object-keys: 1.1.1 |
3697 | dev: true | 8132 | dev: true |
3698 | 8133 | ||
3699 | /object.defaults/1.1.0: | 8134 | /object.fromentries@2.0.7: |
3700 | resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} | 8135 | resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} |
3701 | engines: {node: '>=0.10.0'} | ||
3702 | dependencies: | ||
3703 | array-each: 1.0.1 | ||
3704 | array-slice: 1.1.0 | ||
3705 | for-own: 1.0.0 | ||
3706 | isobject: 3.0.1 | ||
3707 | dev: false | ||
3708 | |||
3709 | /object.entries/1.1.6: | ||
3710 | resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} | ||
3711 | engines: {node: '>= 0.4'} | 8136 | engines: {node: '>= 0.4'} |
3712 | dependencies: | 8137 | dependencies: |
3713 | call-bind: 1.0.2 | 8138 | call-bind: 1.0.2 |
3714 | define-properties: 1.1.4 | 8139 | define-properties: 1.2.1 |
3715 | es-abstract: 1.20.5 | 8140 | es-abstract: 1.22.2 |
3716 | dev: true | 8141 | dev: true |
3717 | 8142 | ||
3718 | /object.map/1.0.1: | 8143 | /object.groupby@1.0.1: |
3719 | resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==} | 8144 | resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} |
3720 | engines: {node: '>=0.10.0'} | ||
3721 | dependencies: | 8145 | dependencies: |
3722 | for-own: 1.0.0 | 8146 | call-bind: 1.0.2 |
3723 | make-iterator: 1.0.1 | 8147 | define-properties: 1.2.1 |
3724 | dev: false | 8148 | es-abstract: 1.22.2 |
8149 | get-intrinsic: 1.2.1 | ||
8150 | dev: true | ||
3725 | 8151 | ||
3726 | /object.pick/1.3.0: | 8152 | /object.pick@1.3.0: |
3727 | resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} | 8153 | resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} |
3728 | engines: {node: '>=0.10.0'} | 8154 | engines: {node: '>=0.10.0'} |
3729 | dependencies: | 8155 | dependencies: |
3730 | isobject: 3.0.1 | 8156 | isobject: 3.0.1 |
3731 | dev: false | 8157 | dev: true |
3732 | 8158 | ||
3733 | /object.values/1.1.6: | 8159 | /object.values@1.1.7: |
3734 | resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} | 8160 | resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} |
3735 | engines: {node: '>= 0.4'} | 8161 | engines: {node: '>= 0.4'} |
3736 | dependencies: | 8162 | dependencies: |
3737 | call-bind: 1.0.2 | 8163 | call-bind: 1.0.2 |
3738 | define-properties: 1.1.4 | 8164 | define-properties: 1.2.1 |
3739 | es-abstract: 1.20.5 | 8165 | es-abstract: 1.22.2 |
3740 | dev: true | 8166 | dev: true |
3741 | 8167 | ||
3742 | /on-finished/2.3.0: | 8168 | /obuf@1.1.2: |
3743 | resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} | 8169 | resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} |
3744 | engines: {node: '>= 0.8'} | 8170 | dev: true |
3745 | dependencies: | ||
3746 | ee-first: 1.1.1 | ||
3747 | dev: false | ||
3748 | 8171 | ||
3749 | /on-finished/2.4.1: | 8172 | /on-exit-leak-free@2.1.0: |
8173 | resolution: {integrity: sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==} | ||
8174 | |||
8175 | /on-finished@2.4.1: | ||
3750 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} | 8176 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} |
3751 | engines: {node: '>= 0.8'} | 8177 | engines: {node: '>= 0.8'} |
3752 | dependencies: | 8178 | dependencies: |
3753 | ee-first: 1.1.1 | 8179 | ee-first: 1.1.1 |
3754 | dev: false | ||
3755 | 8180 | ||
3756 | /once/1.4.0: | 8181 | /on-headers@1.0.2: |
8182 | resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} | ||
8183 | engines: {node: '>= 0.8'} | ||
8184 | dev: true | ||
8185 | |||
8186 | /once@1.4.0: | ||
3757 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} | 8187 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} |
3758 | dependencies: | 8188 | dependencies: |
3759 | wrappy: 1.0.2 | 8189 | wrappy: 1.0.2 |
3760 | 8190 | ||
3761 | /one-time/1.0.0: | 8191 | /onetime@5.1.2: |
3762 | resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} | ||
3763 | dependencies: | ||
3764 | fn.name: 1.1.0 | ||
3765 | dev: false | ||
3766 | |||
3767 | /onetime/5.1.2: | ||
3768 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} | 8192 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} |
3769 | engines: {node: '>=6'} | 8193 | engines: {node: '>=6'} |
3770 | dependencies: | 8194 | dependencies: |
3771 | mimic-fn: 2.1.0 | 8195 | mimic-fn: 2.1.0 |
8196 | |||
8197 | /onetime@6.0.0: | ||
8198 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} | ||
8199 | engines: {node: '>=12'} | ||
8200 | dependencies: | ||
8201 | mimic-fn: 4.0.0 | ||
8202 | dev: true | ||
8203 | |||
8204 | /open@8.4.2: | ||
8205 | resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} | ||
8206 | engines: {node: '>=12'} | ||
8207 | dependencies: | ||
8208 | define-lazy-prop: 2.0.0 | ||
8209 | is-docker: 2.2.1 | ||
8210 | is-wsl: 2.2.0 | ||
8211 | dev: true | ||
8212 | |||
8213 | /open@9.1.0: | ||
8214 | resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} | ||
8215 | engines: {node: '>=14.16'} | ||
8216 | dependencies: | ||
8217 | default-browser: 4.0.0 | ||
8218 | define-lazy-prop: 3.0.0 | ||
8219 | is-inside-container: 1.0.0 | ||
8220 | is-wsl: 2.2.0 | ||
8221 | dev: true | ||
8222 | |||
8223 | /openapi-schema-validator@3.0.3: | ||
8224 | resolution: {integrity: sha512-KKpeNEvAmpy6B2JCfyrM4yWjL6vggDCVbBoR8Yfkj0Jltc6PCW+dBbcg+1yrTCuDv80qBQJ6w0ejA71DlOFegA==} | ||
8225 | dependencies: | ||
8226 | ajv: 6.12.6 | ||
8227 | lodash.merge: 4.6.2 | ||
8228 | openapi-types: 1.3.4 | ||
8229 | swagger-schema-official: 2.0.0-bab6bed | ||
3772 | dev: true | 8230 | dev: true |
3773 | 8231 | ||
3774 | /optionator/0.9.1: | 8232 | /openapi-types@1.3.4: |
3775 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} | 8233 | resolution: {integrity: sha512-h8rADpW3k/wepLdERKF0VKMAPdoFYNQCLGPmc/f8sgQ2dxUy+7sY4WAX2XDUDjhKTjbJVbxxofLkzy7f1/tE4g==} |
8234 | dev: true | ||
8235 | |||
8236 | /openapi-types@12.1.3: | ||
8237 | resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} | ||
8238 | dev: true | ||
8239 | |||
8240 | /optionator@0.9.3: | ||
8241 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} | ||
3776 | engines: {node: '>= 0.8.0'} | 8242 | engines: {node: '>= 0.8.0'} |
3777 | dependencies: | 8243 | dependencies: |
8244 | '@aashutoshrathi/word-wrap': 1.2.6 | ||
3778 | deep-is: 0.1.4 | 8245 | deep-is: 0.1.4 |
3779 | fast-levenshtein: 2.0.6 | 8246 | fast-levenshtein: 2.0.6 |
3780 | levn: 0.4.1 | 8247 | levn: 0.4.1 |
3781 | prelude-ls: 1.2.1 | 8248 | prelude-ls: 1.2.1 |
3782 | type-check: 0.4.0 | 8249 | type-check: 0.4.0 |
3783 | word-wrap: 1.2.3 | ||
3784 | dev: true | 8250 | dev: true |
3785 | 8251 | ||
3786 | /os-homedir/1.0.2: | 8252 | /p-all@2.1.0: |
3787 | resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} | 8253 | resolution: {integrity: sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==} |
3788 | engines: {node: '>=0.10.0'} | 8254 | engines: {node: '>=6'} |
8255 | dependencies: | ||
8256 | p-map: 2.1.0 | ||
8257 | dev: true | ||
8258 | |||
8259 | /p-cancelable@2.1.1: | ||
8260 | resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} | ||
8261 | engines: {node: '>=8'} | ||
3789 | dev: false | 8262 | dev: false |
3790 | 8263 | ||
3791 | /os-tmpdir/1.0.2: | 8264 | /p-defer@1.0.0: |
3792 | resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} | 8265 | resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} |
3793 | engines: {node: '>=0.10.0'} | 8266 | engines: {node: '>=4'} |
8267 | dev: true | ||
3794 | 8268 | ||
3795 | /osenv/0.1.5: | 8269 | /p-event@4.2.0: |
3796 | resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==} | 8270 | resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} |
8271 | engines: {node: '>=8'} | ||
3797 | dependencies: | 8272 | dependencies: |
3798 | os-homedir: 1.0.2 | 8273 | p-timeout: 3.2.0 |
3799 | os-tmpdir: 1.0.2 | 8274 | dev: true |
3800 | dev: false | ||
3801 | 8275 | ||
3802 | /p-cancelable/0.4.1: | 8276 | /p-filter@2.1.0: |
3803 | resolution: {integrity: sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==} | 8277 | resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} |
3804 | engines: {node: '>=4'} | 8278 | engines: {node: '>=8'} |
3805 | dev: false | 8279 | dependencies: |
8280 | p-map: 2.1.0 | ||
8281 | dev: true | ||
3806 | 8282 | ||
3807 | /p-finally/1.0.0: | 8283 | /p-finally@1.0.0: |
3808 | resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} | 8284 | resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} |
3809 | engines: {node: '>=4'} | 8285 | engines: {node: '>=4'} |
3810 | dev: false | 8286 | dev: true |
3811 | |||
3812 | /p-is-promise/1.1.0: | ||
3813 | resolution: {integrity: sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==} | ||
3814 | engines: {node: '>=4'} | ||
3815 | dev: false | ||
3816 | 8287 | ||
3817 | /p-limit/2.3.0: | 8288 | /p-limit@2.3.0: |
3818 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} | 8289 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} |
3819 | engines: {node: '>=6'} | 8290 | engines: {node: '>=6'} |
3820 | dependencies: | 8291 | dependencies: |
3821 | p-try: 2.2.0 | 8292 | p-try: 2.2.0 |
3822 | dev: true | 8293 | dev: true |
3823 | 8294 | ||
3824 | /p-locate/4.1.0: | 8295 | /p-limit@3.1.0: |
8296 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} | ||
8297 | engines: {node: '>=10'} | ||
8298 | dependencies: | ||
8299 | yocto-queue: 0.1.0 | ||
8300 | dev: true | ||
8301 | |||
8302 | /p-locate@3.0.0: | ||
8303 | resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} | ||
8304 | engines: {node: '>=6'} | ||
8305 | dependencies: | ||
8306 | p-limit: 2.3.0 | ||
8307 | dev: true | ||
8308 | |||
8309 | /p-locate@4.1.0: | ||
3825 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} | 8310 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} |
3826 | engines: {node: '>=8'} | 8311 | engines: {node: '>=8'} |
3827 | dependencies: | 8312 | dependencies: |
3828 | p-limit: 2.3.0 | 8313 | p-limit: 2.3.0 |
3829 | dev: true | 8314 | dev: true |
3830 | 8315 | ||
3831 | /p-timeout/2.0.1: | 8316 | /p-locate@5.0.0: |
3832 | resolution: {integrity: sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==} | 8317 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} |
3833 | engines: {node: '>=4'} | 8318 | engines: {node: '>=10'} |
3834 | dependencies: | 8319 | dependencies: |
3835 | p-finally: 1.0.0 | 8320 | p-limit: 3.1.0 |
8321 | dev: true | ||
8322 | |||
8323 | /p-map@2.1.0: | ||
8324 | resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} | ||
8325 | engines: {node: '>=6'} | ||
8326 | dev: true | ||
8327 | |||
8328 | /p-map@3.0.0: | ||
8329 | resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} | ||
8330 | engines: {node: '>=8'} | ||
8331 | dependencies: | ||
8332 | aggregate-error: 3.1.0 | ||
8333 | dev: true | ||
8334 | |||
8335 | /p-map@4.0.0: | ||
8336 | resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} | ||
8337 | engines: {node: '>=10'} | ||
8338 | requiresBuild: true | ||
8339 | dependencies: | ||
8340 | aggregate-error: 3.1.0 | ||
3836 | dev: false | 8341 | dev: false |
8342 | optional: true | ||
3837 | 8343 | ||
3838 | /p-try/2.2.0: | 8344 | /p-retry@4.6.2: |
8345 | resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} | ||
8346 | engines: {node: '>=8'} | ||
8347 | dependencies: | ||
8348 | '@types/retry': 0.12.0 | ||
8349 | retry: 0.13.1 | ||
8350 | dev: true | ||
8351 | |||
8352 | /p-timeout@3.2.0: | ||
8353 | resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} | ||
8354 | engines: {node: '>=8'} | ||
8355 | dependencies: | ||
8356 | p-finally: 1.0.0 | ||
8357 | dev: true | ||
8358 | |||
8359 | /p-try@2.2.0: | ||
3839 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} | 8360 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} |
3840 | engines: {node: '>=6'} | 8361 | engines: {node: '>=6'} |
3841 | dev: true | 8362 | dev: true |
3842 | 8363 | ||
3843 | /packet-reader/1.0.0: | 8364 | /packet-reader@1.0.0: |
3844 | resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} | 8365 | resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} |
3845 | dev: false | 8366 | dev: false |
3846 | 8367 | ||
3847 | /parent-module/1.0.1: | 8368 | /param-case@3.0.4: |
8369 | resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} | ||
8370 | dependencies: | ||
8371 | dot-case: 3.0.4 | ||
8372 | tslib: 2.6.2 | ||
8373 | |||
8374 | /parent-module@1.0.1: | ||
3848 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} | 8375 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} |
3849 | engines: {node: '>=6'} | 8376 | engines: {node: '>=6'} |
3850 | dependencies: | 8377 | dependencies: |
3851 | callsites: 3.1.0 | 8378 | callsites: 3.1.0 |
3852 | dev: true | 8379 | dev: true |
3853 | 8380 | ||
3854 | /parse-filepath/1.0.2: | 8381 | /parent-module@2.0.0: |
3855 | resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} | 8382 | resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} |
3856 | engines: {node: '>=0.8'} | 8383 | engines: {node: '>=8'} |
3857 | dependencies: | 8384 | dependencies: |
3858 | is-absolute: 1.0.0 | 8385 | callsites: 3.1.0 |
3859 | map-cache: 0.2.2 | 8386 | dev: true |
3860 | path-root: 0.1.1 | ||
3861 | dev: false | ||
3862 | 8387 | ||
3863 | /parse-passwd/1.0.0: | 8388 | /parse-imports@0.0.5: |
3864 | resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} | 8389 | resolution: {integrity: sha512-yA6mDNotJmyAXcEdi2AjiHfI8Llk+/uv/jgBgvzFVP8iGaHC5L3rR6VQk/1qEE3SvLUsDQ2GdQMfPTi0qrmt8Q==} |
3865 | engines: {node: '>=0.10.0'} | 8390 | engines: {node: '>= 10'} |
8391 | dependencies: | ||
8392 | es-module-lexer: 0.3.26 | ||
8393 | slashes: 2.0.2 | ||
3866 | dev: false | 8394 | dev: false |
3867 | 8395 | ||
3868 | /parseurl/1.3.3: | 8396 | /parse-json@5.2.0: |
8397 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} | ||
8398 | engines: {node: '>=8'} | ||
8399 | dependencies: | ||
8400 | '@babel/code-frame': 7.22.13 | ||
8401 | error-ex: 1.3.2 | ||
8402 | json-parse-even-better-errors: 2.3.1 | ||
8403 | lines-and-columns: 1.2.4 | ||
8404 | dev: true | ||
8405 | |||
8406 | /parseurl@1.3.3: | ||
3869 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} | 8407 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} |
3870 | engines: {node: '>= 0.8'} | 8408 | engines: {node: '>= 0.8'} |
3871 | dev: false | ||
3872 | 8409 | ||
3873 | /pascalcase/0.1.1: | 8410 | /pascal-case@3.1.2: |
8411 | resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} | ||
8412 | dependencies: | ||
8413 | no-case: 3.0.4 | ||
8414 | tslib: 2.6.2 | ||
8415 | |||
8416 | /pascalcase@0.1.1: | ||
3874 | resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} | 8417 | resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} |
3875 | engines: {node: '>=0.10.0'} | 8418 | engines: {node: '>=0.10.0'} |
8419 | dev: true | ||
8420 | |||
8421 | /path-browserify@1.0.1: | ||
8422 | resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} | ||
3876 | dev: false | 8423 | dev: false |
3877 | 8424 | ||
3878 | /path-exists/4.0.0: | 8425 | /path-case@3.0.4: |
8426 | resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} | ||
8427 | dependencies: | ||
8428 | dot-case: 3.0.4 | ||
8429 | tslib: 2.6.2 | ||
8430 | |||
8431 | /path-dirname@1.0.2: | ||
8432 | resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} | ||
8433 | dev: true | ||
8434 | |||
8435 | /path-exists@3.0.0: | ||
8436 | resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} | ||
8437 | engines: {node: '>=4'} | ||
8438 | dev: true | ||
8439 | |||
8440 | /path-exists@4.0.0: | ||
3879 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} | 8441 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} |
3880 | engines: {node: '>=8'} | 8442 | engines: {node: '>=8'} |
3881 | dev: true | 8443 | dev: true |
3882 | 8444 | ||
3883 | /path-is-absolute/1.0.1: | 8445 | /path-is-absolute@1.0.1: |
3884 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} | 8446 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} |
3885 | engines: {node: '>=0.10.0'} | 8447 | engines: {node: '>=0.10.0'} |
8448 | requiresBuild: true | ||
3886 | 8449 | ||
3887 | /path-key/2.0.1: | 8450 | /path-is-inside@1.0.2: |
3888 | resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} | 8451 | resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} |
3889 | engines: {node: '>=4'} | 8452 | dev: true |
3890 | dev: false | ||
3891 | 8453 | ||
3892 | /path-key/3.1.1: | 8454 | /path-key@3.1.1: |
3893 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} | 8455 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} |
3894 | engines: {node: '>=8'} | 8456 | engines: {node: '>=8'} |
3895 | dev: true | 8457 | dev: true |
3896 | 8458 | ||
3897 | /path-parse/1.0.7: | 8459 | /path-key@4.0.0: |
8460 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} | ||
8461 | engines: {node: '>=12'} | ||
8462 | dev: true | ||
8463 | |||
8464 | /path-parse@1.0.7: | ||
3898 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} | 8465 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} |
3899 | 8466 | ||
3900 | /path-root-regex/0.1.2: | 8467 | /path-to-regexp@0.1.7: |
3901 | resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} | 8468 | resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} |
3902 | engines: {node: '>=0.10.0'} | 8469 | dev: true |
3903 | dev: false | ||
3904 | 8470 | ||
3905 | /path-root/0.1.1: | 8471 | /path-type@3.0.0: |
3906 | resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} | 8472 | resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} |
3907 | engines: {node: '>=0.10.0'} | 8473 | engines: {node: '>=4'} |
3908 | dependencies: | 8474 | dependencies: |
3909 | path-root-regex: 0.1.2 | 8475 | pify: 3.0.0 |
3910 | dev: false | 8476 | dev: true |
3911 | 8477 | ||
3912 | /path-to-regexp/2.4.0: | 8478 | /path-type@4.0.0: |
3913 | resolution: {integrity: sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==} | 8479 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} |
3914 | dev: false | 8480 | engines: {node: '>=8'} |
8481 | dev: true | ||
3915 | 8482 | ||
3916 | /pegjs/0.10.0: | 8483 | /pathval@1.1.1: |
3917 | resolution: {integrity: sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow==} | 8484 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} |
3918 | engines: {node: '>=0.10'} | ||
3919 | hasBin: true | ||
3920 | dev: true | 8485 | dev: true |
3921 | 8486 | ||
3922 | /performance-now/2.1.0: | 8487 | /peek-readable@4.1.0: |
3923 | resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} | 8488 | resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} |
8489 | engines: {node: '>=8'} | ||
8490 | |||
8491 | /pg-cloudflare@1.1.1: | ||
8492 | resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} | ||
8493 | requiresBuild: true | ||
3924 | dev: false | 8494 | dev: false |
8495 | optional: true | ||
3925 | 8496 | ||
3926 | /pg-connection-string/2.4.0: | 8497 | /pg-connection-string@2.6.1: |
3927 | resolution: {integrity: sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==} | 8498 | resolution: {integrity: sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg==} |
3928 | dev: false | 8499 | dev: false |
3929 | 8500 | ||
3930 | /pg-connection-string/2.5.0: | 8501 | /pg-connection-string@2.6.2: |
3931 | resolution: {integrity: sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==} | 8502 | resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} |
3932 | dev: false | 8503 | dev: false |
3933 | 8504 | ||
3934 | /pg-int8/1.0.1: | 8505 | /pg-int8@1.0.1: |
3935 | resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} | 8506 | resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} |
3936 | engines: {node: '>=4.0.0'} | 8507 | engines: {node: '>=4.0.0'} |
3937 | dev: false | 8508 | dev: false |
3938 | 8509 | ||
3939 | /pg-pool/3.5.2_pg@8.8.0: | 8510 | /pg-pool@3.6.1(pg@8.11.1): |
3940 | resolution: {integrity: sha512-His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w==} | 8511 | resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==} |
3941 | peerDependencies: | 8512 | peerDependencies: |
3942 | pg: '>=8.0' | 8513 | pg: '>=8.0' |
3943 | dependencies: | 8514 | dependencies: |
3944 | pg: 8.8.0 | 8515 | pg: 8.11.1 |
3945 | dev: false | 8516 | dev: false |
3946 | 8517 | ||
3947 | /pg-protocol/1.5.0: | 8518 | /pg-protocol@1.6.0: |
3948 | resolution: {integrity: sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==} | 8519 | resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==} |
3949 | dev: false | 8520 | dev: false |
3950 | 8521 | ||
3951 | /pg-types/2.2.0: | 8522 | /pg-types@2.2.0: |
3952 | resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} | 8523 | resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} |
3953 | engines: {node: '>=4'} | 8524 | engines: {node: '>=4'} |
3954 | dependencies: | 8525 | dependencies: |
@@ -3959,8 +8530,8 @@ packages: | |||
3959 | postgres-interval: 1.2.0 | 8530 | postgres-interval: 1.2.0 |
3960 | dev: false | 8531 | dev: false |
3961 | 8532 | ||
3962 | /pg/8.8.0: | 8533 | /pg@8.11.1: |
3963 | resolution: {integrity: sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw==} | 8534 | resolution: {integrity: sha512-utdq2obft07MxaDg0zBJI+l/M3mBRfIpEN3iSemsz0G5F2/VXx+XzqF4oxrbIZXQxt2AZzIUzyVg/YM6xOP/WQ==} |
3964 | engines: {node: '>= 8.0.0'} | 8535 | engines: {node: '>= 8.0.0'} |
3965 | peerDependencies: | 8536 | peerDependencies: |
3966 | pg-native: '>=3.0.1' | 8537 | pg-native: '>=3.0.1' |
@@ -3970,386 +8541,678 @@ packages: | |||
3970 | dependencies: | 8541 | dependencies: |
3971 | buffer-writer: 2.0.0 | 8542 | buffer-writer: 2.0.0 |
3972 | packet-reader: 1.0.0 | 8543 | packet-reader: 1.0.0 |
3973 | pg-connection-string: 2.5.0 | 8544 | pg-connection-string: 2.6.2 |
3974 | pg-pool: 3.5.2_pg@8.8.0 | 8545 | pg-pool: 3.6.1(pg@8.11.1) |
3975 | pg-protocol: 1.5.0 | 8546 | pg-protocol: 1.6.0 |
3976 | pg-types: 2.2.0 | 8547 | pg-types: 2.2.0 |
3977 | pgpass: 1.0.5 | 8548 | pgpass: 1.0.5 |
8549 | optionalDependencies: | ||
8550 | pg-cloudflare: 1.1.1 | ||
3978 | dev: false | 8551 | dev: false |
3979 | 8552 | ||
3980 | /pgpass/1.0.5: | 8553 | /pgpass@1.0.5: |
3981 | resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} | 8554 | resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} |
3982 | dependencies: | 8555 | dependencies: |
3983 | split2: 4.1.0 | 8556 | split2: 4.2.0 |
8557 | dev: false | ||
8558 | |||
8559 | /phc-bcrypt@1.0.8: | ||
8560 | resolution: {integrity: sha512-k2Q1J+K4KOf47Uee7fqGFiu1nWKCqd17ks44U/WUHOZ4UvR2iRvkPpZtMQBLGbD82Ows/s+DiNhAMBOj7jPnrQ==} | ||
8561 | engines: {node: '>=12'} | ||
8562 | dependencies: | ||
8563 | '@kdf/salt': 2.0.1 | ||
8564 | '@phc/format': 1.0.0 | ||
8565 | bcrypt: 5.1.1 | ||
8566 | tsse: 2.1.0 | ||
8567 | transitivePeerDependencies: | ||
8568 | - encoding | ||
8569 | - supports-color | ||
3984 | dev: false | 8570 | dev: false |
3985 | 8571 | ||
3986 | /pify/3.0.0: | 8572 | /picocolors@1.0.0: |
8573 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} | ||
8574 | dev: true | ||
8575 | |||
8576 | /picomatch@2.3.1: | ||
8577 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} | ||
8578 | engines: {node: '>=8.6'} | ||
8579 | |||
8580 | /pify@2.3.0: | ||
8581 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} | ||
8582 | engines: {node: '>=0.10.0'} | ||
8583 | dev: true | ||
8584 | |||
8585 | /pify@3.0.0: | ||
3987 | resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} | 8586 | resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} |
3988 | engines: {node: '>=4'} | 8587 | engines: {node: '>=4'} |
3989 | dev: false | 8588 | dev: true |
3990 | 8589 | ||
3991 | /pify/4.0.1: | 8590 | /pify@4.0.1: |
3992 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} | 8591 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} |
3993 | engines: {node: '>=6'} | 8592 | engines: {node: '>=6'} |
3994 | dev: false | 8593 | dev: true |
3995 | 8594 | ||
3996 | /pify/5.0.0: | 8595 | /pinkie-promise@2.0.1: |
3997 | resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} | 8596 | resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} |
3998 | engines: {node: '>=10'} | 8597 | engines: {node: '>=0.10.0'} |
8598 | dependencies: | ||
8599 | pinkie: 2.0.4 | ||
3999 | dev: true | 8600 | dev: true |
4000 | 8601 | ||
4001 | /platform/1.3.6: | 8602 | /pinkie@2.0.4: |
4002 | resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} | 8603 | resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} |
4003 | dev: false | 8604 | engines: {node: '>=0.10.0'} |
8605 | dev: true | ||
4004 | 8606 | ||
4005 | /pluralize/8.0.0: | 8607 | /pino-abstract-transport@1.1.0: |
4006 | resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} | 8608 | resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} |
4007 | engines: {node: '>=4'} | 8609 | dependencies: |
4008 | dev: false | 8610 | readable-stream: 4.4.2 |
8611 | split2: 4.2.0 | ||
4009 | 8612 | ||
4010 | /pointer-symbol/1.0.0: | 8613 | /pino-pretty@10.2.0: |
4011 | resolution: {integrity: sha512-pozTTFO3kG9HQWXCSTJkCgq4fBF8lUQf+5bLddTEW6v4zdjQhcBVfLmKzABEMJMA7s8jhzi0sgANIwdrf4kq+A==} | 8614 | resolution: {integrity: sha512-tRvpyEmGtc2D+Lr3FulIZ+R1baggQ4S3xD2Ar93KixFEDx6SEAUP3W5aYuEw1C73d6ROrNcB2IXLteW8itlwhA==} |
8615 | hasBin: true | ||
8616 | dependencies: | ||
8617 | colorette: 2.0.20 | ||
8618 | dateformat: 4.6.3 | ||
8619 | fast-copy: 3.0.1 | ||
8620 | fast-safe-stringify: 2.1.1 | ||
8621 | help-me: 4.2.0 | ||
8622 | joycon: 3.1.1 | ||
8623 | minimist: 1.2.8 | ||
8624 | on-exit-leak-free: 2.1.0 | ||
8625 | pino-abstract-transport: 1.1.0 | ||
8626 | pump: 3.0.0 | ||
8627 | readable-stream: 4.4.2 | ||
8628 | secure-json-parse: 2.7.0 | ||
8629 | sonic-boom: 3.4.0 | ||
8630 | strip-json-comments: 3.1.1 | ||
8631 | |||
8632 | /pino-std-serializers@3.2.0: | ||
8633 | resolution: {integrity: sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==} | ||
8634 | |||
8635 | /pino-std-serializers@6.2.2: | ||
8636 | resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} | ||
8637 | |||
8638 | /pino@6.14.0: | ||
8639 | resolution: {integrity: sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==} | ||
8640 | hasBin: true | ||
8641 | dependencies: | ||
8642 | fast-redact: 3.3.0 | ||
8643 | fast-safe-stringify: 2.1.1 | ||
8644 | flatstr: 1.0.12 | ||
8645 | pino-std-serializers: 3.2.0 | ||
8646 | process-warning: 1.0.0 | ||
8647 | quick-format-unescaped: 4.0.4 | ||
8648 | sonic-boom: 1.4.1 | ||
8649 | |||
8650 | /pirates@4.0.6: | ||
8651 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} | ||
8652 | engines: {node: '>= 6'} | ||
8653 | dev: true | ||
8654 | |||
8655 | /pkg-dir@4.2.0: | ||
8656 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} | ||
8657 | engines: {node: '>=8'} | ||
8658 | dependencies: | ||
8659 | find-up: 4.1.0 | ||
8660 | dev: true | ||
8661 | |||
8662 | /pkg-up@3.1.0: | ||
8663 | resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} | ||
8664 | engines: {node: '>=8'} | ||
8665 | dependencies: | ||
8666 | find-up: 3.0.0 | ||
8667 | dev: true | ||
8668 | |||
8669 | /pluralize@8.0.0: | ||
8670 | resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} | ||
4012 | engines: {node: '>=4'} | 8671 | engines: {node: '>=4'} |
4013 | dev: false | ||
4014 | 8672 | ||
4015 | /posix-character-classes/0.1.1: | 8673 | /posix-character-classes@0.1.1: |
4016 | resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} | 8674 | resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} |
4017 | engines: {node: '>=0.10.0'} | 8675 | engines: {node: '>=0.10.0'} |
4018 | dev: false | 8676 | dev: true |
4019 | 8677 | ||
4020 | /postgres-array/2.0.0: | 8678 | /postcss-calc@9.0.1(postcss@8.4.31): |
4021 | resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} | 8679 | resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} |
4022 | engines: {node: '>=4'} | 8680 | engines: {node: ^14 || ^16 || >=18.0} |
4023 | dev: false | 8681 | peerDependencies: |
8682 | postcss: ^8.2.2 | ||
8683 | dependencies: | ||
8684 | postcss: 8.4.31 | ||
8685 | postcss-selector-parser: 6.0.13 | ||
8686 | postcss-value-parser: 4.2.0 | ||
8687 | dev: true | ||
4024 | 8688 | ||
4025 | /postgres-bytea/1.0.0: | 8689 | /postcss-colormin@6.0.0(postcss@8.4.31): |
4026 | resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} | 8690 | resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==} |
4027 | engines: {node: '>=0.10.0'} | 8691 | engines: {node: ^14 || ^16 || >=18.0} |
4028 | dev: false | 8692 | peerDependencies: |
8693 | postcss: ^8.2.15 | ||
8694 | dependencies: | ||
8695 | browserslist: 4.22.1 | ||
8696 | caniuse-api: 3.0.0 | ||
8697 | colord: 2.9.3 | ||
8698 | postcss: 8.4.31 | ||
8699 | postcss-value-parser: 4.2.0 | ||
8700 | dev: true | ||
4029 | 8701 | ||
4030 | /postgres-date/1.0.7: | 8702 | /postcss-convert-values@6.0.0(postcss@8.4.31): |
4031 | resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} | 8703 | resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==} |
4032 | engines: {node: '>=0.10.0'} | 8704 | engines: {node: ^14 || ^16 || >=18.0} |
4033 | dev: false | 8705 | peerDependencies: |
8706 | postcss: ^8.2.15 | ||
8707 | dependencies: | ||
8708 | browserslist: 4.22.1 | ||
8709 | postcss: 8.4.31 | ||
8710 | postcss-value-parser: 4.2.0 | ||
8711 | dev: true | ||
4034 | 8712 | ||
4035 | /postgres-interval/1.2.0: | 8713 | /postcss-discard-comments@6.0.0(postcss@8.4.31): |
4036 | resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} | 8714 | resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} |
4037 | engines: {node: '>=0.10.0'} | 8715 | engines: {node: ^14 || ^16 || >=18.0} |
8716 | peerDependencies: | ||
8717 | postcss: ^8.2.15 | ||
4038 | dependencies: | 8718 | dependencies: |
4039 | xtend: 4.0.2 | 8719 | postcss: 8.4.31 |
4040 | dev: false | 8720 | dev: true |
4041 | 8721 | ||
4042 | /prelude-ls/1.2.1: | 8722 | /postcss-discard-duplicates@6.0.0(postcss@8.4.31): |
4043 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} | 8723 | resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} |
4044 | engines: {node: '>= 0.8.0'} | 8724 | engines: {node: ^14 || ^16 || >=18.0} |
8725 | peerDependencies: | ||
8726 | postcss: ^8.2.15 | ||
8727 | dependencies: | ||
8728 | postcss: 8.4.31 | ||
4045 | dev: true | 8729 | dev: true |
4046 | 8730 | ||
4047 | /prepend-http/2.0.0: | 8731 | /postcss-discard-empty@6.0.0(postcss@8.4.31): |
4048 | resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} | 8732 | resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} |
4049 | engines: {node: '>=4'} | 8733 | engines: {node: ^14 || ^16 || >=18.0} |
4050 | dev: false | 8734 | peerDependencies: |
8735 | postcss: ^8.2.15 | ||
8736 | dependencies: | ||
8737 | postcss: 8.4.31 | ||
8738 | dev: true | ||
4051 | 8739 | ||
4052 | /prettier/2.3.2: | 8740 | /postcss-discard-overridden@6.0.0(postcss@8.4.31): |
4053 | resolution: {integrity: sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==} | 8741 | resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} |
4054 | engines: {node: '>=10.13.0'} | 8742 | engines: {node: ^14 || ^16 || >=18.0} |
4055 | hasBin: true | 8743 | peerDependencies: |
8744 | postcss: ^8.2.15 | ||
8745 | dependencies: | ||
8746 | postcss: 8.4.31 | ||
4056 | dev: true | 8747 | dev: true |
4057 | 8748 | ||
4058 | /pretty-hrtime/1.0.3: | 8749 | /postcss-merge-longhand@6.0.0(postcss@8.4.31): |
4059 | resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} | 8750 | resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==} |
4060 | engines: {node: '>= 0.8'} | 8751 | engines: {node: ^14 || ^16 || >=18.0} |
4061 | dev: false | 8752 | peerDependencies: |
8753 | postcss: ^8.2.15 | ||
8754 | dependencies: | ||
8755 | postcss: 8.4.31 | ||
8756 | postcss-value-parser: 4.2.0 | ||
8757 | stylehacks: 6.0.0(postcss@8.4.31) | ||
8758 | dev: true | ||
4062 | 8759 | ||
4063 | /process-nextick-args/2.0.1: | 8760 | /postcss-merge-rules@6.0.1(postcss@8.4.31): |
4064 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} | 8761 | resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==} |
4065 | dev: false | 8762 | engines: {node: ^14 || ^16 || >=18.0} |
8763 | peerDependencies: | ||
8764 | postcss: ^8.2.15 | ||
8765 | dependencies: | ||
8766 | browserslist: 4.22.1 | ||
8767 | caniuse-api: 3.0.0 | ||
8768 | cssnano-utils: 4.0.0(postcss@8.4.31) | ||
8769 | postcss: 8.4.31 | ||
8770 | postcss-selector-parser: 6.0.13 | ||
8771 | dev: true | ||
4066 | 8772 | ||
4067 | /progress/2.0.3: | 8773 | /postcss-minify-font-values@6.0.0(postcss@8.4.31): |
4068 | resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} | 8774 | resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} |
4069 | engines: {node: '>=0.4.0'} | 8775 | engines: {node: ^14 || ^16 || >=18.0} |
8776 | peerDependencies: | ||
8777 | postcss: ^8.2.15 | ||
8778 | dependencies: | ||
8779 | postcss: 8.4.31 | ||
8780 | postcss-value-parser: 4.2.0 | ||
4070 | dev: true | 8781 | dev: true |
4071 | 8782 | ||
4072 | /promise-reduce/2.1.0: | 8783 | /postcss-minify-gradients@6.0.0(postcss@8.4.31): |
4073 | resolution: {integrity: sha512-1sJPG9/CCNn+ZxvOLarfCTe+wYoDyS8MwftEIgOLu0UWrR0P9vTvxaMlr0uz4dz+RlZ1d4J6jnKGFdQ8z4LR4Q==} | 8784 | resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} |
8785 | engines: {node: ^14 || ^16 || >=18.0} | ||
8786 | peerDependencies: | ||
8787 | postcss: ^8.2.15 | ||
4074 | dependencies: | 8788 | dependencies: |
4075 | any-promise: 0.1.0 | 8789 | colord: 2.9.3 |
4076 | dev: false | 8790 | cssnano-utils: 4.0.0(postcss@8.4.31) |
8791 | postcss: 8.4.31 | ||
8792 | postcss-value-parser: 4.2.0 | ||
8793 | dev: true | ||
4077 | 8794 | ||
4078 | /prompt-actions/3.0.2: | 8795 | /postcss-minify-params@6.0.0(postcss@8.4.31): |
4079 | resolution: {integrity: sha512-dhz2Fl7vK+LPpmnQ/S/eSut4BnH4NZDLyddHKi5uTU/2PDn3grEMGkgsll16V5RpVUh/yxdiam0xsM0RD4xvtg==} | 8796 | resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} |
4080 | engines: {node: '>=4'} | 8797 | engines: {node: ^14 || ^16 || >=18.0} |
8798 | peerDependencies: | ||
8799 | postcss: ^8.2.15 | ||
4081 | dependencies: | 8800 | dependencies: |
4082 | debug: 2.6.9 | 8801 | browserslist: 4.22.1 |
4083 | transitivePeerDependencies: | 8802 | cssnano-utils: 4.0.0(postcss@8.4.31) |
4084 | - supports-color | 8803 | postcss: 8.4.31 |
4085 | dev: false | 8804 | postcss-value-parser: 4.2.0 |
8805 | dev: true | ||
4086 | 8806 | ||
4087 | /prompt-base/4.1.0: | 8807 | /postcss-minify-selectors@6.0.0(postcss@8.4.31): |
4088 | resolution: {integrity: sha512-svGzgLUKZoqomz9SGMkf1hBG8Wl3K7JGuRCXc/Pv7xw8239hhaTBXrmjt7EXA9P/QZzdyT8uNWt9F/iJTXq75g==} | 8808 | resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} |
4089 | engines: {node: '>=5.0'} | 8809 | engines: {node: ^14 || ^16 || >=18.0} |
8810 | peerDependencies: | ||
8811 | postcss: ^8.2.15 | ||
4090 | dependencies: | 8812 | dependencies: |
4091 | component-emitter: 1.3.0 | 8813 | postcss: 8.4.31 |
4092 | debug: 3.2.7 | 8814 | postcss-selector-parser: 6.0.13 |
4093 | koalas: 1.0.2 | 8815 | dev: true |
4094 | log-utils: 0.2.1 | 8816 | |
4095 | prompt-actions: 3.0.2 | 8817 | /postcss-modules-extract-imports@3.0.0(postcss@8.4.31): |
4096 | prompt-question: 5.0.2 | 8818 | resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} |
4097 | readline-ui: 2.2.3 | 8819 | engines: {node: ^10 || ^12 || >= 14} |
4098 | readline-utils: 2.2.3 | 8820 | peerDependencies: |
4099 | static-extend: 0.1.2 | 8821 | postcss: ^8.1.0 |
4100 | transitivePeerDependencies: | 8822 | dependencies: |
4101 | - supports-color | 8823 | postcss: 8.4.31 |
4102 | dev: false | 8824 | dev: true |
4103 | 8825 | ||
4104 | /prompt-checkbox/2.2.0: | 8826 | /postcss-modules-local-by-default@4.0.3(postcss@8.4.31): |
4105 | resolution: {integrity: sha512-T/QWgkdUmKjRSr0FQlV8O+LfgmBk8PwDbWhzllm7mwWNAjs3qOVuru5Y1gV4/14L73zCncqcuwGwvnDyVcVgvA==} | 8827 | resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} |
4106 | engines: {node: '>=5.0'} | 8828 | engines: {node: ^10 || ^12 || >= 14} |
8829 | peerDependencies: | ||
8830 | postcss: ^8.1.0 | ||
4107 | dependencies: | 8831 | dependencies: |
4108 | ansi-cyan: 0.1.1 | 8832 | icss-utils: 5.1.0(postcss@8.4.31) |
4109 | debug: 2.6.9 | 8833 | postcss: 8.4.31 |
4110 | prompt-base: 4.1.0 | 8834 | postcss-selector-parser: 6.0.13 |
4111 | transitivePeerDependencies: | 8835 | postcss-value-parser: 4.2.0 |
4112 | - supports-color | 8836 | dev: true |
4113 | dev: false | ||
4114 | 8837 | ||
4115 | /prompt-choices/3.0.6: | 8838 | /postcss-modules-scope@3.0.0(postcss@8.4.31): |
4116 | resolution: {integrity: sha512-KURGzPH4Dvsc3kM1f4yFnqGQ7B/xWb5gj23+ICgFHBUyHYSRAdxOu5aliHvI+RIPs5NQlF94zMVpXPLA34Ni3Q==} | 8839 | resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} |
4117 | engines: {node: '>=0.10.0'} | 8840 | engines: {node: ^10 || ^12 || >= 14} |
8841 | peerDependencies: | ||
8842 | postcss: ^8.1.0 | ||
4118 | dependencies: | 8843 | dependencies: |
4119 | arr-flatten: 1.1.0 | 8844 | postcss: 8.4.31 |
4120 | choices-separator: 2.0.0 | 8845 | postcss-selector-parser: 6.0.13 |
4121 | clone-deep: 0.3.0 | 8846 | dev: true |
4122 | collection-visit: 1.0.0 | ||
4123 | debug: 2.6.9 | ||
4124 | define-property: 1.0.0 | ||
4125 | extend-shallow: 2.0.1 | ||
4126 | is-number: 3.0.0 | ||
4127 | kind-of: 4.0.0 | ||
4128 | lazy-cache: 2.0.2 | ||
4129 | log-utils: 0.2.1 | ||
4130 | pointer-symbol: 1.0.0 | ||
4131 | radio-symbol: 2.0.0 | ||
4132 | set-value: 1.0.0 | ||
4133 | strip-color: 0.1.0 | ||
4134 | terminal-paginator: 2.0.2 | ||
4135 | toggle-array: 1.0.1 | ||
4136 | transitivePeerDependencies: | ||
4137 | - supports-color | ||
4138 | dev: false | ||
4139 | 8847 | ||
4140 | /prompt-choices/4.1.0: | 8848 | /postcss-modules-values@4.0.0(postcss@8.4.31): |
4141 | resolution: {integrity: sha512-ZNYLv6rW9z9n0WdwCkEuS+w5nUAGzRgtRt6GQ5aFNFz6MIcU7nHFlHOwZtzy7RQBk80KzUGPSRQphvMiQzB8pg==} | 8849 | resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} |
4142 | engines: {node: '>=4.0.0'} | 8850 | engines: {node: ^10 || ^12 || >= 14} |
8851 | peerDependencies: | ||
8852 | postcss: ^8.1.0 | ||
4143 | dependencies: | 8853 | dependencies: |
4144 | arr-flatten: 1.1.0 | 8854 | icss-utils: 5.1.0(postcss@8.4.31) |
4145 | arr-swap: 1.0.1 | 8855 | postcss: 8.4.31 |
4146 | choices-separator: 2.0.0 | 8856 | dev: true |
4147 | clone-deep: 4.0.1 | ||
4148 | collection-visit: 1.0.0 | ||
4149 | define-property: 2.0.2 | ||
4150 | is-number: 6.0.0 | ||
4151 | kind-of: 6.0.3 | ||
4152 | koalas: 1.0.2 | ||
4153 | log-utils: 0.2.1 | ||
4154 | pointer-symbol: 1.0.0 | ||
4155 | radio-symbol: 2.0.0 | ||
4156 | set-value: 3.0.3 | ||
4157 | strip-color: 0.1.0 | ||
4158 | terminal-paginator: 2.0.2 | ||
4159 | toggle-array: 1.0.1 | ||
4160 | transitivePeerDependencies: | ||
4161 | - supports-color | ||
4162 | dev: false | ||
4163 | 8857 | ||
4164 | /prompt-confirm/2.0.4: | 8858 | /postcss-normalize-charset@6.0.0(postcss@8.4.31): |
4165 | resolution: {integrity: sha512-X5lzbC8/kMNHdPOqQPfMKpH4VV2f7v2OTRJoN69ZYBirSwTeQaf9ZhmzPEO9ybMA0YV2Pha5MV27u2/U4ahWfg==} | 8859 | resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==} |
4166 | engines: {node: '>=6.0'} | 8860 | engines: {node: ^14 || ^16 || >=18.0} |
8861 | peerDependencies: | ||
8862 | postcss: ^8.2.15 | ||
4167 | dependencies: | 8863 | dependencies: |
4168 | ansi-cyan: 0.1.1 | 8864 | postcss: 8.4.31 |
4169 | prompt-base: 4.1.0 | 8865 | dev: true |
4170 | transitivePeerDependencies: | ||
4171 | - supports-color | ||
4172 | dev: false | ||
4173 | 8866 | ||
4174 | /prompt-expand/1.0.1: | 8867 | /postcss-normalize-display-values@6.0.0(postcss@8.4.31): |
4175 | resolution: {integrity: sha512-BDTw6tuWF6TuM1ZmwN5K/p6FCmm2E/QeQbtKoL76HrVdgjUQab9MQnIcWfTPh5d0NOO7Rf/Y1onvIQMkEw3Srg==} | 8868 | resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} |
4176 | engines: {node: '>=6'} | 8869 | engines: {node: ^14 || ^16 || >=18.0} |
8870 | peerDependencies: | ||
8871 | postcss: ^8.2.15 | ||
4177 | dependencies: | 8872 | dependencies: |
4178 | ansi-colors: 1.1.0 | 8873 | postcss: 8.4.31 |
4179 | prompt-rawlist: 2.0.1 | 8874 | postcss-value-parser: 4.2.0 |
4180 | transitivePeerDependencies: | 8875 | dev: true |
4181 | - supports-color | ||
4182 | dev: false | ||
4183 | 8876 | ||
4184 | /prompt-input/3.0.0: | 8877 | /postcss-normalize-positions@6.0.0(postcss@8.4.31): |
4185 | resolution: {integrity: sha512-c0udMEi7nWE+n+enZKfyMl+HWZ6/0qFELGqzWTQ1D2QXCFwDpFZ1X41+CmYwjGwEkGFQVBTLMH+8VenvR5uGOA==} | 8878 | resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} |
4186 | engines: {node: '>=5.0'} | 8879 | engines: {node: ^14 || ^16 || >=18.0} |
8880 | peerDependencies: | ||
8881 | postcss: ^8.2.15 | ||
4187 | dependencies: | 8882 | dependencies: |
4188 | debug: 2.6.9 | 8883 | postcss: 8.4.31 |
4189 | prompt-base: 4.1.0 | 8884 | postcss-value-parser: 4.2.0 |
4190 | transitivePeerDependencies: | 8885 | dev: true |
4191 | - supports-color | ||
4192 | dev: false | ||
4193 | 8886 | ||
4194 | /prompt-list/2.2.0: | 8887 | /postcss-normalize-repeat-style@6.0.0(postcss@8.4.31): |
4195 | resolution: {integrity: sha512-41Eu3las4OthLTotMC6VyGPQaLXKWnoyqirgGKzTHxErV5JEediDkdjv+FF4AKTwBCkpt2I0TQSa24qAU1b9Bw==} | 8888 | resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} |
4196 | engines: {node: '>=5.0'} | 8889 | engines: {node: ^14 || ^16 || >=18.0} |
8890 | peerDependencies: | ||
8891 | postcss: ^8.2.15 | ||
4197 | dependencies: | 8892 | dependencies: |
4198 | ansi-cyan: 0.1.1 | 8893 | postcss: 8.4.31 |
4199 | ansi-dim: 0.1.1 | 8894 | postcss-value-parser: 4.2.0 |
4200 | debug: 3.2.7 | 8895 | dev: true |
4201 | prompt-radio: 1.2.1 | ||
4202 | transitivePeerDependencies: | ||
4203 | - supports-color | ||
4204 | dev: false | ||
4205 | 8896 | ||
4206 | /prompt-list/3.2.0: | 8897 | /postcss-normalize-string@6.0.0(postcss@8.4.31): |
4207 | resolution: {integrity: sha512-PDao47cmC9+m2zEUghH+WIIascd8SuyyWO+akuUubd0XxOQyUH96HMdIcL3YnNS8kJUHwddH1rHVgL9vZA1QsQ==} | 8898 | resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} |
8899 | engines: {node: ^14 || ^16 || >=18.0} | ||
8900 | peerDependencies: | ||
8901 | postcss: ^8.2.15 | ||
8902 | dependencies: | ||
8903 | postcss: 8.4.31 | ||
8904 | postcss-value-parser: 4.2.0 | ||
8905 | dev: true | ||
8906 | |||
8907 | /postcss-normalize-timing-functions@6.0.0(postcss@8.4.31): | ||
8908 | resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} | ||
8909 | engines: {node: ^14 || ^16 || >=18.0} | ||
8910 | peerDependencies: | ||
8911 | postcss: ^8.2.15 | ||
8912 | dependencies: | ||
8913 | postcss: 8.4.31 | ||
8914 | postcss-value-parser: 4.2.0 | ||
8915 | dev: true | ||
8916 | |||
8917 | /postcss-normalize-unicode@6.0.0(postcss@8.4.31): | ||
8918 | resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} | ||
8919 | engines: {node: ^14 || ^16 || >=18.0} | ||
8920 | peerDependencies: | ||
8921 | postcss: ^8.2.15 | ||
8922 | dependencies: | ||
8923 | browserslist: 4.22.1 | ||
8924 | postcss: 8.4.31 | ||
8925 | postcss-value-parser: 4.2.0 | ||
8926 | dev: true | ||
8927 | |||
8928 | /postcss-normalize-url@6.0.0(postcss@8.4.31): | ||
8929 | resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} | ||
8930 | engines: {node: ^14 || ^16 || >=18.0} | ||
8931 | peerDependencies: | ||
8932 | postcss: ^8.2.15 | ||
8933 | dependencies: | ||
8934 | postcss: 8.4.31 | ||
8935 | postcss-value-parser: 4.2.0 | ||
8936 | dev: true | ||
8937 | |||
8938 | /postcss-normalize-whitespace@6.0.0(postcss@8.4.31): | ||
8939 | resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} | ||
8940 | engines: {node: ^14 || ^16 || >=18.0} | ||
8941 | peerDependencies: | ||
8942 | postcss: ^8.2.15 | ||
8943 | dependencies: | ||
8944 | postcss: 8.4.31 | ||
8945 | postcss-value-parser: 4.2.0 | ||
8946 | dev: true | ||
8947 | |||
8948 | /postcss-ordered-values@6.0.0(postcss@8.4.31): | ||
8949 | resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} | ||
8950 | engines: {node: ^14 || ^16 || >=18.0} | ||
8951 | peerDependencies: | ||
8952 | postcss: ^8.2.15 | ||
8953 | dependencies: | ||
8954 | cssnano-utils: 4.0.0(postcss@8.4.31) | ||
8955 | postcss: 8.4.31 | ||
8956 | postcss-value-parser: 4.2.0 | ||
8957 | dev: true | ||
8958 | |||
8959 | /postcss-reduce-initial@6.0.0(postcss@8.4.31): | ||
8960 | resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} | ||
8961 | engines: {node: ^14 || ^16 || >=18.0} | ||
8962 | peerDependencies: | ||
8963 | postcss: ^8.2.15 | ||
8964 | dependencies: | ||
8965 | browserslist: 4.22.1 | ||
8966 | caniuse-api: 3.0.0 | ||
8967 | postcss: 8.4.31 | ||
8968 | dev: true | ||
8969 | |||
8970 | /postcss-reduce-transforms@6.0.0(postcss@8.4.31): | ||
8971 | resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} | ||
8972 | engines: {node: ^14 || ^16 || >=18.0} | ||
8973 | peerDependencies: | ||
8974 | postcss: ^8.2.15 | ||
8975 | dependencies: | ||
8976 | postcss: 8.4.31 | ||
8977 | postcss-value-parser: 4.2.0 | ||
8978 | dev: true | ||
8979 | |||
8980 | /postcss-selector-parser@6.0.13: | ||
8981 | resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} | ||
4208 | engines: {node: '>=4'} | 8982 | engines: {node: '>=4'} |
4209 | dependencies: | 8983 | dependencies: |
4210 | ansi-cyan: 0.1.1 | 8984 | cssesc: 3.0.0 |
4211 | ansi-dim: 0.1.1 | 8985 | util-deprecate: 1.0.2 |
4212 | prompt-radio: 1.2.1 | 8986 | dev: true |
4213 | transitivePeerDependencies: | ||
4214 | - supports-color | ||
4215 | dev: false | ||
4216 | 8987 | ||
4217 | /prompt-password/1.2.0: | 8988 | /postcss-svgo@6.0.0(postcss@8.4.31): |
4218 | resolution: {integrity: sha512-lBehk9YPGLxH9hAJ+VU7Bj/ePi9t5kPL/1ZBGZ2fLrDX1QeaBwi4RtQggZrsbMalGJaXaAuo/7VOa7QvbE2hAQ==} | 8989 | resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} |
4219 | engines: {node: '>=5.0'} | 8990 | engines: {node: ^14 || ^16 || >= 18} |
8991 | peerDependencies: | ||
8992 | postcss: ^8.2.15 | ||
4220 | dependencies: | 8993 | dependencies: |
4221 | debug: 2.6.9 | 8994 | postcss: 8.4.31 |
4222 | prompt-base: 4.1.0 | 8995 | postcss-value-parser: 4.2.0 |
4223 | transitivePeerDependencies: | 8996 | svgo: 3.0.2 |
4224 | - supports-color | 8997 | dev: true |
8998 | |||
8999 | /postcss-unique-selectors@6.0.0(postcss@8.4.31): | ||
9000 | resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} | ||
9001 | engines: {node: ^14 || ^16 || >=18.0} | ||
9002 | peerDependencies: | ||
9003 | postcss: ^8.2.15 | ||
9004 | dependencies: | ||
9005 | postcss: 8.4.31 | ||
9006 | postcss-selector-parser: 6.0.13 | ||
9007 | dev: true | ||
9008 | |||
9009 | /postcss-value-parser@4.2.0: | ||
9010 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} | ||
9011 | dev: true | ||
9012 | |||
9013 | /postcss@8.4.31: | ||
9014 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} | ||
9015 | engines: {node: ^10 || ^12 || >=14} | ||
9016 | dependencies: | ||
9017 | nanoid: 3.3.6 | ||
9018 | picocolors: 1.0.0 | ||
9019 | source-map-js: 1.0.2 | ||
9020 | dev: true | ||
9021 | |||
9022 | /postgres-array@2.0.0: | ||
9023 | resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} | ||
9024 | engines: {node: '>=4'} | ||
4225 | dev: false | 9025 | dev: false |
4226 | 9026 | ||
4227 | /prompt-question/3.0.3: | 9027 | /postgres-bytea@1.0.0: |
4228 | resolution: {integrity: sha512-F1zOy65ICBRMx+vhlSow7ptiHTUPwJJJN6Ww4/i/AN9zKAYbDOhk95MhxyepqV6ROX/KhTPGdqO/EcOhlPbs2Q==} | 9028 | resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} |
4229 | engines: {node: '>=0.10.0'} | 9029 | engines: {node: '>=0.10.0'} |
4230 | dependencies: | ||
4231 | clone-deep: 0.3.0 | ||
4232 | debug: 2.6.9 | ||
4233 | define-property: 1.0.0 | ||
4234 | extend-shallow: 2.0.1 | ||
4235 | kind-of: 4.0.0 | ||
4236 | koalas: 1.0.2 | ||
4237 | prompt-choices: 3.0.6 | ||
4238 | transitivePeerDependencies: | ||
4239 | - supports-color | ||
4240 | dev: false | 9030 | dev: false |
4241 | 9031 | ||
4242 | /prompt-question/5.0.2: | 9032 | /postgres-date@1.0.7: |
4243 | resolution: {integrity: sha512-wreaLbbu8f5+7zXds199uiT11Ojp59Z4iBi6hONlSLtsKGTvL2UY8VglcxQ3t/X4qWIxsNCg6aT4O8keO65v6Q==} | 9033 | resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} |
4244 | engines: {node: '>=4.0.0'} | 9034 | engines: {node: '>=0.10.0'} |
9035 | dev: false | ||
9036 | |||
9037 | /postgres-interval@1.2.0: | ||
9038 | resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} | ||
9039 | engines: {node: '>=0.10.0'} | ||
4245 | dependencies: | 9040 | dependencies: |
4246 | clone-deep: 1.0.0 | 9041 | xtend: 4.0.2 |
4247 | debug: 3.2.7 | ||
4248 | define-property: 1.0.0 | ||
4249 | isobject: 3.0.1 | ||
4250 | kind-of: 5.1.0 | ||
4251 | koalas: 1.0.2 | ||
4252 | prompt-choices: 4.1.0 | ||
4253 | transitivePeerDependencies: | ||
4254 | - supports-color | ||
4255 | dev: false | 9042 | dev: false |
4256 | 9043 | ||
4257 | /prompt-radio/1.2.1: | 9044 | /prelude-ls@1.2.1: |
4258 | resolution: {integrity: sha512-vH1iAkgbWyvZBC1BTajydiHmwJP4F1b684gq0fm2wOjPVW1zaDo01OXWr/Dske0XdoHhtZFNMOXNj/ZUSRBywg==} | 9045 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} |
4259 | engines: {node: '>=5.0'} | 9046 | engines: {node: '>= 0.8.0'} |
9047 | dev: true | ||
9048 | |||
9049 | /prettier-linter-helpers@1.0.0: | ||
9050 | resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} | ||
9051 | engines: {node: '>=6.0.0'} | ||
4260 | dependencies: | 9052 | dependencies: |
4261 | debug: 2.6.9 | 9053 | fast-diff: 1.3.0 |
4262 | prompt-checkbox: 2.2.0 | 9054 | dev: true |
4263 | transitivePeerDependencies: | 9055 | |
4264 | - supports-color | 9056 | /prettier@3.0.0: |
9057 | resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} | ||
9058 | engines: {node: '>=14'} | ||
9059 | hasBin: true | ||
9060 | dev: true | ||
9061 | |||
9062 | /pretty-error@4.0.0: | ||
9063 | resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} | ||
9064 | dependencies: | ||
9065 | lodash: 4.17.21 | ||
9066 | renderkid: 3.0.0 | ||
9067 | dev: true | ||
9068 | |||
9069 | /pretty-format@25.5.0: | ||
9070 | resolution: {integrity: sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==} | ||
9071 | engines: {node: '>= 8.3'} | ||
9072 | dependencies: | ||
9073 | '@jest/types': 25.5.0 | ||
9074 | ansi-regex: 5.0.1 | ||
9075 | ansi-styles: 4.3.0 | ||
9076 | react-is: 16.13.1 | ||
9077 | dev: true | ||
9078 | |||
9079 | /pretty-format@29.7.0: | ||
9080 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} | ||
9081 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} | ||
9082 | dependencies: | ||
9083 | '@jest/schemas': 29.6.3 | ||
9084 | ansi-styles: 5.2.0 | ||
9085 | react-is: 18.2.0 | ||
9086 | dev: true | ||
9087 | |||
9088 | /pretty-hrtime@1.0.3: | ||
9089 | resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} | ||
9090 | engines: {node: '>= 0.8'} | ||
9091 | |||
9092 | /printable-characters@1.0.42: | ||
9093 | resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} | ||
9094 | dev: true | ||
9095 | |||
9096 | /process-nextick-args@2.0.1: | ||
9097 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} | ||
9098 | |||
9099 | /process-warning@1.0.0: | ||
9100 | resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} | ||
9101 | |||
9102 | /process@0.11.10: | ||
9103 | resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} | ||
9104 | engines: {node: '>= 0.6.0'} | ||
9105 | |||
9106 | /promise-inflight@1.0.1: | ||
9107 | resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} | ||
9108 | requiresBuild: true | ||
9109 | peerDependencies: | ||
9110 | bluebird: '*' | ||
9111 | peerDependenciesMeta: | ||
9112 | bluebird: | ||
9113 | optional: true | ||
4265 | dev: false | 9114 | dev: false |
9115 | optional: true | ||
4266 | 9116 | ||
4267 | /prompt-rawlist/2.0.1: | 9117 | /promise-retry@2.0.1: |
4268 | resolution: {integrity: sha512-mhCPnC7fvjcCZuksiF380arJKiXjSP9WT6kZqO+biFg+yHBpDLAs4GCck5nRkvL9ikYur/wPz6fAzV63HI7gLg==} | 9118 | resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} |
4269 | engines: {node: '>=5.0'} | 9119 | engines: {node: '>=10'} |
9120 | requiresBuild: true | ||
4270 | dependencies: | 9121 | dependencies: |
4271 | ansi-cyan: 0.1.1 | 9122 | err-code: 2.0.3 |
4272 | ansi-dim: 0.1.1 | 9123 | retry: 0.12.0 |
4273 | ansi-red: 0.1.1 | ||
4274 | is-number: 3.0.0 | ||
4275 | prompt-list: 2.2.0 | ||
4276 | transitivePeerDependencies: | ||
4277 | - supports-color | ||
4278 | dev: false | 9124 | dev: false |
9125 | optional: true | ||
4279 | 9126 | ||
4280 | /proxy-addr/2.0.7: | 9127 | /prop-ini@0.0.2: |
9128 | resolution: {integrity: sha512-qyU57WvAvZDbzmRy9xDbJGVwrGJhmA+rYnVjy4xtX4Ny9c7gzvpmf/j7A3oq9ChbPh15MZQKjPep2mNdnAhtig==} | ||
9129 | dependencies: | ||
9130 | extend: 3.0.2 | ||
9131 | dev: true | ||
9132 | |||
9133 | /proxy-addr@2.0.7: | ||
4281 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} | 9134 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} |
4282 | engines: {node: '>= 0.10'} | 9135 | engines: {node: '>= 0.10'} |
4283 | dependencies: | 9136 | dependencies: |
4284 | forwarded: 0.2.0 | 9137 | forwarded: 0.2.0 |
4285 | ipaddr.js: 1.9.1 | 9138 | ipaddr.js: 1.9.1 |
4286 | dev: false | ||
4287 | 9139 | ||
4288 | /pseudomap/1.0.2: | 9140 | /pseudomap@1.0.2: |
4289 | resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} | 9141 | resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} |
4290 | dev: false | 9142 | dev: true |
4291 | 9143 | ||
4292 | /psl/1.9.0: | 9144 | /pump@1.0.3: |
4293 | resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} | 9145 | resolution: {integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==} |
9146 | dependencies: | ||
9147 | end-of-stream: 1.4.4 | ||
9148 | once: 1.4.0 | ||
4294 | dev: false | 9149 | dev: false |
4295 | 9150 | ||
4296 | /pump/1.0.3: | 9151 | /pump@3.0.0: |
4297 | resolution: {integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==} | 9152 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} |
4298 | dependencies: | 9153 | dependencies: |
4299 | end-of-stream: 1.4.4 | 9154 | end-of-stream: 1.4.4 |
4300 | once: 1.4.0 | 9155 | once: 1.4.0 |
9156 | |||
9157 | /punycode@1.3.2: | ||
9158 | resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} | ||
4301 | dev: false | 9159 | dev: false |
4302 | 9160 | ||
4303 | /punycode/2.1.1: | 9161 | /punycode@2.3.0: |
4304 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} | 9162 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} |
4305 | engines: {node: '>=6'} | 9163 | engines: {node: '>=6'} |
9164 | dev: true | ||
4306 | 9165 | ||
4307 | /qs/6.11.0: | 9166 | /qs@6.11.0: |
4308 | resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} | 9167 | resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} |
4309 | engines: {node: '>=0.6'} | 9168 | engines: {node: '>=0.6'} |
4310 | dependencies: | 9169 | dependencies: |
4311 | side-channel: 1.0.4 | 9170 | side-channel: 1.0.4 |
4312 | dev: false | 9171 | dev: true |
4313 | 9172 | ||
4314 | /qs/6.5.3: | 9173 | /qs@6.11.2: |
4315 | resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} | 9174 | resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} |
4316 | engines: {node: '>=0.6'} | 9175 | engines: {node: '>=0.6'} |
4317 | dev: false | ||
4318 | |||
4319 | /query-string/5.1.1: | ||
4320 | resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==} | ||
4321 | engines: {node: '>=0.10.0'} | ||
4322 | dependencies: | 9176 | dependencies: |
4323 | decode-uri-component: 0.2.2 | 9177 | side-channel: 1.0.4 |
4324 | object-assign: 4.1.1 | 9178 | |
4325 | strict-uri-encode: 1.1.0 | 9179 | /querystring@0.2.0: |
9180 | resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} | ||
9181 | engines: {node: '>=0.4.x'} | ||
9182 | deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. | ||
4326 | dev: false | 9183 | dev: false |
4327 | 9184 | ||
4328 | /radio-symbol/2.0.0: | 9185 | /queue-microtask@1.2.3: |
4329 | resolution: {integrity: sha512-fpuWhwGD4XG1BfUWKXhCqdguCXzGi/DDb6RzmAGZo9R75enjlx0l+ZhHF93KNG7iNpT0Vi7wEqbf8ZErbe+JtQ==} | 9186 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} |
4330 | engines: {node: '>=0.10.0'} | 9187 | |
4331 | dependencies: | 9188 | /quick-format-unescaped@4.0.4: |
4332 | ansi-gray: 0.1.1 | 9189 | resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} |
4333 | ansi-green: 0.1.1 | 9190 | |
4334 | is-windows: 1.0.2 | 9191 | /quick-lru@5.1.1: |
9192 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} | ||
9193 | engines: {node: '>=10'} | ||
4335 | dev: false | 9194 | dev: false |
4336 | 9195 | ||
4337 | /rand-token/0.4.0: | 9196 | /rand-token@1.0.1: |
4338 | resolution: {integrity: sha512-FLNNsir2R+XY8LKsZ+8u/w0qZ4sGit7cpNdznsI77cAVob6UlVPueDKRyjJ3W1Q6FJLgAVH98JvlqqpSaL7NEQ==} | 9197 | resolution: {integrity: sha512-Zri5SfJmEzBJ3IexFdigvPSCamslJ7UjLkUn0tlgH7COJvaUr5V7FyUYgKifEMTw7gFO8ZLcWjcU+kq8akipzg==} |
4339 | engines: {node: '>= 0.8.0'} | 9198 | engines: {node: '>= 10'} |
4340 | dev: false | 9199 | dev: false |
4341 | 9200 | ||
4342 | /random-bytes/1.0.0: | 9201 | /random-bytes@1.0.0: |
4343 | resolution: {integrity: sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==} | 9202 | resolution: {integrity: sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==} |
4344 | engines: {node: '>= 0.8'} | 9203 | engines: {node: '>= 0.8'} |
4345 | dev: false | ||
4346 | 9204 | ||
4347 | /range-parser/1.2.1: | 9205 | /randombytes@2.1.0: |
9206 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} | ||
9207 | dependencies: | ||
9208 | safe-buffer: 5.2.1 | ||
9209 | dev: true | ||
9210 | |||
9211 | /range-parser@1.2.1: | ||
4348 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} | 9212 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} |
4349 | engines: {node: '>= 0.6'} | 9213 | engines: {node: '>= 0.6'} |
4350 | dev: false | ||
4351 | 9214 | ||
4352 | /raw-body/2.5.1: | 9215 | /raw-body@2.5.1: |
4353 | resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} | 9216 | resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} |
4354 | engines: {node: '>= 0.8'} | 9217 | engines: {node: '>= 0.8'} |
4355 | dependencies: | 9218 | dependencies: |
@@ -4357,19 +9220,55 @@ packages: | |||
4357 | http-errors: 2.0.0 | 9220 | http-errors: 2.0.0 |
4358 | iconv-lite: 0.4.24 | 9221 | iconv-lite: 0.4.24 |
4359 | unpipe: 1.0.0 | 9222 | unpipe: 1.0.0 |
4360 | dev: false | 9223 | dev: true |
9224 | |||
9225 | /raw-body@2.5.2: | ||
9226 | resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} | ||
9227 | engines: {node: '>= 0.8'} | ||
9228 | dependencies: | ||
9229 | bytes: 3.1.2 | ||
9230 | http-errors: 2.0.0 | ||
9231 | iconv-lite: 0.4.24 | ||
9232 | unpipe: 1.0.0 | ||
4361 | 9233 | ||
4362 | /rc/1.2.8: | 9234 | /rc@1.2.8: |
4363 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} | 9235 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} |
4364 | hasBin: true | 9236 | hasBin: true |
4365 | dependencies: | 9237 | dependencies: |
4366 | deep-extend: 0.6.0 | 9238 | deep-extend: 0.6.0 |
4367 | ini: 1.3.8 | 9239 | ini: 1.3.8 |
4368 | minimist: 1.2.7 | 9240 | minimist: 1.2.8 |
4369 | strip-json-comments: 2.0.1 | 9241 | strip-json-comments: 2.0.1 |
4370 | dev: false | 9242 | dev: true |
9243 | |||
9244 | /react-is@16.13.1: | ||
9245 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} | ||
9246 | dev: true | ||
9247 | |||
9248 | /react-is@18.2.0: | ||
9249 | resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} | ||
9250 | dev: true | ||
9251 | |||
9252 | /read-pkg-up@7.0.1: | ||
9253 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} | ||
9254 | engines: {node: '>=8'} | ||
9255 | dependencies: | ||
9256 | find-up: 4.1.0 | ||
9257 | read-pkg: 5.2.0 | ||
9258 | type-fest: 0.8.1 | ||
9259 | dev: true | ||
9260 | |||
9261 | /read-pkg@5.2.0: | ||
9262 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} | ||
9263 | engines: {node: '>=8'} | ||
9264 | dependencies: | ||
9265 | '@types/normalize-package-data': 2.4.2 | ||
9266 | normalize-package-data: 2.5.0 | ||
9267 | parse-json: 5.2.0 | ||
9268 | type-fest: 0.6.0 | ||
9269 | dev: true | ||
4371 | 9270 | ||
4372 | /readable-stream/2.3.7: | 9271 | /readable-stream@2.3.7: |
4373 | resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} | 9272 | resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} |
4374 | dependencies: | 9273 | dependencies: |
4375 | core-util-is: 1.0.3 | 9274 | core-util-is: 1.0.3 |
@@ -4381,314 +9280,390 @@ packages: | |||
4381 | util-deprecate: 1.0.2 | 9280 | util-deprecate: 1.0.2 |
4382 | dev: false | 9281 | dev: false |
4383 | 9282 | ||
4384 | /readable-stream/3.6.0: | 9283 | /readable-stream@2.3.8: |
4385 | resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} | 9284 | resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} |
9285 | dependencies: | ||
9286 | core-util-is: 1.0.3 | ||
9287 | inherits: 2.0.4 | ||
9288 | isarray: 1.0.0 | ||
9289 | process-nextick-args: 2.0.1 | ||
9290 | safe-buffer: 5.1.2 | ||
9291 | string_decoder: 1.1.1 | ||
9292 | util-deprecate: 1.0.2 | ||
9293 | |||
9294 | /readable-stream@3.6.2: | ||
9295 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} | ||
4386 | engines: {node: '>= 6'} | 9296 | engines: {node: '>= 6'} |
4387 | dependencies: | 9297 | dependencies: |
4388 | inherits: 2.0.4 | 9298 | inherits: 2.0.4 |
4389 | string_decoder: 1.3.0 | 9299 | string_decoder: 1.3.0 |
4390 | util-deprecate: 1.0.2 | 9300 | util-deprecate: 1.0.2 |
4391 | dev: false | ||
4392 | 9301 | ||
4393 | /readline-ui/2.2.3: | 9302 | /readable-stream@4.4.2: |
4394 | resolution: {integrity: sha512-ix7jz0PxqQqcIuq3yQTHv1TOhlD2IHO74aNO+lSuXsRYm1d+pdyup1yF3zKyLK1wWZrVNGjkzw5tUegO2IDy+A==} | 9303 | resolution: {integrity: sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==} |
4395 | engines: {node: '>=4.0'} | 9304 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
4396 | dependencies: | 9305 | dependencies: |
4397 | component-emitter: 1.3.0 | 9306 | abort-controller: 3.0.0 |
4398 | debug: 2.6.9 | 9307 | buffer: 6.0.3 |
4399 | readline-utils: 2.2.3 | 9308 | events: 3.3.0 |
4400 | string-width: 2.1.1 | 9309 | process: 0.11.10 |
4401 | transitivePeerDependencies: | 9310 | string_decoder: 1.3.0 |
4402 | - supports-color | ||
4403 | dev: false | ||
4404 | 9311 | ||
4405 | /readline-utils/2.2.3: | 9312 | /readable-web-to-node-stream@3.0.2: |
4406 | resolution: {integrity: sha512-cjFo7R7e7AaFOz2JLQ4EgsHh4+l7mw29Eu3DAEPgGeWbYQFKqyxWsL61/McC6b2oJAvn14Ea8eUms9o8ZFC1iQ==} | 9313 | resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} |
4407 | engines: {node: '>=4.0'} | 9314 | engines: {node: '>=8'} |
4408 | dependencies: | 9315 | dependencies: |
4409 | arr-flatten: 1.1.0 | 9316 | readable-stream: 3.6.2 |
4410 | extend-shallow: 2.0.1 | ||
4411 | is-buffer: 1.1.6 | ||
4412 | is-number: 3.0.0 | ||
4413 | is-windows: 1.0.2 | ||
4414 | koalas: 1.0.2 | ||
4415 | mute-stream: 0.0.7 | ||
4416 | strip-color: 0.1.0 | ||
4417 | window-size: 1.1.1 | ||
4418 | dev: false | ||
4419 | 9317 | ||
4420 | /rechoir/0.6.2: | 9318 | /readdirp@3.6.0: |
4421 | resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} | 9319 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} |
4422 | engines: {node: '>= 0.10'} | 9320 | engines: {node: '>=8.10.0'} |
9321 | dependencies: | ||
9322 | picomatch: 2.3.1 | ||
9323 | dev: true | ||
9324 | |||
9325 | /readme-badger@0.3.0: | ||
9326 | resolution: {integrity: sha512-+sMOLSs1imZUISZ2Rhz7qqVd77QtpcAPbGeIraFdgJmijb04YtdlPjGNBvDChTNtLbeQ6JNGQy3pOgslWfaP3g==} | ||
9327 | dependencies: | ||
9328 | balanced-match: 1.0.2 | ||
9329 | dev: true | ||
9330 | |||
9331 | /rechoir@0.8.0: | ||
9332 | resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} | ||
9333 | engines: {node: '>= 10.13.0'} | ||
9334 | dependencies: | ||
9335 | resolve: 1.22.6 | ||
9336 | |||
9337 | /redeyed@2.1.1: | ||
9338 | resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} | ||
4423 | dependencies: | 9339 | dependencies: |
4424 | resolve: 1.22.1 | 9340 | esprima: 4.0.1 |
9341 | dev: true | ||
9342 | |||
9343 | /reflect-metadata@0.1.13: | ||
9344 | resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} | ||
4425 | dev: false | 9345 | dev: false |
4426 | 9346 | ||
4427 | /regenerator-runtime/0.13.11: | 9347 | /regenerate-unicode-properties@10.1.1: |
4428 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} | 9348 | resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} |
9349 | engines: {node: '>=4'} | ||
9350 | dependencies: | ||
9351 | regenerate: 1.4.2 | ||
9352 | dev: true | ||
9353 | |||
9354 | /regenerate@1.4.2: | ||
9355 | resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} | ||
4429 | dev: true | 9356 | dev: true |
4430 | 9357 | ||
4431 | /regex-not/1.0.2: | 9358 | /regenerator-runtime@0.14.0: |
9359 | resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} | ||
9360 | dev: true | ||
9361 | |||
9362 | /regenerator-transform@0.15.2: | ||
9363 | resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} | ||
9364 | dependencies: | ||
9365 | '@babel/runtime': 7.23.1 | ||
9366 | dev: true | ||
9367 | |||
9368 | /regex-not@1.0.2: | ||
4432 | resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} | 9369 | resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} |
4433 | engines: {node: '>=0.10.0'} | 9370 | engines: {node: '>=0.10.0'} |
4434 | dependencies: | 9371 | dependencies: |
4435 | extend-shallow: 3.0.2 | 9372 | extend-shallow: 3.0.2 |
4436 | safe-regex: 1.1.0 | 9373 | safe-regex: 1.1.0 |
4437 | dev: false | 9374 | dev: true |
9375 | |||
9376 | /regex-parser@2.2.11: | ||
9377 | resolution: {integrity: sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==} | ||
9378 | dev: true | ||
4438 | 9379 | ||
4439 | /regexp.prototype.flags/1.4.3: | 9380 | /regexp-tree@0.1.27: |
4440 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} | 9381 | resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} |
9382 | hasBin: true | ||
9383 | dev: true | ||
9384 | |||
9385 | /regexp.prototype.flags@1.5.1: | ||
9386 | resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} | ||
4441 | engines: {node: '>= 0.4'} | 9387 | engines: {node: '>= 0.4'} |
4442 | dependencies: | 9388 | dependencies: |
4443 | call-bind: 1.0.2 | 9389 | call-bind: 1.0.2 |
4444 | define-properties: 1.1.4 | 9390 | define-properties: 1.2.1 |
4445 | functions-have-names: 1.2.3 | 9391 | set-function-name: 2.0.1 |
4446 | dev: true | 9392 | dev: true |
4447 | 9393 | ||
4448 | /regexpp/3.2.0: | 9394 | /regexpu-core@5.3.2: |
4449 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} | 9395 | resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} |
4450 | engines: {node: '>=8'} | 9396 | engines: {node: '>=4'} |
9397 | dependencies: | ||
9398 | '@babel/regjsgen': 0.8.0 | ||
9399 | regenerate: 1.4.2 | ||
9400 | regenerate-unicode-properties: 10.1.1 | ||
9401 | regjsparser: 0.9.1 | ||
9402 | unicode-match-property-ecmascript: 2.0.0 | ||
9403 | unicode-match-property-value-ecmascript: 2.1.0 | ||
9404 | dev: true | ||
9405 | |||
9406 | /regjsparser@0.10.0: | ||
9407 | resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} | ||
9408 | hasBin: true | ||
9409 | dependencies: | ||
9410 | jsesc: 0.5.0 | ||
9411 | dev: true | ||
9412 | |||
9413 | /regjsparser@0.9.1: | ||
9414 | resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} | ||
9415 | hasBin: true | ||
9416 | dependencies: | ||
9417 | jsesc: 0.5.0 | ||
9418 | dev: true | ||
9419 | |||
9420 | /renderkid@3.0.0: | ||
9421 | resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} | ||
9422 | dependencies: | ||
9423 | css-select: 4.3.0 | ||
9424 | dom-converter: 0.2.0 | ||
9425 | htmlparser2: 6.1.0 | ||
9426 | lodash: 4.17.21 | ||
9427 | strip-ansi: 6.0.1 | ||
4451 | dev: true | 9428 | dev: true |
4452 | 9429 | ||
4453 | /repeat-element/1.1.4: | 9430 | /repeat-element@1.1.4: |
4454 | resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} | 9431 | resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} |
4455 | engines: {node: '>=0.10.0'} | 9432 | engines: {node: '>=0.10.0'} |
4456 | dev: false | 9433 | dev: true |
4457 | 9434 | ||
4458 | /repeat-string/1.6.1: | 9435 | /repeat-string@1.6.1: |
4459 | resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} | 9436 | resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} |
4460 | engines: {node: '>=0.10'} | 9437 | engines: {node: '>=0.10'} |
4461 | dev: false | 9438 | dev: true |
4462 | |||
4463 | /request/2.88.2: | ||
4464 | resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} | ||
4465 | engines: {node: '>= 6'} | ||
4466 | deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 | ||
4467 | dependencies: | ||
4468 | aws-sign2: 0.7.0 | ||
4469 | aws4: 1.11.0 | ||
4470 | caseless: 0.12.0 | ||
4471 | combined-stream: 1.0.8 | ||
4472 | extend: 3.0.2 | ||
4473 | forever-agent: 0.6.1 | ||
4474 | form-data: 2.3.3 | ||
4475 | har-validator: 5.1.5 | ||
4476 | http-signature: 1.2.0 | ||
4477 | is-typedarray: 1.0.0 | ||
4478 | isstream: 0.1.2 | ||
4479 | json-stringify-safe: 5.0.1 | ||
4480 | mime-types: 2.1.35 | ||
4481 | oauth-sign: 0.9.0 | ||
4482 | performance-now: 2.1.0 | ||
4483 | qs: 6.5.3 | ||
4484 | safe-buffer: 5.2.1 | ||
4485 | tough-cookie: 2.5.0 | ||
4486 | tunnel-agent: 0.6.0 | ||
4487 | uuid: 3.4.0 | ||
4488 | dev: false | ||
4489 | 9439 | ||
4490 | /require-all/3.0.0: | 9440 | /require-all@3.0.0: |
4491 | resolution: {integrity: sha512-jPGN876lc5exWYrMcgZSd7U42P0PmVQzxnQB13fCSzmyGnqQWW4WUz5DosZ/qe24hz+5o9lSvW2epBNZ1xa6Fw==} | 9441 | resolution: {integrity: sha512-jPGN876lc5exWYrMcgZSd7U42P0PmVQzxnQB13fCSzmyGnqQWW4WUz5DosZ/qe24hz+5o9lSvW2epBNZ1xa6Fw==} |
4492 | engines: {node: '>= 0.8'} | 9442 | engines: {node: '>= 0.8'} |
4493 | dev: false | ||
4494 | |||
4495 | /require-directory/2.1.1: | ||
4496 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} | ||
4497 | engines: {node: '>=0.10.0'} | ||
4498 | dev: true | ||
4499 | 9443 | ||
4500 | /require-from-string/2.0.2: | 9444 | /require-from-string@2.0.2: |
4501 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} | 9445 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} |
4502 | engines: {node: '>=0.10.0'} | 9446 | engines: {node: '>=0.10.0'} |
4503 | dev: true | 9447 | dev: true |
4504 | 9448 | ||
4505 | /require-main-filename/2.0.0: | 9449 | /requires-port@1.0.0: |
4506 | resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} | 9450 | resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} |
4507 | dev: true | 9451 | dev: true |
4508 | 9452 | ||
4509 | /require-stack/1.0.2: | 9453 | /resolve-alpn@1.2.1: |
4510 | resolution: {integrity: sha512-a3Nx86n2BdNDGocv4hLWDQtWP0Ec4LFvfb/xQ6wfibAmT+7qm7QLgFNcBZ6Ukbqq0a+K4CjxAuhG9Btg8NSdbQ==} | 9454 | resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} |
4511 | dependencies: | ||
4512 | syntax-error: 1.4.0 | ||
4513 | dev: false | 9455 | dev: false |
4514 | 9456 | ||
4515 | /require-uncached/1.0.3: | 9457 | /resolve-cwd@3.0.0: |
4516 | resolution: {integrity: sha512-Xct+41K3twrbBHdxAgMoOS+cNcoqIjfM2/VxBF4LL2hVph7YsF8VSKyQ3BDFZwEVbok9yeDl2le/qo0S77WG2w==} | 9458 | resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} |
4517 | engines: {node: '>=0.10.0'} | 9459 | engines: {node: '>=8'} |
4518 | dependencies: | ||
4519 | caller-path: 0.1.0 | ||
4520 | resolve-from: 1.0.1 | ||
4521 | dev: false | ||
4522 | |||
4523 | /resetable/1.0.3: | ||
4524 | resolution: {integrity: sha512-AJuhrcU5TVUaM5j0wSjZXlzt0Qb5pai7nDI+klgv7deuSHy5Kom7ovwBt5tMMO3XmJ9YYSCbKhkgDJHL4MEerQ==} | ||
4525 | dependencies: | ||
4526 | clone: 2.1.2 | ||
4527 | dev: false | ||
4528 | |||
4529 | /resolve-dir/1.0.1: | ||
4530 | resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} | ||
4531 | engines: {node: '>=0.10.0'} | ||
4532 | dependencies: | 9460 | dependencies: |
4533 | expand-tilde: 2.0.2 | 9461 | resolve-from: 5.0.0 |
4534 | global-modules: 1.0.0 | 9462 | dev: true |
4535 | dev: false | ||
4536 | |||
4537 | /resolve-from/1.0.1: | ||
4538 | resolution: {integrity: sha512-kT10v4dhrlLNcnO084hEjvXCI1wUG9qZLoz2RogxqDQQYy7IxjI/iMUkOtQTNEh6rzHxvdQWHsJyel1pKOVCxg==} | ||
4539 | engines: {node: '>=0.10.0'} | ||
4540 | dev: false | ||
4541 | 9463 | ||
4542 | /resolve-from/4.0.0: | 9464 | /resolve-from@4.0.0: |
4543 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} | 9465 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} |
4544 | engines: {node: '>=4'} | 9466 | engines: {node: '>=4'} |
4545 | dev: true | 9467 | dev: true |
4546 | 9468 | ||
4547 | /resolve-url/0.2.1: | 9469 | /resolve-from@5.0.0: |
9470 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} | ||
9471 | engines: {node: '>=8'} | ||
9472 | |||
9473 | /resolve-url-loader@5.0.0: | ||
9474 | resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==} | ||
9475 | engines: {node: '>=12'} | ||
9476 | dependencies: | ||
9477 | adjust-sourcemap-loader: 4.0.0 | ||
9478 | convert-source-map: 1.9.0 | ||
9479 | loader-utils: 2.0.4 | ||
9480 | postcss: 8.4.31 | ||
9481 | source-map: 0.6.1 | ||
9482 | dev: true | ||
9483 | |||
9484 | /resolve-url@0.2.1: | ||
4548 | resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} | 9485 | resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} |
4549 | deprecated: https://github.com/lydell/resolve-url#deprecated | 9486 | deprecated: https://github.com/lydell/resolve-url#deprecated |
4550 | dev: false | 9487 | dev: true |
4551 | 9488 | ||
4552 | /resolve/1.22.1: | 9489 | /resolve@1.22.6: |
4553 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} | 9490 | resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} |
4554 | hasBin: true | 9491 | hasBin: true |
4555 | dependencies: | 9492 | dependencies: |
4556 | is-core-module: 2.11.0 | 9493 | is-core-module: 2.13.0 |
4557 | path-parse: 1.0.7 | 9494 | path-parse: 1.0.7 |
4558 | supports-preserve-symlinks-flag: 1.0.0 | 9495 | supports-preserve-symlinks-flag: 1.0.0 |
4559 | 9496 | ||
4560 | /responselike/1.0.2: | 9497 | /responselike@2.0.1: |
4561 | resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} | 9498 | resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} |
4562 | dependencies: | 9499 | dependencies: |
4563 | lowercase-keys: 1.0.1 | 9500 | lowercase-keys: 2.0.0 |
4564 | dev: false | 9501 | dev: false |
4565 | 9502 | ||
4566 | /restore-cursor/3.1.0: | 9503 | /restore-cursor@3.1.0: |
4567 | resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} | 9504 | resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} |
4568 | engines: {node: '>=8'} | 9505 | engines: {node: '>=8'} |
4569 | dependencies: | 9506 | dependencies: |
4570 | onetime: 5.1.2 | 9507 | onetime: 5.1.2 |
4571 | signal-exit: 3.0.7 | 9508 | signal-exit: 3.0.7 |
4572 | dev: true | ||
4573 | 9509 | ||
4574 | /ret/0.1.15: | 9510 | /ret@0.1.15: |
4575 | resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} | 9511 | resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} |
4576 | engines: {node: '>=0.12'} | 9512 | engines: {node: '>=0.12'} |
9513 | dev: true | ||
9514 | |||
9515 | /retry@0.12.0: | ||
9516 | resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} | ||
9517 | engines: {node: '>= 4'} | ||
9518 | requiresBuild: true | ||
4577 | dev: false | 9519 | dev: false |
9520 | optional: true | ||
9521 | |||
9522 | /retry@0.13.1: | ||
9523 | resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} | ||
9524 | engines: {node: '>= 4'} | ||
9525 | dev: true | ||
4578 | 9526 | ||
4579 | /rimraf/2.7.1: | 9527 | /reusify@1.0.4: |
9528 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} | ||
9529 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} | ||
9530 | |||
9531 | /rev-hash@3.0.0: | ||
9532 | resolution: {integrity: sha512-s+87HfEKAu95TaTxnbCobn0/BkbzR23LHSwVdYvr8mn5+PPjzy+hTWyh92b5oaLgig9TKPe5d6ZcubsVBtUrZg==} | ||
9533 | engines: {node: '>=8'} | ||
9534 | dev: true | ||
9535 | |||
9536 | /rimraf@2.7.1: | ||
4580 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} | 9537 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} |
4581 | hasBin: true | 9538 | hasBin: true |
4582 | dependencies: | 9539 | dependencies: |
4583 | glob: 7.2.3 | 9540 | glob: 7.2.3 |
4584 | dev: false | 9541 | dev: true |
4585 | 9542 | ||
4586 | /rimraf/3.0.2: | 9543 | /rimraf@3.0.2: |
4587 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} | 9544 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} |
4588 | hasBin: true | 9545 | hasBin: true |
4589 | dependencies: | 9546 | dependencies: |
4590 | glob: 7.2.3 | 9547 | glob: 7.2.3 |
4591 | dev: true | ||
4592 | 9548 | ||
4593 | /rndm/1.2.0: | 9549 | /rndm@1.2.0: |
4594 | resolution: {integrity: sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==} | 9550 | resolution: {integrity: sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==} |
4595 | dev: false | 9551 | dev: false |
4596 | 9552 | ||
4597 | /run-async/2.4.1: | 9553 | /run-applescript@5.0.0: |
4598 | resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} | 9554 | resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} |
4599 | engines: {node: '>=0.12.0'} | 9555 | engines: {node: '>=12'} |
9556 | dependencies: | ||
9557 | execa: 5.1.1 | ||
4600 | dev: true | 9558 | dev: true |
4601 | 9559 | ||
4602 | /rxjs/6.6.7: | 9560 | /run-parallel@1.2.0: |
4603 | resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} | 9561 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} |
4604 | engines: {npm: '>=2.0.0'} | ||
4605 | dependencies: | 9562 | dependencies: |
4606 | tslib: 1.14.1 | 9563 | queue-microtask: 1.2.3 |
9564 | |||
9565 | /safe-array-concat@1.0.1: | ||
9566 | resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} | ||
9567 | engines: {node: '>=0.4'} | ||
9568 | dependencies: | ||
9569 | call-bind: 1.0.2 | ||
9570 | get-intrinsic: 1.2.1 | ||
9571 | has-symbols: 1.0.3 | ||
9572 | isarray: 2.0.5 | ||
4607 | dev: true | 9573 | dev: true |
4608 | 9574 | ||
4609 | /safe-buffer/5.1.2: | 9575 | /safe-buffer@5.1.2: |
4610 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} | 9576 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} |
4611 | dev: false | ||
4612 | 9577 | ||
4613 | /safe-buffer/5.2.1: | 9578 | /safe-buffer@5.2.1: |
4614 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} | 9579 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} |
4615 | dev: false | ||
4616 | 9580 | ||
4617 | /safe-regex-test/1.0.0: | 9581 | /safe-regex-test@1.0.0: |
4618 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} | 9582 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} |
4619 | dependencies: | 9583 | dependencies: |
4620 | call-bind: 1.0.2 | 9584 | call-bind: 1.0.2 |
4621 | get-intrinsic: 1.1.3 | 9585 | get-intrinsic: 1.2.1 |
4622 | is-regex: 1.1.4 | 9586 | is-regex: 1.1.4 |
4623 | dev: true | 9587 | dev: true |
4624 | 9588 | ||
4625 | /safe-regex/1.1.0: | 9589 | /safe-regex@1.1.0: |
4626 | resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} | 9590 | resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} |
4627 | dependencies: | 9591 | dependencies: |
4628 | ret: 0.1.15 | 9592 | ret: 0.1.15 |
4629 | dev: false | 9593 | dev: true |
4630 | |||
4631 | /safe-stable-stringify/2.4.1: | ||
4632 | resolution: {integrity: sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==} | ||
4633 | engines: {node: '>=10'} | ||
4634 | dev: false | ||
4635 | 9594 | ||
4636 | /safer-buffer/2.1.2: | 9595 | /safer-buffer@2.1.2: |
4637 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} | 9596 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} |
4638 | 9597 | ||
4639 | /sanitize-filename/1.6.3: | 9598 | /sanitize-filename@1.6.3: |
4640 | resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} | 9599 | resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} |
4641 | dependencies: | 9600 | dependencies: |
4642 | truncate-utf8-bytes: 1.0.2 | 9601 | truncate-utf8-bytes: 1.0.2 |
4643 | dev: false | 9602 | dev: false |
4644 | 9603 | ||
4645 | /sax/1.2.4: | 9604 | /sax@1.2.1: |
4646 | resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} | 9605 | resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} |
4647 | dev: false | 9606 | dev: false |
4648 | 9607 | ||
4649 | /scmp/2.0.0: | 9608 | /schema-utils@2.7.1: |
4650 | resolution: {integrity: sha512-FaHoAk75AYhT+rnBmMpkvHSIcQma4OHzYXOhn1XXtgNomi0FTV8YEXYuh2EIdCg5IKMVyFbXeJT4Cn96+fzABg==} | 9609 | resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} |
4651 | dev: false | 9610 | engines: {node: '>= 8.9.0'} |
9611 | dependencies: | ||
9612 | '@types/json-schema': 7.0.13 | ||
9613 | ajv: 6.12.6 | ||
9614 | ajv-keywords: 3.5.2(ajv@6.12.6) | ||
9615 | dev: true | ||
9616 | |||
9617 | /schema-utils@3.3.0: | ||
9618 | resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} | ||
9619 | engines: {node: '>= 10.13.0'} | ||
9620 | dependencies: | ||
9621 | '@types/json-schema': 7.0.13 | ||
9622 | ajv: 6.12.6 | ||
9623 | ajv-keywords: 3.5.2(ajv@6.12.6) | ||
9624 | dev: true | ||
9625 | |||
9626 | /schema-utils@4.2.0: | ||
9627 | resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} | ||
9628 | engines: {node: '>= 12.13.0'} | ||
9629 | dependencies: | ||
9630 | '@types/json-schema': 7.0.13 | ||
9631 | ajv: 8.12.0 | ||
9632 | ajv-formats: 2.1.1(ajv@8.12.0) | ||
9633 | ajv-keywords: 5.1.0(ajv@8.12.0) | ||
9634 | dev: true | ||
4652 | 9635 | ||
4653 | /semver/5.5.1: | 9636 | /secure-json-parse@2.7.0: |
4654 | resolution: {integrity: sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==} | 9637 | resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} |
9638 | |||
9639 | /select-hose@2.0.0: | ||
9640 | resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} | ||
9641 | dev: true | ||
9642 | |||
9643 | /selfsigned@2.1.1: | ||
9644 | resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==} | ||
9645 | engines: {node: '>=10'} | ||
9646 | dependencies: | ||
9647 | node-forge: 1.3.1 | ||
9648 | dev: true | ||
9649 | |||
9650 | /semver@5.7.2: | ||
9651 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} | ||
4655 | hasBin: true | 9652 | hasBin: true |
4656 | dev: false | 9653 | dev: true |
4657 | 9654 | ||
4658 | /semver/5.7.1: | 9655 | /semver@6.3.1: |
4659 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} | 9656 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} |
4660 | hasBin: true | 9657 | hasBin: true |
4661 | dev: false | ||
4662 | 9658 | ||
4663 | /semver/7.3.5: | 9659 | /semver@7.5.4: |
4664 | resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} | 9660 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} |
4665 | engines: {node: '>=10'} | 9661 | engines: {node: '>=10'} |
4666 | hasBin: true | 9662 | hasBin: true |
4667 | dependencies: | 9663 | dependencies: |
4668 | lru-cache: 6.0.0 | 9664 | lru-cache: 6.0.0 |
4669 | 9665 | ||
4670 | /send/0.16.2: | 9666 | /send@0.18.0: |
4671 | resolution: {integrity: sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==} | ||
4672 | engines: {node: '>= 0.8.0'} | ||
4673 | dependencies: | ||
4674 | debug: 2.6.9 | ||
4675 | depd: 1.1.2 | ||
4676 | destroy: 1.0.4 | ||
4677 | encodeurl: 1.0.2 | ||
4678 | escape-html: 1.0.3 | ||
4679 | etag: 1.8.1 | ||
4680 | fresh: 0.5.2 | ||
4681 | http-errors: 1.6.3 | ||
4682 | mime: 1.4.1 | ||
4683 | ms: 2.0.0 | ||
4684 | on-finished: 2.3.0 | ||
4685 | range-parser: 1.2.1 | ||
4686 | statuses: 1.4.0 | ||
4687 | transitivePeerDependencies: | ||
4688 | - supports-color | ||
4689 | dev: false | ||
4690 | |||
4691 | /send/0.18.0: | ||
4692 | resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} | 9667 | resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} |
4693 | engines: {node: '>= 0.8.0'} | 9668 | engines: {node: '>= 0.8.0'} |
4694 | dependencies: | 9669 | dependencies: |
@@ -4707,9 +9682,36 @@ packages: | |||
4707 | statuses: 2.0.1 | 9682 | statuses: 2.0.1 |
4708 | transitivePeerDependencies: | 9683 | transitivePeerDependencies: |
4709 | - supports-color | 9684 | - supports-color |
4710 | dev: false | ||
4711 | 9685 | ||
4712 | /serve-static/1.15.0: | 9686 | /sentence-case@3.0.4: |
9687 | resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} | ||
9688 | dependencies: | ||
9689 | no-case: 3.0.4 | ||
9690 | tslib: 2.6.2 | ||
9691 | upper-case-first: 2.0.2 | ||
9692 | |||
9693 | /serialize-javascript@6.0.1: | ||
9694 | resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} | ||
9695 | dependencies: | ||
9696 | randombytes: 2.1.0 | ||
9697 | dev: true | ||
9698 | |||
9699 | /serve-index@1.9.1: | ||
9700 | resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} | ||
9701 | engines: {node: '>= 0.8.0'} | ||
9702 | dependencies: | ||
9703 | accepts: 1.3.8 | ||
9704 | batch: 0.6.1 | ||
9705 | debug: 2.6.9 | ||
9706 | escape-html: 1.0.3 | ||
9707 | http-errors: 1.6.3 | ||
9708 | mime-types: 2.1.35 | ||
9709 | parseurl: 1.3.3 | ||
9710 | transitivePeerDependencies: | ||
9711 | - supports-color | ||
9712 | dev: true | ||
9713 | |||
9714 | /serve-static@1.15.0: | ||
4713 | resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} | 9715 | resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} |
4714 | engines: {node: '>= 0.8.0'} | 9716 | engines: {node: '>= 0.8.0'} |
4715 | dependencies: | 9717 | dependencies: |
@@ -4719,30 +9721,25 @@ packages: | |||
4719 | send: 0.18.0 | 9721 | send: 0.18.0 |
4720 | transitivePeerDependencies: | 9722 | transitivePeerDependencies: |
4721 | - supports-color | 9723 | - supports-color |
4722 | dev: false | ||
4723 | 9724 | ||
4724 | /set-blocking/2.0.0: | 9725 | /set-blocking@2.0.0: |
4725 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} | 9726 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} |
4726 | |||
4727 | /set-getter/0.1.1: | ||
4728 | resolution: {integrity: sha512-9sVWOy+gthr+0G9DzqqLaYNA7+5OKkSmcqjL9cBpDEaZrr3ShQlyX2cZ/O/ozE41oxn/Tt0LGEM/w4Rub3A3gw==} | ||
4729 | engines: {node: '>=0.10.0'} | ||
4730 | dependencies: | ||
4731 | to-object-path: 0.3.0 | ||
4732 | dev: false | 9727 | dev: false |
4733 | 9728 | ||
4734 | /set-value/1.0.0: | 9729 | /set-cookie-parser@2.6.0: |
4735 | resolution: {integrity: sha512-O/eSWP94iwlwQwOopxjcoU2fvT5Oh496WbPdYD5SUrQ1YG23ZoNuWTKqG8+hpUUrvecOsHWUFV7UfeZbChfddw==} | 9730 | resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} |
4736 | engines: {node: '>=0.10.0'} | 9731 | dev: true |
4737 | deprecated: Critical bug fixed in v3.0.1, please upgrade to the latest version. | 9732 | |
9733 | /set-function-name@2.0.1: | ||
9734 | resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} | ||
9735 | engines: {node: '>= 0.4'} | ||
4738 | dependencies: | 9736 | dependencies: |
4739 | extend-shallow: 2.0.1 | 9737 | define-data-property: 1.1.0 |
4740 | is-extendable: 0.1.1 | 9738 | functions-have-names: 1.2.3 |
4741 | is-plain-object: 2.0.4 | 9739 | has-property-descriptors: 1.0.0 |
4742 | to-object-path: 0.3.0 | 9740 | dev: true |
4743 | dev: false | ||
4744 | 9741 | ||
4745 | /set-value/2.0.1: | 9742 | /set-value@2.0.1: |
4746 | resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} | 9743 | resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} |
4747 | engines: {node: '>=0.10.0'} | 9744 | engines: {node: '>=0.10.0'} |
4748 | dependencies: | 9745 | dependencies: |
@@ -4750,128 +9747,114 @@ packages: | |||
4750 | is-extendable: 0.1.1 | 9747 | is-extendable: 0.1.1 |
4751 | is-plain-object: 2.0.4 | 9748 | is-plain-object: 2.0.4 |
4752 | split-string: 3.1.0 | 9749 | split-string: 3.1.0 |
4753 | dev: false | 9750 | dev: true |
4754 | |||
4755 | /set-value/3.0.3: | ||
4756 | resolution: {integrity: sha512-Xsn/XSatoVOGBbp5hs3UylFDs5Bi9i+ArpVJKdHPniZHoEgRniXTqHWrWrGQ0PbEClVT6WtfnBwR8CAHC9sveg==} | ||
4757 | engines: {node: '>=6.0'} | ||
4758 | dependencies: | ||
4759 | is-plain-object: 2.0.4 | ||
4760 | dev: false | ||
4761 | 9751 | ||
4762 | /setprototypeof/1.1.0: | 9752 | /setprototypeof@1.1.0: |
4763 | resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} | 9753 | resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} |
4764 | dev: false | 9754 | dev: true |
4765 | 9755 | ||
4766 | /setprototypeof/1.2.0: | 9756 | /setprototypeof@1.2.0: |
4767 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} | 9757 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} |
4768 | dev: false | ||
4769 | |||
4770 | /shallow-clone/0.1.2: | ||
4771 | resolution: {integrity: sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==} | ||
4772 | engines: {node: '>=0.10.0'} | ||
4773 | dependencies: | ||
4774 | is-extendable: 0.1.1 | ||
4775 | kind-of: 2.0.1 | ||
4776 | lazy-cache: 0.2.7 | ||
4777 | mixin-object: 2.0.1 | ||
4778 | dev: false | ||
4779 | |||
4780 | /shallow-clone/1.0.0: | ||
4781 | resolution: {integrity: sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==} | ||
4782 | engines: {node: '>=0.10.0'} | ||
4783 | dependencies: | ||
4784 | is-extendable: 0.1.1 | ||
4785 | kind-of: 5.1.0 | ||
4786 | mixin-object: 2.0.1 | ||
4787 | dev: false | ||
4788 | 9758 | ||
4789 | /shallow-clone/3.0.1: | 9759 | /shallow-clone@3.0.1: |
4790 | resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} | 9760 | resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} |
4791 | engines: {node: '>=8'} | 9761 | engines: {node: '>=8'} |
4792 | dependencies: | 9762 | dependencies: |
4793 | kind-of: 6.0.3 | 9763 | kind-of: 6.0.3 |
4794 | dev: false | 9764 | dev: true |
4795 | |||
4796 | /shebang-command/1.2.0: | ||
4797 | resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} | ||
4798 | engines: {node: '>=0.10.0'} | ||
4799 | dependencies: | ||
4800 | shebang-regex: 1.0.0 | ||
4801 | dev: false | ||
4802 | 9765 | ||
4803 | /shebang-command/2.0.0: | 9766 | /shebang-command@2.0.0: |
4804 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} | 9767 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} |
4805 | engines: {node: '>=8'} | 9768 | engines: {node: '>=8'} |
4806 | dependencies: | 9769 | dependencies: |
4807 | shebang-regex: 3.0.0 | 9770 | shebang-regex: 3.0.0 |
4808 | dev: true | 9771 | dev: true |
4809 | 9772 | ||
4810 | /shebang-regex/1.0.0: | 9773 | /shebang-regex@3.0.0: |
4811 | resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} | ||
4812 | engines: {node: '>=0.10.0'} | ||
4813 | dev: false | ||
4814 | |||
4815 | /shebang-regex/3.0.0: | ||
4816 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} | 9774 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} |
4817 | engines: {node: '>=8'} | 9775 | engines: {node: '>=8'} |
4818 | dev: true | 9776 | dev: true |
4819 | 9777 | ||
4820 | /side-channel/1.0.4: | 9778 | /shell-quote@1.8.1: |
9779 | resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} | ||
9780 | dev: true | ||
9781 | |||
9782 | /side-channel@1.0.4: | ||
4821 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} | 9783 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} |
4822 | dependencies: | 9784 | dependencies: |
4823 | call-bind: 1.0.2 | 9785 | call-bind: 1.0.2 |
4824 | get-intrinsic: 1.1.3 | 9786 | get-intrinsic: 1.2.1 |
4825 | object-inspect: 1.12.2 | 9787 | object-inspect: 1.12.3 |
4826 | 9788 | ||
4827 | /signal-exit/3.0.7: | 9789 | /sigmund@1.0.1: |
9790 | resolution: {integrity: sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==} | ||
9791 | dev: true | ||
9792 | |||
9793 | /signal-exit@3.0.7: | ||
4828 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} | 9794 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} |
4829 | 9795 | ||
4830 | /simple-encryptor/2.0.0: | 9796 | /slash@2.0.0: |
4831 | resolution: {integrity: sha512-dqjQbp9RwfMrE+my/7Pgz9viIsHmY3aQtybGJQkv2sL79YuDGmkxUjlmEBFGP6bcUjBRnSvqsBAcv1ro0Y4/5A==} | 9797 | resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} |
4832 | dependencies: | 9798 | engines: {node: '>=6'} |
4833 | scmp: 2.0.0 | 9799 | dev: true |
4834 | dev: false | ||
4835 | 9800 | ||
4836 | /simple-encryptor/3.0.0: | 9801 | /slash@3.0.0: |
4837 | resolution: {integrity: sha512-xRgj9pU3Gfkl+6iBYRoXM4BdEwY4bLdL1W0tp7AjGTA7Hytv5iwmB5tvJh6K2iVszvPPYimQjLFV8jRZz3fJ1g==} | 9802 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} |
4838 | engines: {node: '>= 4.5.0'} | 9803 | engines: {node: '>=8'} |
4839 | dependencies: | ||
4840 | scmp: 2.0.0 | ||
4841 | dev: false | ||
4842 | 9804 | ||
4843 | /simple-swizzle/0.2.2: | 9805 | /slashes@2.0.2: |
4844 | resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} | 9806 | resolution: {integrity: sha512-68p+QkFAQQRetIUzNXAdktNJr8AYLxJukjBegYQz8F7VATsBJG621UYtY/vS2j9jerxdJ1k6Tc25K4DXEw1d5w==} |
4845 | dependencies: | ||
4846 | is-arrayish: 0.3.2 | ||
4847 | dev: false | 9807 | dev: false |
4848 | 9808 | ||
4849 | /slice-ansi/4.0.0: | 9809 | /slice-ansi@4.0.0: |
4850 | resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} | 9810 | resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} |
4851 | engines: {node: '>=10'} | 9811 | engines: {node: '>=10'} |
4852 | dependencies: | 9812 | dependencies: |
4853 | ansi-styles: 4.3.0 | 9813 | ansi-styles: 4.3.0 |
4854 | astral-regex: 2.0.0 | 9814 | astral-regex: 2.0.0 |
4855 | is-fullwidth-code-point: 3.0.0 | 9815 | is-fullwidth-code-point: 3.0.0 |
9816 | |||
9817 | /slugify@1.6.6: | ||
9818 | resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} | ||
9819 | engines: {node: '>=8.0.0'} | ||
9820 | |||
9821 | /smart-buffer@4.2.0: | ||
9822 | resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} | ||
9823 | engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} | ||
9824 | requiresBuild: true | ||
9825 | dev: false | ||
9826 | optional: true | ||
9827 | |||
9828 | /smpltmpl@1.0.2: | ||
9829 | resolution: {integrity: sha512-Hq23NNgeZigOzIiX1dkb6W3gFn2/XQj43KhPxu65IMieG/gIwf/lQb1IudjYv0c/5LwJeS/mPayYzyo+8WJMxQ==} | ||
9830 | engines: {node: '>=4'} | ||
9831 | dependencies: | ||
9832 | babel-code-frame: 6.26.0 | ||
4856 | dev: true | 9833 | dev: true |
4857 | 9834 | ||
4858 | /snapdragon-node/2.1.1: | 9835 | /snake-case@3.0.4: |
9836 | resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} | ||
9837 | dependencies: | ||
9838 | dot-case: 3.0.4 | ||
9839 | tslib: 2.6.2 | ||
9840 | |||
9841 | /snapdragon-node@2.1.1: | ||
4859 | resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} | 9842 | resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} |
4860 | engines: {node: '>=0.10.0'} | 9843 | engines: {node: '>=0.10.0'} |
4861 | dependencies: | 9844 | dependencies: |
4862 | define-property: 1.0.0 | 9845 | define-property: 1.0.0 |
4863 | isobject: 3.0.1 | 9846 | isobject: 3.0.1 |
4864 | snapdragon-util: 3.0.1 | 9847 | snapdragon-util: 3.0.1 |
4865 | dev: false | 9848 | dev: true |
4866 | 9849 | ||
4867 | /snapdragon-util/3.0.1: | 9850 | /snapdragon-util@3.0.1: |
4868 | resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} | 9851 | resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} |
4869 | engines: {node: '>=0.10.0'} | 9852 | engines: {node: '>=0.10.0'} |
4870 | dependencies: | 9853 | dependencies: |
4871 | kind-of: 3.2.2 | 9854 | kind-of: 3.2.2 |
4872 | dev: false | 9855 | dev: true |
4873 | 9856 | ||
4874 | /snapdragon/0.8.2: | 9857 | /snapdragon@0.8.2: |
4875 | resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} | 9858 | resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} |
4876 | engines: {node: '>=0.10.0'} | 9859 | engines: {node: '>=0.10.0'} |
4877 | dependencies: | 9860 | dependencies: |
@@ -4885,16 +9868,61 @@ packages: | |||
4885 | use: 3.1.1 | 9868 | use: 3.1.1 |
4886 | transitivePeerDependencies: | 9869 | transitivePeerDependencies: |
4887 | - supports-color | 9870 | - supports-color |
9871 | dev: true | ||
9872 | |||
9873 | /sockjs@0.3.24: | ||
9874 | resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} | ||
9875 | dependencies: | ||
9876 | faye-websocket: 0.11.4 | ||
9877 | uuid: 8.3.2 | ||
9878 | websocket-driver: 0.7.4 | ||
9879 | dev: true | ||
9880 | |||
9881 | /socks-proxy-agent@6.2.1: | ||
9882 | resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} | ||
9883 | engines: {node: '>= 10'} | ||
9884 | requiresBuild: true | ||
9885 | dependencies: | ||
9886 | agent-base: 6.0.2 | ||
9887 | debug: 4.3.4 | ||
9888 | socks: 2.7.1 | ||
9889 | transitivePeerDependencies: | ||
9890 | - supports-color | ||
4888 | dev: false | 9891 | dev: false |
9892 | optional: true | ||
4889 | 9893 | ||
4890 | /sort-keys/2.0.0: | 9894 | /socks@2.7.1: |
4891 | resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} | 9895 | resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} |
4892 | engines: {node: '>=4'} | 9896 | engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} |
9897 | requiresBuild: true | ||
4893 | dependencies: | 9898 | dependencies: |
4894 | is-plain-obj: 1.1.0 | 9899 | ip: 2.0.0 |
9900 | smart-buffer: 4.2.0 | ||
4895 | dev: false | 9901 | dev: false |
9902 | optional: true | ||
9903 | |||
9904 | /sonic-boom@1.4.1: | ||
9905 | resolution: {integrity: sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==} | ||
9906 | dependencies: | ||
9907 | atomic-sleep: 1.0.0 | ||
9908 | flatstr: 1.0.12 | ||
9909 | |||
9910 | /sonic-boom@2.8.0: | ||
9911 | resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} | ||
9912 | dependencies: | ||
9913 | atomic-sleep: 1.0.0 | ||
9914 | |||
9915 | /sonic-boom@3.4.0: | ||
9916 | resolution: {integrity: sha512-zSe9QQW30nPzjkSJ0glFQO5T9lHsk39tz+2bAAwCj8CNgEG8ItZiX7Wb2ZgA8I04dwRGCcf1m3ABJa8AYm12Fw==} | ||
9917 | dependencies: | ||
9918 | atomic-sleep: 1.0.0 | ||
4896 | 9919 | ||
4897 | /source-map-resolve/0.5.3: | 9920 | /source-map-js@1.0.2: |
9921 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} | ||
9922 | engines: {node: '>=0.10.0'} | ||
9923 | dev: true | ||
9924 | |||
9925 | /source-map-resolve@0.5.3: | ||
4898 | resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} | 9926 | resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} |
4899 | deprecated: See https://github.com/lydell/source-map-resolve#deprecated | 9927 | deprecated: See https://github.com/lydell/source-map-resolve#deprecated |
4900 | dependencies: | 9928 | dependencies: |
@@ -4903,233 +9931,382 @@ packages: | |||
4903 | resolve-url: 0.2.1 | 9931 | resolve-url: 0.2.1 |
4904 | source-map-url: 0.4.1 | 9932 | source-map-url: 0.4.1 |
4905 | urix: 0.1.0 | 9933 | urix: 0.1.0 |
4906 | dev: false | 9934 | dev: true |
4907 | 9935 | ||
4908 | /source-map-url/0.4.1: | 9936 | /source-map-support@0.5.21: |
9937 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} | ||
9938 | dependencies: | ||
9939 | buffer-from: 1.1.2 | ||
9940 | source-map: 0.6.1 | ||
9941 | |||
9942 | /source-map-url@0.4.1: | ||
4909 | resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} | 9943 | resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} |
4910 | deprecated: See https://github.com/lydell/source-map-url#deprecated | 9944 | deprecated: See https://github.com/lydell/source-map-url#deprecated |
4911 | dev: false | 9945 | dev: true |
4912 | 9946 | ||
4913 | /source-map/0.5.7: | 9947 | /source-map@0.5.7: |
4914 | resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} | 9948 | resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} |
4915 | engines: {node: '>=0.10.0'} | 9949 | engines: {node: '>=0.10.0'} |
4916 | dev: false | 9950 | dev: true |
9951 | |||
9952 | /source-map@0.6.1: | ||
9953 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} | ||
9954 | engines: {node: '>=0.10.0'} | ||
9955 | |||
9956 | /spdx-correct@3.2.0: | ||
9957 | resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} | ||
9958 | dependencies: | ||
9959 | spdx-expression-parse: 3.0.1 | ||
9960 | spdx-license-ids: 3.0.15 | ||
9961 | dev: true | ||
9962 | |||
9963 | /spdx-exceptions@2.3.0: | ||
9964 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} | ||
9965 | dev: true | ||
9966 | |||
9967 | /spdx-expression-parse@3.0.1: | ||
9968 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} | ||
9969 | dependencies: | ||
9970 | spdx-exceptions: 2.3.0 | ||
9971 | spdx-license-ids: 3.0.15 | ||
9972 | dev: true | ||
9973 | |||
9974 | /spdx-license-ids@3.0.15: | ||
9975 | resolution: {integrity: sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==} | ||
9976 | dev: true | ||
9977 | |||
9978 | /spdy-transport@3.0.0: | ||
9979 | resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} | ||
9980 | dependencies: | ||
9981 | debug: 4.3.4 | ||
9982 | detect-node: 2.1.0 | ||
9983 | hpack.js: 2.1.6 | ||
9984 | obuf: 1.1.2 | ||
9985 | readable-stream: 3.6.2 | ||
9986 | wbuf: 1.7.3 | ||
9987 | transitivePeerDependencies: | ||
9988 | - supports-color | ||
9989 | dev: true | ||
9990 | |||
9991 | /spdy@4.0.2: | ||
9992 | resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} | ||
9993 | engines: {node: '>=6.0.0'} | ||
9994 | dependencies: | ||
9995 | debug: 4.3.4 | ||
9996 | handle-thing: 2.0.1 | ||
9997 | http-deceiver: 1.2.7 | ||
9998 | select-hose: 2.0.0 | ||
9999 | spdy-transport: 3.0.0 | ||
10000 | transitivePeerDependencies: | ||
10001 | - supports-color | ||
10002 | dev: true | ||
4917 | 10003 | ||
4918 | /split-string/3.1.0: | 10004 | /split-lines@2.1.0: |
10005 | resolution: {integrity: sha512-8dv+1zKgTpfTkOy8XZLFyWrfxO0NV/bj/3EaQ+hBrBxGv2DwiroljPjU8NlCr+59nLnsVm9WYT7lXKwe4TC6bw==} | ||
10006 | engines: {node: '>=6'} | ||
10007 | dev: true | ||
10008 | |||
10009 | /split-string@3.1.0: | ||
4919 | resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} | 10010 | resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} |
4920 | engines: {node: '>=0.10.0'} | 10011 | engines: {node: '>=0.10.0'} |
4921 | dependencies: | 10012 | dependencies: |
4922 | extend-shallow: 3.0.2 | 10013 | extend-shallow: 3.0.2 |
4923 | dev: false | 10014 | dev: true |
4924 | 10015 | ||
4925 | /split2/4.1.0: | 10016 | /split2@4.2.0: |
4926 | resolution: {integrity: sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==} | 10017 | resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} |
4927 | engines: {node: '>= 10.x'} | 10018 | engines: {node: '>= 10.x'} |
4928 | dev: false | ||
4929 | 10019 | ||
4930 | /sprintf-js/1.0.3: | 10020 | /sprintf-js@1.0.3: |
4931 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} | 10021 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} |
4932 | dev: true | 10022 | dev: true |
4933 | 10023 | ||
4934 | /sqlite3/4.2.0: | 10024 | /sqlite3@5.1.6: |
4935 | resolution: {integrity: sha512-roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg==} | 10025 | resolution: {integrity: sha512-olYkWoKFVNSSSQNvxVUfjiVbz3YtBwTJj+mfV5zpHmqW3sELx2Cf4QCdirMelhM5Zh+KDVaKgQHqCxrqiWHybw==} |
4936 | requiresBuild: true | 10026 | requiresBuild: true |
10027 | peerDependenciesMeta: | ||
10028 | node-gyp: | ||
10029 | optional: true | ||
4937 | dependencies: | 10030 | dependencies: |
4938 | nan: 2.17.0 | 10031 | '@mapbox/node-pre-gyp': 1.0.11 |
4939 | node-pre-gyp: 0.11.0 | 10032 | node-addon-api: 4.3.0 |
10033 | tar: 6.2.0 | ||
10034 | optionalDependencies: | ||
10035 | node-gyp: 8.4.1 | ||
4940 | transitivePeerDependencies: | 10036 | transitivePeerDependencies: |
10037 | - bluebird | ||
10038 | - encoding | ||
4941 | - supports-color | 10039 | - supports-color |
4942 | dev: false | 10040 | dev: false |
4943 | 10041 | ||
4944 | /sqlstring/2.3.1: | 10042 | /sqlstring@2.3.1: |
4945 | resolution: {integrity: sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==} | 10043 | resolution: {integrity: sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==} |
4946 | engines: {node: '>= 0.6'} | 10044 | engines: {node: '>= 0.6'} |
4947 | dev: false | 10045 | dev: false |
4948 | 10046 | ||
4949 | /sshpk/1.17.0: | 10047 | /ssri@8.0.1: |
4950 | resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} | 10048 | resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} |
4951 | engines: {node: '>=0.10.0'} | 10049 | engines: {node: '>= 8'} |
4952 | hasBin: true | 10050 | requiresBuild: true |
4953 | dependencies: | 10051 | dependencies: |
4954 | asn1: 0.2.6 | 10052 | minipass: 3.3.6 |
4955 | assert-plus: 1.0.0 | ||
4956 | bcrypt-pbkdf: 1.0.2 | ||
4957 | dashdash: 1.14.1 | ||
4958 | ecc-jsbn: 0.1.2 | ||
4959 | getpass: 0.1.7 | ||
4960 | jsbn: 0.1.1 | ||
4961 | safer-buffer: 2.1.2 | ||
4962 | tweetnacl: 0.14.5 | ||
4963 | dev: false | 10053 | dev: false |
10054 | optional: true | ||
4964 | 10055 | ||
4965 | /stack-trace/0.0.10: | 10056 | /stackframe@1.3.4: |
4966 | resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} | 10057 | resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} |
4967 | dev: false | 10058 | dev: true |
4968 | 10059 | ||
4969 | /static-extend/0.1.2: | 10060 | /stacktracey@2.1.8: |
10061 | resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} | ||
10062 | dependencies: | ||
10063 | as-table: 1.0.55 | ||
10064 | get-source: 2.0.12 | ||
10065 | dev: true | ||
10066 | |||
10067 | /static-extend@0.1.2: | ||
4970 | resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} | 10068 | resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} |
4971 | engines: {node: '>=0.10.0'} | 10069 | engines: {node: '>=0.10.0'} |
4972 | dependencies: | 10070 | dependencies: |
4973 | define-property: 0.2.5 | 10071 | define-property: 0.2.5 |
4974 | object-copy: 0.1.0 | 10072 | object-copy: 0.1.0 |
4975 | dev: false | 10073 | dev: true |
4976 | |||
4977 | /statuses/1.4.0: | ||
4978 | resolution: {integrity: sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==} | ||
4979 | engines: {node: '>= 0.6'} | ||
4980 | dev: false | ||
4981 | 10074 | ||
4982 | /statuses/1.5.0: | 10075 | /statuses@1.5.0: |
4983 | resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} | 10076 | resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} |
4984 | engines: {node: '>= 0.6'} | 10077 | engines: {node: '>= 0.6'} |
4985 | dev: false | 10078 | dev: true |
4986 | 10079 | ||
4987 | /statuses/2.0.1: | 10080 | /statuses@2.0.1: |
4988 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} | 10081 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} |
4989 | engines: {node: '>= 0.8'} | 10082 | engines: {node: '>= 0.8'} |
4990 | dev: false | ||
4991 | |||
4992 | /strict-uri-encode/1.1.0: | ||
4993 | resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} | ||
4994 | engines: {node: '>=0.10.0'} | ||
4995 | dev: false | ||
4996 | 10083 | ||
4997 | /string-width/1.0.2: | 10084 | /string-width@4.2.3: |
4998 | resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} | ||
4999 | engines: {node: '>=0.10.0'} | ||
5000 | dependencies: | ||
5001 | code-point-at: 1.1.0 | ||
5002 | is-fullwidth-code-point: 1.0.0 | ||
5003 | strip-ansi: 3.0.1 | ||
5004 | dev: false | ||
5005 | |||
5006 | /string-width/2.1.1: | ||
5007 | resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} | ||
5008 | engines: {node: '>=4'} | ||
5009 | dependencies: | ||
5010 | is-fullwidth-code-point: 2.0.0 | ||
5011 | strip-ansi: 4.0.0 | ||
5012 | dev: false | ||
5013 | |||
5014 | /string-width/4.2.3: | ||
5015 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} | 10085 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} |
5016 | engines: {node: '>=8'} | 10086 | engines: {node: '>=8'} |
5017 | dependencies: | 10087 | dependencies: |
5018 | emoji-regex: 8.0.0 | 10088 | emoji-regex: 8.0.0 |
5019 | is-fullwidth-code-point: 3.0.0 | 10089 | is-fullwidth-code-point: 3.0.0 |
5020 | strip-ansi: 6.0.1 | 10090 | strip-ansi: 6.0.1 |
10091 | |||
10092 | /string.prototype.trim@1.2.8: | ||
10093 | resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} | ||
10094 | engines: {node: '>= 0.4'} | ||
10095 | dependencies: | ||
10096 | call-bind: 1.0.2 | ||
10097 | define-properties: 1.2.1 | ||
10098 | es-abstract: 1.22.2 | ||
5021 | dev: true | 10099 | dev: true |
5022 | 10100 | ||
5023 | /string.prototype.trimend/1.0.6: | 10101 | /string.prototype.trimend@1.0.7: |
5024 | resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} | 10102 | resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} |
5025 | dependencies: | 10103 | dependencies: |
5026 | call-bind: 1.0.2 | 10104 | call-bind: 1.0.2 |
5027 | define-properties: 1.1.4 | 10105 | define-properties: 1.2.1 |
5028 | es-abstract: 1.20.5 | 10106 | es-abstract: 1.22.2 |
5029 | dev: true | 10107 | dev: true |
5030 | 10108 | ||
5031 | /string.prototype.trimstart/1.0.6: | 10109 | /string.prototype.trimstart@1.0.7: |
5032 | resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} | 10110 | resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} |
5033 | dependencies: | 10111 | dependencies: |
5034 | call-bind: 1.0.2 | 10112 | call-bind: 1.0.2 |
5035 | define-properties: 1.1.4 | 10113 | define-properties: 1.2.1 |
5036 | es-abstract: 1.20.5 | 10114 | es-abstract: 1.22.2 |
5037 | dev: true | 10115 | dev: true |
5038 | 10116 | ||
5039 | /string_decoder/1.1.1: | 10117 | /string_decoder@1.1.1: |
5040 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} | 10118 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} |
5041 | dependencies: | 10119 | dependencies: |
5042 | safe-buffer: 5.1.2 | 10120 | safe-buffer: 5.1.2 |
5043 | dev: false | ||
5044 | 10121 | ||
5045 | /string_decoder/1.3.0: | 10122 | /string_decoder@1.3.0: |
5046 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} | 10123 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} |
5047 | dependencies: | 10124 | dependencies: |
5048 | safe-buffer: 5.2.1 | 10125 | safe-buffer: 5.2.1 |
5049 | dev: false | ||
5050 | 10126 | ||
5051 | /strip-ansi/3.0.1: | 10127 | /stringify-attributes@2.0.0: |
10128 | resolution: {integrity: sha512-wrVfRV6sCCB6wr3gx8OgKsp/9dSWWbKr8ifLfOxEcd/BBoa8d5pAf4BZb/jQW1JZnoZImjvUdxdo3ikYHZmYiw==} | ||
10129 | engines: {node: '>=8'} | ||
10130 | dependencies: | ||
10131 | escape-goat: 2.1.1 | ||
10132 | |||
10133 | /strip-ansi@3.0.1: | ||
5052 | resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} | 10134 | resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} |
5053 | engines: {node: '>=0.10.0'} | 10135 | engines: {node: '>=0.10.0'} |
5054 | dependencies: | 10136 | dependencies: |
5055 | ansi-regex: 2.1.1 | 10137 | ansi-regex: 2.1.1 |
5056 | dev: false | 10138 | dev: true |
5057 | |||
5058 | /strip-ansi/4.0.0: | ||
5059 | resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} | ||
5060 | engines: {node: '>=4'} | ||
5061 | dependencies: | ||
5062 | ansi-regex: 3.0.1 | ||
5063 | dev: false | ||
5064 | 10139 | ||
5065 | /strip-ansi/6.0.1: | 10140 | /strip-ansi@6.0.1: |
5066 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} | 10141 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} |
5067 | engines: {node: '>=8'} | 10142 | engines: {node: '>=8'} |
5068 | dependencies: | 10143 | dependencies: |
5069 | ansi-regex: 5.0.1 | 10144 | ansi-regex: 5.0.1 |
5070 | dev: true | ||
5071 | 10145 | ||
5072 | /strip-bom/3.0.0: | 10146 | /strip-bom@3.0.0: |
5073 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} | 10147 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} |
5074 | engines: {node: '>=4'} | 10148 | engines: {node: '>=4'} |
5075 | dev: true | 10149 | dev: true |
5076 | 10150 | ||
5077 | /strip-color/0.1.0: | 10151 | /strip-bom@4.0.0: |
5078 | resolution: {integrity: sha512-p9LsUieSjWNNAxVCXLeilaDlmuUOrDS5/dF9znM1nZc7EGX5+zEFC0bEevsNIaldjlks+2jns5Siz6F9iK6jwA==} | 10152 | resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} |
5079 | engines: {node: '>=0.10.0'} | 10153 | engines: {node: '>=8'} |
5080 | dev: false | 10154 | dev: true |
10155 | |||
10156 | /strip-final-newline@2.0.0: | ||
10157 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} | ||
10158 | engines: {node: '>=6'} | ||
10159 | dev: true | ||
5081 | 10160 | ||
5082 | /strip-json-comments/2.0.1: | 10161 | /strip-final-newline@3.0.0: |
10162 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} | ||
10163 | engines: {node: '>=12'} | ||
10164 | dev: true | ||
10165 | |||
10166 | /strip-indent@3.0.0: | ||
10167 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} | ||
10168 | engines: {node: '>=8'} | ||
10169 | dependencies: | ||
10170 | min-indent: 1.0.1 | ||
10171 | dev: true | ||
10172 | |||
10173 | /strip-json-comments@2.0.1: | ||
5083 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} | 10174 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} |
5084 | engines: {node: '>=0.10.0'} | 10175 | engines: {node: '>=0.10.0'} |
5085 | dev: false | 10176 | dev: true |
5086 | 10177 | ||
5087 | /strip-json-comments/3.1.1: | 10178 | /strip-json-comments@3.1.1: |
5088 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} | 10179 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} |
5089 | engines: {node: '>=8'} | 10180 | engines: {node: '>=8'} |
10181 | |||
10182 | /strtok3@6.3.0: | ||
10183 | resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==} | ||
10184 | engines: {node: '>=10'} | ||
10185 | dependencies: | ||
10186 | '@tokenizer/token': 0.3.0 | ||
10187 | peek-readable: 4.1.0 | ||
10188 | |||
10189 | /style-loader@3.3.3(webpack@5.88.2): | ||
10190 | resolution: {integrity: sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==} | ||
10191 | engines: {node: '>= 12.13.0'} | ||
10192 | peerDependencies: | ||
10193 | webpack: ^5.0.0 | ||
10194 | dependencies: | ||
10195 | webpack: 5.88.2(webpack-cli@5.1.4) | ||
5090 | dev: true | 10196 | dev: true |
5091 | 10197 | ||
5092 | /success-symbol/0.1.0: | 10198 | /stylehacks@6.0.0(postcss@8.4.31): |
5093 | resolution: {integrity: sha512-7S6uOTxPklNGxOSbDIg4KlVLBQw1UiGVyfCUYgYxrZUKRblUkmGj7r8xlfQoFudvqLv6Ap5gd76/IIFfI9JG2A==} | 10199 | resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} |
5094 | engines: {node: '>=0.10.0'} | 10200 | engines: {node: ^14 || ^16 || >=18.0} |
5095 | dev: false | 10201 | peerDependencies: |
10202 | postcss: ^8.2.15 | ||
10203 | dependencies: | ||
10204 | browserslist: 4.22.1 | ||
10205 | postcss: 8.4.31 | ||
10206 | postcss-selector-parser: 6.0.13 | ||
10207 | dev: true | ||
5096 | 10208 | ||
5097 | /supports-color/5.5.0: | 10209 | /superagent@8.1.2: |
10210 | resolution: {integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==} | ||
10211 | engines: {node: '>=6.4.0 <13 || >=14'} | ||
10212 | dependencies: | ||
10213 | component-emitter: 1.3.0 | ||
10214 | cookiejar: 2.1.4 | ||
10215 | debug: 4.3.4 | ||
10216 | fast-safe-stringify: 2.1.1 | ||
10217 | form-data: 4.0.0 | ||
10218 | formidable: 2.1.2 | ||
10219 | methods: 1.1.2 | ||
10220 | mime: 2.6.0 | ||
10221 | qs: 6.11.2 | ||
10222 | semver: 7.5.4 | ||
10223 | transitivePeerDependencies: | ||
10224 | - supports-color | ||
10225 | dev: true | ||
10226 | |||
10227 | /supports-color@2.0.0: | ||
10228 | resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} | ||
10229 | engines: {node: '>=0.8.0'} | ||
10230 | dev: true | ||
10231 | |||
10232 | /supports-color@5.5.0: | ||
5098 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} | 10233 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} |
5099 | engines: {node: '>=4'} | 10234 | engines: {node: '>=4'} |
5100 | dependencies: | 10235 | dependencies: |
5101 | has-flag: 3.0.0 | 10236 | has-flag: 3.0.0 |
5102 | dev: true | 10237 | dev: true |
5103 | 10238 | ||
5104 | /supports-color/7.2.0: | 10239 | /supports-color@7.2.0: |
5105 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} | 10240 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} |
5106 | engines: {node: '>=8'} | 10241 | engines: {node: '>=8'} |
5107 | dependencies: | 10242 | dependencies: |
5108 | has-flag: 4.0.0 | 10243 | has-flag: 4.0.0 |
5109 | dev: true | 10244 | dev: true |
5110 | 10245 | ||
5111 | /supports-preserve-symlinks-flag/1.0.0: | 10246 | /supports-color@8.1.1: |
10247 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} | ||
10248 | engines: {node: '>=10'} | ||
10249 | dependencies: | ||
10250 | has-flag: 4.0.0 | ||
10251 | |||
10252 | /supports-hyperlinks@2.3.0: | ||
10253 | resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} | ||
10254 | engines: {node: '>=8'} | ||
10255 | dependencies: | ||
10256 | has-flag: 4.0.0 | ||
10257 | supports-color: 7.2.0 | ||
10258 | dev: true | ||
10259 | |||
10260 | /supports-preserve-symlinks-flag@1.0.0: | ||
5112 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} | 10261 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} |
5113 | engines: {node: '>= 0.4'} | 10262 | engines: {node: '>= 0.4'} |
5114 | 10263 | ||
5115 | /syntax-error/1.4.0: | 10264 | /svgo@3.0.2: |
5116 | resolution: {integrity: sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==} | 10265 | resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==} |
10266 | engines: {node: '>=14.0.0'} | ||
10267 | hasBin: true | ||
5117 | dependencies: | 10268 | dependencies: |
5118 | acorn-node: 1.8.2 | 10269 | '@trysound/sax': 0.2.0 |
5119 | dev: false | 10270 | commander: 7.2.0 |
10271 | css-select: 5.1.0 | ||
10272 | css-tree: 2.3.1 | ||
10273 | csso: 5.0.5 | ||
10274 | picocolors: 1.0.0 | ||
10275 | dev: true | ||
5120 | 10276 | ||
5121 | /table/6.8.1: | 10277 | /swagger-parser@10.0.3(openapi-types@12.1.3): |
5122 | resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} | 10278 | resolution: {integrity: sha512-nF7oMeL4KypldrQhac8RyHerJeGPD1p2xDh900GPvc+Nk7nWP6jX2FcC7WmkinMoAmoO774+AFXcWsW8gMWEIg==} |
5123 | engines: {node: '>=10.0.0'} | 10279 | engines: {node: '>=10'} |
5124 | dependencies: | 10280 | dependencies: |
5125 | ajv: 8.11.2 | 10281 | '@apidevtools/swagger-parser': 10.0.3(openapi-types@12.1.3) |
5126 | lodash.truncate: 4.4.2 | 10282 | transitivePeerDependencies: |
5127 | slice-ansi: 4.0.0 | 10283 | - openapi-types |
5128 | string-width: 4.2.3 | 10284 | dev: true |
5129 | strip-ansi: 6.0.1 | 10285 | |
10286 | /swagger-schema-official@2.0.0-bab6bed: | ||
10287 | resolution: {integrity: sha512-rCC0NWGKr/IJhtRuPq/t37qvZHI/mH4I4sxflVM+qgVe5Z2uOCivzWaVbuioJaB61kvm5UvB7b49E+oBY0M8jA==} | ||
5130 | dev: true | 10288 | dev: true |
5131 | 10289 | ||
5132 | /tar-fs/1.16.3: | 10290 | /sync-rpc@1.3.6: |
10291 | resolution: {integrity: sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==} | ||
10292 | dependencies: | ||
10293 | get-port: 3.2.0 | ||
10294 | dev: true | ||
10295 | |||
10296 | /synckit@0.8.5: | ||
10297 | resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} | ||
10298 | engines: {node: ^14.18.0 || >=16.0.0} | ||
10299 | dependencies: | ||
10300 | '@pkgr/utils': 2.4.2 | ||
10301 | tslib: 2.6.2 | ||
10302 | dev: true | ||
10303 | |||
10304 | /tapable@2.2.1: | ||
10305 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} | ||
10306 | engines: {node: '>=6'} | ||
10307 | dev: true | ||
10308 | |||
10309 | /tar-fs@1.16.3: | ||
5133 | resolution: {integrity: sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==} | 10310 | resolution: {integrity: sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==} |
5134 | dependencies: | 10311 | dependencies: |
5135 | chownr: 1.1.4 | 10312 | chownr: 1.1.4 |
@@ -5138,7 +10315,7 @@ packages: | |||
5138 | tar-stream: 1.6.2 | 10315 | tar-stream: 1.6.2 |
5139 | dev: false | 10316 | dev: false |
5140 | 10317 | ||
5141 | /tar-stream/1.6.2: | 10318 | /tar-stream@1.6.2: |
5142 | resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} | 10319 | resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} |
5143 | engines: {node: '>= 0.8.0'} | 10320 | engines: {node: '>= 0.8.0'} |
5144 | dependencies: | 10321 | dependencies: |
@@ -5146,99 +10323,140 @@ packages: | |||
5146 | buffer-alloc: 1.2.0 | 10323 | buffer-alloc: 1.2.0 |
5147 | end-of-stream: 1.4.4 | 10324 | end-of-stream: 1.4.4 |
5148 | fs-constants: 1.0.0 | 10325 | fs-constants: 1.0.0 |
5149 | readable-stream: 2.3.7 | 10326 | readable-stream: 2.3.8 |
5150 | to-buffer: 1.1.1 | 10327 | to-buffer: 1.1.1 |
5151 | xtend: 4.0.2 | 10328 | xtend: 4.0.2 |
5152 | dev: false | 10329 | dev: false |
5153 | 10330 | ||
5154 | /tar/4.4.19: | 10331 | /tar@6.2.0: |
5155 | resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} | 10332 | resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} |
5156 | engines: {node: '>=4.5'} | 10333 | engines: {node: '>=10'} |
5157 | dependencies: | 10334 | dependencies: |
5158 | chownr: 1.1.4 | 10335 | chownr: 2.0.0 |
5159 | fs-minipass: 1.2.7 | 10336 | fs-minipass: 2.1.0 |
5160 | minipass: 2.9.0 | 10337 | minipass: 5.0.0 |
5161 | minizlib: 1.3.3 | 10338 | minizlib: 2.1.2 |
5162 | mkdirp: 0.5.6 | 10339 | mkdirp: 1.0.4 |
5163 | safe-buffer: 5.2.1 | 10340 | yallist: 4.0.0 |
5164 | yallist: 3.1.1 | ||
5165 | dev: false | 10341 | dev: false |
5166 | 10342 | ||
5167 | /targz/1.0.1: | 10343 | /targz@1.0.1: |
5168 | resolution: {integrity: sha512-6q4tP9U55mZnRuMTBqnqc3nwYQY3kv+QthCFZuMk+Tn1qYUnMPmL/JZ/mzgXINzFpSqfU+242IFmFU9VPvqaQw==} | 10344 | resolution: {integrity: sha512-6q4tP9U55mZnRuMTBqnqc3nwYQY3kv+QthCFZuMk+Tn1qYUnMPmL/JZ/mzgXINzFpSqfU+242IFmFU9VPvqaQw==} |
5169 | dependencies: | 10345 | dependencies: |
5170 | tar-fs: 1.16.3 | 10346 | tar-fs: 1.16.3 |
5171 | dev: false | 10347 | dev: false |
5172 | 10348 | ||
5173 | /tarn/3.0.2: | 10349 | /tarn@3.0.2: |
5174 | resolution: {integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==} | 10350 | resolution: {integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==} |
5175 | engines: {node: '>=8.0.0'} | 10351 | engines: {node: '>=8.0.0'} |
5176 | dev: false | 10352 | dev: false |
5177 | 10353 | ||
5178 | /terminal-paginator/2.0.2: | 10354 | /term-size@2.2.1: |
5179 | resolution: {integrity: sha512-IZMT5ECF9p4s+sNCV8uvZSW9E1+9zy9Ji9xz2oee8Jfo7hUFpauyjxkhfRcIH6Lu3Wdepv5D1kVRc8Hx74/LfQ==} | 10355 | resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} |
5180 | engines: {node: '>=0.10.0'} | 10356 | engines: {node: '>=8'} |
10357 | |||
10358 | /terser-webpack-plugin@5.3.9(webpack@5.88.2): | ||
10359 | resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} | ||
10360 | engines: {node: '>= 10.13.0'} | ||
10361 | peerDependencies: | ||
10362 | '@swc/core': '*' | ||
10363 | esbuild: '*' | ||
10364 | uglify-js: '*' | ||
10365 | webpack: ^5.1.0 | ||
10366 | peerDependenciesMeta: | ||
10367 | '@swc/core': | ||
10368 | optional: true | ||
10369 | esbuild: | ||
10370 | optional: true | ||
10371 | uglify-js: | ||
10372 | optional: true | ||
5181 | dependencies: | 10373 | dependencies: |
5182 | debug: 2.6.9 | 10374 | '@jridgewell/trace-mapping': 0.3.19 |
5183 | extend-shallow: 2.0.1 | 10375 | jest-worker: 27.5.1 |
5184 | log-utils: 0.2.1 | 10376 | schema-utils: 3.3.0 |
5185 | transitivePeerDependencies: | 10377 | serialize-javascript: 6.0.1 |
5186 | - supports-color | 10378 | terser: 5.20.0 |
5187 | dev: false | 10379 | webpack: 5.88.2(webpack-cli@5.1.4) |
10380 | dev: true | ||
5188 | 10381 | ||
5189 | /text-hex/1.0.0: | 10382 | /terser@5.20.0: |
5190 | resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} | 10383 | resolution: {integrity: sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ==} |
5191 | dev: false | 10384 | engines: {node: '>=10'} |
10385 | hasBin: true | ||
10386 | dependencies: | ||
10387 | '@jridgewell/source-map': 0.3.5 | ||
10388 | acorn: 8.10.0 | ||
10389 | commander: 2.20.3 | ||
10390 | source-map-support: 0.5.21 | ||
10391 | dev: true | ||
5192 | 10392 | ||
5193 | /text-table/0.2.0: | 10393 | /text-table@0.2.0: |
5194 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} | 10394 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} |
5195 | dev: true | 10395 | dev: true |
5196 | 10396 | ||
5197 | /through/2.3.8: | 10397 | /thunky@1.1.0: |
5198 | resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} | 10398 | resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} |
5199 | dev: true | 10399 | dev: true |
5200 | 10400 | ||
5201 | /tildify/2.0.0: | 10401 | /tildify@2.0.0: |
5202 | resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==} | 10402 | resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==} |
5203 | engines: {node: '>=8'} | 10403 | engines: {node: '>=8'} |
5204 | dev: false | 10404 | dev: false |
5205 | 10405 | ||
5206 | /time-stamp/1.1.0: | 10406 | /time-span@4.0.0: |
5207 | resolution: {integrity: sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==} | 10407 | resolution: {integrity: sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g==} |
5208 | engines: {node: '>=0.10.0'} | 10408 | engines: {node: '>=10'} |
5209 | dev: false | 10409 | dependencies: |
10410 | convert-hrtime: 3.0.0 | ||
10411 | dev: true | ||
5210 | 10412 | ||
5211 | /timed-out/4.0.1: | 10413 | /titleize@3.0.0: |
5212 | resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} | 10414 | resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} |
5213 | engines: {node: '>=0.10.0'} | 10415 | engines: {node: '>=12'} |
5214 | dev: false | 10416 | dev: true |
10417 | |||
10418 | /tmp-cache@1.1.0: | ||
10419 | resolution: {integrity: sha512-j040fkL/x+XAZQ9K3bKGEPwgYhOZNBQLa3NXEADUiuno9C+3N2JJA4bVPDREixp604G3/vTXWA3DIPpA9lu1RQ==} | ||
10420 | engines: {node: '>=6'} | ||
5215 | 10421 | ||
5216 | /tmp/0.0.33: | 10422 | /tmp@0.2.1: |
5217 | resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} | 10423 | resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} |
5218 | engines: {node: '>=0.6.0'} | 10424 | engines: {node: '>=8.17.0'} |
5219 | dependencies: | 10425 | dependencies: |
5220 | os-tmpdir: 1.0.2 | 10426 | rimraf: 3.0.2 |
10427 | dev: true | ||
5221 | 10428 | ||
5222 | /to-buffer/1.1.1: | 10429 | /to-buffer@1.1.1: |
5223 | resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} | 10430 | resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} |
5224 | dev: false | 10431 | dev: false |
5225 | 10432 | ||
5226 | /to-object-path/0.3.0: | 10433 | /to-fast-properties@2.0.0: |
10434 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} | ||
10435 | engines: {node: '>=4'} | ||
10436 | dev: true | ||
10437 | |||
10438 | /to-object-path@0.3.0: | ||
5227 | resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} | 10439 | resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} |
5228 | engines: {node: '>=0.10.0'} | 10440 | engines: {node: '>=0.10.0'} |
5229 | dependencies: | 10441 | dependencies: |
5230 | kind-of: 3.2.2 | 10442 | kind-of: 3.2.2 |
5231 | dev: false | 10443 | dev: true |
5232 | 10444 | ||
5233 | /to-regex-range/2.1.1: | 10445 | /to-regex-range@2.1.1: |
5234 | resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} | 10446 | resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} |
5235 | engines: {node: '>=0.10.0'} | 10447 | engines: {node: '>=0.10.0'} |
5236 | dependencies: | 10448 | dependencies: |
5237 | is-number: 3.0.0 | 10449 | is-number: 3.0.0 |
5238 | repeat-string: 1.6.1 | 10450 | repeat-string: 1.6.1 |
5239 | dev: false | 10451 | dev: true |
10452 | |||
10453 | /to-regex-range@5.0.1: | ||
10454 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} | ||
10455 | engines: {node: '>=8.0'} | ||
10456 | dependencies: | ||
10457 | is-number: 7.0.0 | ||
5240 | 10458 | ||
5241 | /to-regex/3.0.2: | 10459 | /to-regex@3.0.2: |
5242 | resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} | 10460 | resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} |
5243 | engines: {node: '>=0.10.0'} | 10461 | engines: {node: '>=0.10.0'} |
5244 | dependencies: | 10462 | dependencies: |
@@ -5246,106 +10464,184 @@ packages: | |||
5246 | extend-shallow: 3.0.2 | 10464 | extend-shallow: 3.0.2 |
5247 | regex-not: 1.0.2 | 10465 | regex-not: 1.0.2 |
5248 | safe-regex: 1.1.0 | 10466 | safe-regex: 1.1.0 |
5249 | dev: false | 10467 | dev: true |
5250 | |||
5251 | /toggle-array/1.0.1: | ||
5252 | resolution: {integrity: sha512-TZXgboKpD5Iu0Goi8hRXuJpE06Pbo+bies4I4jnTBhlRRgyen9c37nMylnquK/ZPKXXOeh1mJ14p9QdKp+9v7A==} | ||
5253 | engines: {node: '>=0.10.0'} | ||
5254 | dependencies: | ||
5255 | isobject: 3.0.1 | ||
5256 | dev: false | ||
5257 | 10468 | ||
5258 | /toidentifier/1.0.1: | 10469 | /toidentifier@1.0.1: |
5259 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} | 10470 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} |
5260 | engines: {node: '>=0.6'} | 10471 | engines: {node: '>=0.6'} |
5261 | dev: false | ||
5262 | 10472 | ||
5263 | /tough-cookie/2.5.0: | 10473 | /token-types@4.2.1: |
5264 | resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} | 10474 | resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} |
5265 | engines: {node: '>=0.8'} | 10475 | engines: {node: '>=10'} |
5266 | dependencies: | 10476 | dependencies: |
5267 | psl: 1.9.0 | 10477 | '@tokenizer/token': 0.3.0 |
5268 | punycode: 2.1.1 | 10478 | ieee754: 1.2.1 |
5269 | dev: false | ||
5270 | 10479 | ||
5271 | /tr46/0.0.3: | 10480 | /tr46@0.0.3: |
5272 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} | 10481 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} |
5273 | |||
5274 | /triple-beam/1.3.0: | ||
5275 | resolution: {integrity: sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==} | ||
5276 | dev: false | 10482 | dev: false |
5277 | 10483 | ||
5278 | /truncate-utf8-bytes/1.0.2: | 10484 | /traverse@0.6.7: |
10485 | resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} | ||
10486 | dev: true | ||
10487 | |||
10488 | /truncate-utf8-bytes@1.0.2: | ||
5279 | resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} | 10489 | resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} |
5280 | dependencies: | 10490 | dependencies: |
5281 | utf8-byte-length: 1.0.4 | 10491 | utf8-byte-length: 1.0.4 |
5282 | dev: false | 10492 | dev: false |
5283 | 10493 | ||
5284 | /tsconfig-paths/3.14.1: | 10494 | /truncatise@0.0.8: |
5285 | resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} | 10495 | resolution: {integrity: sha512-cXzueh9pzBCsLzhToB4X4gZCb3KYkrsAcBAX97JnazE74HOl3cpBJYEV7nabHeG/6/WXCU5Yujlde/WPBUwnsg==} |
10496 | |||
10497 | /ts-api-utils@1.0.3(typescript@5.1.6): | ||
10498 | resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} | ||
10499 | engines: {node: '>=16.13.0'} | ||
10500 | peerDependencies: | ||
10501 | typescript: '>=4.2.0' | ||
10502 | dependencies: | ||
10503 | typescript: 5.1.6 | ||
10504 | dev: true | ||
10505 | |||
10506 | /ts-morph@16.0.0: | ||
10507 | resolution: {integrity: sha512-jGNF0GVpFj0orFw55LTsQxVYEUOCWBAbR5Ls7fTYE5pQsbW18ssTb/6UXx/GYAEjS+DQTp8VoTw0vqYMiaaQuw==} | ||
10508 | dependencies: | ||
10509 | '@ts-morph/common': 0.17.0 | ||
10510 | code-block-writer: 11.0.3 | ||
10511 | dev: false | ||
10512 | |||
10513 | /tsconfig-paths@3.14.2: | ||
10514 | resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} | ||
5286 | dependencies: | 10515 | dependencies: |
5287 | '@types/json5': 0.0.29 | 10516 | '@types/json5': 0.0.29 |
5288 | json5: 1.0.1 | 10517 | json5: 1.0.2 |
5289 | minimist: 1.2.7 | 10518 | minimist: 1.2.8 |
5290 | strip-bom: 3.0.0 | 10519 | strip-bom: 3.0.0 |
5291 | dev: true | 10520 | dev: true |
5292 | 10521 | ||
5293 | /tslib/1.14.1: | 10522 | /tslib@1.14.1: |
5294 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} | 10523 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} |
10524 | dev: true | ||
10525 | |||
10526 | /tslib@2.6.2: | ||
10527 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} | ||
5295 | 10528 | ||
5296 | /tsscmp/1.0.6: | 10529 | /tsscmp@1.0.6: |
5297 | resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} | 10530 | resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} |
5298 | engines: {node: '>=0.6.x'} | 10531 | engines: {node: '>=0.6.x'} |
5299 | dev: false | 10532 | dev: false |
5300 | 10533 | ||
5301 | /tunnel-agent/0.6.0: | 10534 | /tsse@2.1.0: |
5302 | resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} | 10535 | resolution: {integrity: sha512-rYyp1CO0VcKCIoAlMKAaLEb/1v5arucsRWSc+kkz9k2/GQN7rVMUH5Dmc7l3ZuiJGZ7jwEDO9Z0Qv6LkAqCdDA==} |
10536 | engines: {node: '>=4'} | ||
5303 | dependencies: | 10537 | dependencies: |
5304 | safe-buffer: 5.2.1 | 10538 | safe-buffer: 5.2.1 |
5305 | dev: false | 10539 | dev: false |
5306 | 10540 | ||
5307 | /tweetnacl/0.14.5: | 10541 | /tsutils@3.21.0(typescript@5.1.6): |
5308 | resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} | 10542 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} |
5309 | dev: false | 10543 | engines: {node: '>= 6'} |
10544 | peerDependencies: | ||
10545 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' | ||
10546 | dependencies: | ||
10547 | tslib: 1.14.1 | ||
10548 | typescript: 5.1.6 | ||
10549 | dev: true | ||
5310 | 10550 | ||
5311 | /type-check/0.4.0: | 10551 | /type-check@0.4.0: |
5312 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} | 10552 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} |
5313 | engines: {node: '>= 0.8.0'} | 10553 | engines: {node: '>= 0.8.0'} |
5314 | dependencies: | 10554 | dependencies: |
5315 | prelude-ls: 1.2.1 | 10555 | prelude-ls: 1.2.1 |
5316 | dev: true | 10556 | dev: true |
5317 | 10557 | ||
5318 | /type-fest/0.20.2: | 10558 | /type-detect@4.0.8: |
10559 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} | ||
10560 | engines: {node: '>=4'} | ||
10561 | dev: true | ||
10562 | |||
10563 | /type-fest@0.20.2: | ||
5319 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} | 10564 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} |
5320 | engines: {node: '>=10'} | 10565 | engines: {node: '>=10'} |
5321 | dev: true | 10566 | dev: true |
5322 | 10567 | ||
5323 | /type-fest/0.21.3: | 10568 | /type-fest@0.21.3: |
5324 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} | 10569 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} |
5325 | engines: {node: '>=10'} | 10570 | engines: {node: '>=10'} |
10571 | |||
10572 | /type-fest@0.6.0: | ||
10573 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} | ||
10574 | engines: {node: '>=8'} | ||
10575 | dev: true | ||
10576 | |||
10577 | /type-fest@0.8.1: | ||
10578 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} | ||
10579 | engines: {node: '>=8'} | ||
5326 | dev: true | 10580 | dev: true |
5327 | 10581 | ||
5328 | /type-is/1.6.18: | 10582 | /type-fest@3.13.1: |
10583 | resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} | ||
10584 | engines: {node: '>=14.16'} | ||
10585 | dev: true | ||
10586 | |||
10587 | /type-is@1.6.18: | ||
5329 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} | 10588 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} |
5330 | engines: {node: '>= 0.6'} | 10589 | engines: {node: '>= 0.6'} |
5331 | dependencies: | 10590 | dependencies: |
5332 | media-typer: 0.3.0 | 10591 | media-typer: 0.3.0 |
5333 | mime-types: 2.1.35 | 10592 | mime-types: 2.1.35 |
5334 | dev: false | ||
5335 | 10593 | ||
5336 | /type-of-is/3.5.1: | 10594 | /typed-array-buffer@1.0.0: |
5337 | resolution: {integrity: sha512-SOnx8xygcAh8lvDU2exnK2bomASfNjzB3Qz71s2tw9QnX8fkAo7aC+D0H7FV0HjRKj94CKV2Hi71kVkkO6nOxg==} | 10595 | resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} |
5338 | engines: {node: '>=0.10.5'} | 10596 | engines: {node: '>= 0.4'} |
5339 | dev: false | 10597 | dependencies: |
10598 | call-bind: 1.0.2 | ||
10599 | get-intrinsic: 1.2.1 | ||
10600 | is-typed-array: 1.1.12 | ||
10601 | dev: true | ||
10602 | |||
10603 | /typed-array-byte-length@1.0.0: | ||
10604 | resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} | ||
10605 | engines: {node: '>= 0.4'} | ||
10606 | dependencies: | ||
10607 | call-bind: 1.0.2 | ||
10608 | for-each: 0.3.3 | ||
10609 | has-proto: 1.0.1 | ||
10610 | is-typed-array: 1.1.12 | ||
10611 | dev: true | ||
10612 | |||
10613 | /typed-array-byte-offset@1.0.0: | ||
10614 | resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} | ||
10615 | engines: {node: '>= 0.4'} | ||
10616 | dependencies: | ||
10617 | available-typed-arrays: 1.0.5 | ||
10618 | call-bind: 1.0.2 | ||
10619 | for-each: 0.3.3 | ||
10620 | has-proto: 1.0.1 | ||
10621 | is-typed-array: 1.1.12 | ||
10622 | dev: true | ||
10623 | |||
10624 | /typed-array-length@1.0.4: | ||
10625 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} | ||
10626 | dependencies: | ||
10627 | call-bind: 1.0.2 | ||
10628 | for-each: 0.3.3 | ||
10629 | is-typed-array: 1.1.12 | ||
10630 | dev: true | ||
5340 | 10631 | ||
5341 | /uid-safe/2.1.5: | 10632 | /typescript@5.1.6: |
10633 | resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} | ||
10634 | engines: {node: '>=14.17'} | ||
10635 | hasBin: true | ||
10636 | dev: true | ||
10637 | |||
10638 | /uid-safe@2.1.5: | ||
5342 | resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} | 10639 | resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} |
5343 | engines: {node: '>= 0.8'} | 10640 | engines: {node: '>= 0.8'} |
5344 | dependencies: | 10641 | dependencies: |
5345 | random-bytes: 1.0.0 | 10642 | random-bytes: 1.0.0 |
5346 | dev: false | ||
5347 | 10643 | ||
5348 | /unbox-primitive/1.0.2: | 10644 | /unbox-primitive@1.0.2: |
5349 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} | 10645 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} |
5350 | dependencies: | 10646 | dependencies: |
5351 | call-bind: 1.0.2 | 10647 | call-bind: 1.0.2 |
@@ -5354,12 +10650,30 @@ packages: | |||
5354 | which-boxed-primitive: 1.0.2 | 10650 | which-boxed-primitive: 1.0.2 |
5355 | dev: true | 10651 | dev: true |
5356 | 10652 | ||
5357 | /unc-path-regex/0.1.2: | 10653 | /unicode-canonical-property-names-ecmascript@2.0.0: |
5358 | resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} | 10654 | resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} |
5359 | engines: {node: '>=0.10.0'} | 10655 | engines: {node: '>=4'} |
5360 | dev: false | 10656 | dev: true |
10657 | |||
10658 | /unicode-match-property-ecmascript@2.0.0: | ||
10659 | resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} | ||
10660 | engines: {node: '>=4'} | ||
10661 | dependencies: | ||
10662 | unicode-canonical-property-names-ecmascript: 2.0.0 | ||
10663 | unicode-property-aliases-ecmascript: 2.1.0 | ||
10664 | dev: true | ||
10665 | |||
10666 | /unicode-match-property-value-ecmascript@2.1.0: | ||
10667 | resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} | ||
10668 | engines: {node: '>=4'} | ||
10669 | dev: true | ||
10670 | |||
10671 | /unicode-property-aliases-ecmascript@2.1.0: | ||
10672 | resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} | ||
10673 | engines: {node: '>=4'} | ||
10674 | dev: true | ||
5361 | 10675 | ||
5362 | /union-value/1.0.1: | 10676 | /union-value@1.0.1: |
5363 | resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} | 10677 | resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} |
5364 | engines: {node: '>=0.10.0'} | 10678 | engines: {node: '>=0.10.0'} |
5365 | dependencies: | 10679 | dependencies: |
@@ -5367,134 +10681,369 @@ packages: | |||
5367 | get-value: 2.0.6 | 10681 | get-value: 2.0.6 |
5368 | is-extendable: 0.1.1 | 10682 | is-extendable: 0.1.1 |
5369 | set-value: 2.0.1 | 10683 | set-value: 2.0.1 |
10684 | dev: true | ||
10685 | |||
10686 | /unique-filename@1.1.1: | ||
10687 | resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} | ||
10688 | requiresBuild: true | ||
10689 | dependencies: | ||
10690 | unique-slug: 2.0.2 | ||
5370 | dev: false | 10691 | dev: false |
10692 | optional: true | ||
5371 | 10693 | ||
5372 | /universalify/0.1.2: | 10694 | /unique-slug@2.0.2: |
10695 | resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} | ||
10696 | requiresBuild: true | ||
10697 | dependencies: | ||
10698 | imurmurhash: 0.1.4 | ||
10699 | dev: false | ||
10700 | optional: true | ||
10701 | |||
10702 | /universalify@0.1.2: | ||
5373 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} | 10703 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} |
5374 | engines: {node: '>= 4.0.0'} | 10704 | engines: {node: '>= 4.0.0'} |
5375 | dev: false | 10705 | dev: true |
5376 | 10706 | ||
5377 | /universalify/2.0.0: | 10707 | /universalify@2.0.0: |
5378 | resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} | 10708 | resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} |
5379 | engines: {node: '>= 10.0.0'} | 10709 | engines: {node: '>= 10.0.0'} |
5380 | dev: false | ||
5381 | 10710 | ||
5382 | /unpipe/1.0.0: | 10711 | /unpipe@1.0.0: |
5383 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} | 10712 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} |
5384 | engines: {node: '>= 0.8'} | 10713 | engines: {node: '>= 0.8'} |
5385 | dev: false | ||
5386 | 10714 | ||
5387 | /unset-value/1.0.0: | 10715 | /unset-value@1.0.0: |
5388 | resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} | 10716 | resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} |
5389 | engines: {node: '>=0.10.0'} | 10717 | engines: {node: '>=0.10.0'} |
5390 | dependencies: | 10718 | dependencies: |
5391 | has-value: 0.3.1 | 10719 | has-value: 0.3.1 |
5392 | isobject: 3.0.1 | 10720 | isobject: 3.0.1 |
5393 | dev: false | 10721 | dev: true |
5394 | 10722 | ||
5395 | /upcast/2.1.2: | 10723 | /untildify@4.0.0: |
5396 | resolution: {integrity: sha512-c+ueM175OVWv9vr1SYA3rI1ao0bxq6Y7l6u5Sac25Hi0yWz9Lz341zt9/sVOa5+7lYcvHMb0xxaacFy/2lVF2w==} | 10724 | resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} |
5397 | engines: {node: '>4'} | 10725 | engines: {node: '>=8'} |
10726 | dev: true | ||
10727 | |||
10728 | /update-browserslist-db@1.0.13(browserslist@4.22.1): | ||
10729 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} | ||
10730 | hasBin: true | ||
10731 | peerDependencies: | ||
10732 | browserslist: '>= 4.21.0' | ||
5398 | dependencies: | 10733 | dependencies: |
5399 | cross-env: 5.2.1 | 10734 | browserslist: 4.22.1 |
5400 | dev: false | 10735 | escalade: 3.1.1 |
10736 | picocolors: 1.0.0 | ||
10737 | dev: true | ||
10738 | |||
10739 | /upper-case-first@2.0.2: | ||
10740 | resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} | ||
10741 | dependencies: | ||
10742 | tslib: 2.6.2 | ||
5401 | 10743 | ||
5402 | /uri-js/4.4.1: | 10744 | /upper-case@2.0.2: |
10745 | resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} | ||
10746 | dependencies: | ||
10747 | tslib: 2.6.2 | ||
10748 | |||
10749 | /uri-js@4.4.1: | ||
5403 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} | 10750 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} |
5404 | dependencies: | 10751 | dependencies: |
5405 | punycode: 2.1.1 | 10752 | punycode: 2.3.0 |
10753 | dev: true | ||
5406 | 10754 | ||
5407 | /urix/0.1.0: | 10755 | /urix@0.1.0: |
5408 | resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} | 10756 | resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} |
5409 | deprecated: Please see https://github.com/lydell/urix#deprecated | 10757 | deprecated: Please see https://github.com/lydell/urix#deprecated |
5410 | dev: false | 10758 | dev: true |
5411 | 10759 | ||
5412 | /url-parse-lax/3.0.0: | 10760 | /url@0.10.3: |
5413 | resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} | 10761 | resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==} |
5414 | engines: {node: '>=4'} | ||
5415 | dependencies: | 10762 | dependencies: |
5416 | prepend-http: 2.0.0 | 10763 | punycode: 1.3.2 |
5417 | dev: false | 10764 | querystring: 0.2.0 |
5418 | |||
5419 | /url-to-options/1.0.1: | ||
5420 | resolution: {integrity: sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==} | ||
5421 | engines: {node: '>= 4'} | ||
5422 | dev: false | 10765 | dev: false |
5423 | 10766 | ||
5424 | /use/3.1.1: | 10767 | /use@3.1.1: |
5425 | resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} | 10768 | resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} |
5426 | engines: {node: '>=0.10.0'} | 10769 | engines: {node: '>=0.10.0'} |
10770 | dev: true | ||
10771 | |||
10772 | /utf8-byte-length@1.0.4: | ||
10773 | resolution: {integrity: sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==} | ||
5427 | dev: false | 10774 | dev: false |
5428 | 10775 | ||
5429 | /useragent/2.3.0: | 10776 | /util-deprecate@1.0.2: |
5430 | resolution: {integrity: sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==} | 10777 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} |
10778 | |||
10779 | /util@0.12.5: | ||
10780 | resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} | ||
5431 | dependencies: | 10781 | dependencies: |
5432 | lru-cache: 4.1.5 | 10782 | inherits: 2.0.4 |
5433 | request: 2.88.2 | 10783 | is-arguments: 1.1.1 |
5434 | semver: 5.5.1 | 10784 | is-generator-function: 1.0.10 |
5435 | tmp: 0.0.33 | 10785 | is-typed-array: 1.1.12 |
5436 | yamlparser: 0.0.2 | 10786 | which-typed-array: 1.1.11 |
5437 | dev: false | 10787 | dev: false |
5438 | 10788 | ||
5439 | /utf8-byte-length/1.0.4: | 10789 | /utila@0.4.0: |
5440 | resolution: {integrity: sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==} | 10790 | resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} |
5441 | dev: false | 10791 | dev: true |
5442 | 10792 | ||
5443 | /util-deprecate/1.0.2: | 10793 | /utils-merge@1.0.1: |
5444 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} | 10794 | resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} |
10795 | engines: {node: '>= 0.4.0'} | ||
10796 | dev: true | ||
10797 | |||
10798 | /uuid-random@1.3.2: | ||
10799 | resolution: {integrity: sha512-UOzej0Le/UgkbWEO8flm+0y+G+ljUon1QWTEZOq1rnMAsxo2+SckbiZdKzAHHlVh6gJqI1TjC/xwgR50MuCrBQ==} | ||
5445 | dev: false | 10800 | dev: false |
5446 | 10801 | ||
5447 | /uuid/3.4.0: | 10802 | /uuid@8.0.0: |
5448 | resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} | 10803 | resolution: {integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==} |
5449 | deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. | ||
5450 | hasBin: true | 10804 | hasBin: true |
5451 | dev: false | 10805 | dev: false |
5452 | 10806 | ||
5453 | /uuid/8.3.2: | 10807 | /uuid@8.3.2: |
5454 | resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} | 10808 | resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} |
5455 | hasBin: true | 10809 | hasBin: true |
10810 | dev: true | ||
10811 | |||
10812 | /uuid@9.0.0: | ||
10813 | resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} | ||
10814 | hasBin: true | ||
5456 | dev: false | 10815 | dev: false |
5457 | 10816 | ||
5458 | /v8-compile-cache/2.3.0: | 10817 | /valid-url@1.0.9: |
5459 | resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} | 10818 | resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==} |
5460 | dev: true | 10819 | dev: true |
5461 | 10820 | ||
5462 | /v8flags/3.2.0: | 10821 | /validate-npm-package-license@3.0.4: |
5463 | resolution: {integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==} | 10822 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} |
5464 | engines: {node: '>= 0.10'} | ||
5465 | dependencies: | 10823 | dependencies: |
5466 | homedir-polyfill: 1.0.3 | 10824 | spdx-correct: 3.2.0 |
5467 | dev: false | 10825 | spdx-expression-parse: 3.0.1 |
10826 | dev: true | ||
10827 | |||
10828 | /validate-npm-package-name@3.0.0: | ||
10829 | resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} | ||
10830 | dependencies: | ||
10831 | builtins: 1.0.3 | ||
10832 | dev: true | ||
10833 | |||
10834 | /validator@13.11.0: | ||
10835 | resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} | ||
10836 | engines: {node: '>= 0.10'} | ||
5468 | 10837 | ||
5469 | /vary/1.1.2: | 10838 | /vary@1.1.2: |
5470 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} | 10839 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} |
5471 | engines: {node: '>= 0.8'} | 10840 | engines: {node: '>= 0.8'} |
5472 | dev: false | ||
5473 | 10841 | ||
5474 | /verror/1.10.0: | 10842 | /watchpack@2.4.0: |
5475 | resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} | 10843 | resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} |
5476 | engines: {'0': node >=0.6.0} | 10844 | engines: {node: '>=10.13.0'} |
5477 | dependencies: | 10845 | dependencies: |
5478 | assert-plus: 1.0.0 | 10846 | glob-to-regexp: 0.4.1 |
5479 | core-util-is: 1.0.2 | 10847 | graceful-fs: 4.2.11 |
5480 | extsprintf: 1.3.0 | 10848 | dev: true |
5481 | dev: false | ||
5482 | 10849 | ||
5483 | /warning-symbol/0.1.0: | 10850 | /wbuf@1.7.3: |
5484 | resolution: {integrity: sha512-1S0lwbHo3kNUKA4VomBAhqn4DPjQkIKSdbOin5K7EFUQNwyIKx+wZMGXKI53RUjla8V2B8ouQduUlgtx8LoSMw==} | 10851 | resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} |
5485 | engines: {node: '>=0.10.0'} | 10852 | dependencies: |
5486 | dev: false | 10853 | minimalistic-assert: 1.0.1 |
10854 | dev: true | ||
5487 | 10855 | ||
5488 | /webidl-conversions/3.0.1: | 10856 | /wcwidth@1.0.1: |
10857 | resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} | ||
10858 | dependencies: | ||
10859 | defaults: 1.0.4 | ||
10860 | dev: true | ||
10861 | |||
10862 | /webidl-conversions@3.0.1: | ||
5489 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} | 10863 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} |
10864 | dev: false | ||
10865 | |||
10866 | /webpack-cli@5.1.4(webpack@5.88.2): | ||
10867 | resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} | ||
10868 | engines: {node: '>=14.15.0'} | ||
10869 | hasBin: true | ||
10870 | peerDependencies: | ||
10871 | '@webpack-cli/generators': '*' | ||
10872 | webpack: 5.x.x | ||
10873 | webpack-bundle-analyzer: '*' | ||
10874 | webpack-dev-server: '*' | ||
10875 | peerDependenciesMeta: | ||
10876 | '@webpack-cli/generators': | ||
10877 | optional: true | ||
10878 | webpack-bundle-analyzer: | ||
10879 | optional: true | ||
10880 | webpack-dev-server: | ||
10881 | optional: true | ||
10882 | dependencies: | ||
10883 | '@discoveryjs/json-ext': 0.5.7 | ||
10884 | '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.88.2) | ||
10885 | '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.88.2) | ||
10886 | '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.88.2) | ||
10887 | colorette: 2.0.20 | ||
10888 | commander: 10.0.1 | ||
10889 | cross-spawn: 7.0.3 | ||
10890 | envinfo: 7.10.0 | ||
10891 | fastest-levenshtein: 1.0.16 | ||
10892 | import-local: 3.1.0 | ||
10893 | interpret: 3.1.1 | ||
10894 | rechoir: 0.8.0 | ||
10895 | webpack: 5.88.2(webpack-cli@5.1.4) | ||
10896 | webpack-merge: 5.9.0 | ||
10897 | dev: true | ||
10898 | |||
10899 | /webpack-dev-middleware@5.3.3(webpack@5.88.2): | ||
10900 | resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} | ||
10901 | engines: {node: '>= 12.13.0'} | ||
10902 | peerDependencies: | ||
10903 | webpack: ^4.0.0 || ^5.0.0 | ||
10904 | dependencies: | ||
10905 | colorette: 2.0.20 | ||
10906 | memfs: 3.5.3 | ||
10907 | mime-types: 2.1.35 | ||
10908 | range-parser: 1.2.1 | ||
10909 | schema-utils: 4.2.0 | ||
10910 | webpack: 5.88.2(webpack-cli@5.1.4) | ||
10911 | dev: true | ||
10912 | |||
10913 | /webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.88.2): | ||
10914 | resolution: {integrity: sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==} | ||
10915 | engines: {node: '>= 12.13.0'} | ||
10916 | hasBin: true | ||
10917 | peerDependencies: | ||
10918 | webpack: ^4.37.0 || ^5.0.0 | ||
10919 | webpack-cli: '*' | ||
10920 | peerDependenciesMeta: | ||
10921 | webpack: | ||
10922 | optional: true | ||
10923 | webpack-cli: | ||
10924 | optional: true | ||
10925 | dependencies: | ||
10926 | '@types/bonjour': 3.5.11 | ||
10927 | '@types/connect-history-api-fallback': 1.5.1 | ||
10928 | '@types/express': 4.17.18 | ||
10929 | '@types/serve-index': 1.9.2 | ||
10930 | '@types/serve-static': 1.15.3 | ||
10931 | '@types/sockjs': 0.3.34 | ||
10932 | '@types/ws': 8.5.6 | ||
10933 | ansi-html-community: 0.0.8 | ||
10934 | bonjour-service: 1.1.1 | ||
10935 | chokidar: 3.5.3 | ||
10936 | colorette: 2.0.20 | ||
10937 | compression: 1.7.4 | ||
10938 | connect-history-api-fallback: 2.0.0 | ||
10939 | default-gateway: 6.0.3 | ||
10940 | express: 4.18.2 | ||
10941 | graceful-fs: 4.2.11 | ||
10942 | html-entities: 2.4.0 | ||
10943 | http-proxy-middleware: 2.0.6(@types/express@4.17.18) | ||
10944 | ipaddr.js: 2.1.0 | ||
10945 | launch-editor: 2.6.0 | ||
10946 | open: 8.4.2 | ||
10947 | p-retry: 4.6.2 | ||
10948 | rimraf: 3.0.2 | ||
10949 | schema-utils: 4.2.0 | ||
10950 | selfsigned: 2.1.1 | ||
10951 | serve-index: 1.9.1 | ||
10952 | sockjs: 0.3.24 | ||
10953 | spdy: 4.0.2 | ||
10954 | webpack: 5.88.2(webpack-cli@5.1.4) | ||
10955 | webpack-cli: 5.1.4(webpack@5.88.2) | ||
10956 | webpack-dev-middleware: 5.3.3(webpack@5.88.2) | ||
10957 | ws: 8.14.2 | ||
10958 | transitivePeerDependencies: | ||
10959 | - bufferutil | ||
10960 | - debug | ||
10961 | - supports-color | ||
10962 | - utf-8-validate | ||
10963 | dev: true | ||
10964 | |||
10965 | /webpack-merge@4.2.2: | ||
10966 | resolution: {integrity: sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==} | ||
10967 | dependencies: | ||
10968 | lodash: 4.17.21 | ||
10969 | dev: true | ||
10970 | |||
10971 | /webpack-merge@5.9.0: | ||
10972 | resolution: {integrity: sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==} | ||
10973 | engines: {node: '>=10.0.0'} | ||
10974 | dependencies: | ||
10975 | clone-deep: 4.0.1 | ||
10976 | wildcard: 2.0.1 | ||
10977 | dev: true | ||
10978 | |||
10979 | /webpack-sources@3.2.3: | ||
10980 | resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} | ||
10981 | engines: {node: '>=10.13.0'} | ||
10982 | dev: true | ||
10983 | |||
10984 | /webpack@5.88.2(webpack-cli@5.1.4): | ||
10985 | resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==} | ||
10986 | engines: {node: '>=10.13.0'} | ||
10987 | hasBin: true | ||
10988 | peerDependencies: | ||
10989 | webpack-cli: '*' | ||
10990 | peerDependenciesMeta: | ||
10991 | webpack-cli: | ||
10992 | optional: true | ||
10993 | dependencies: | ||
10994 | '@types/eslint-scope': 3.7.5 | ||
10995 | '@types/estree': 1.0.2 | ||
10996 | '@webassemblyjs/ast': 1.11.6 | ||
10997 | '@webassemblyjs/wasm-edit': 1.11.6 | ||
10998 | '@webassemblyjs/wasm-parser': 1.11.6 | ||
10999 | acorn: 8.10.0 | ||
11000 | acorn-import-assertions: 1.9.0(acorn@8.10.0) | ||
11001 | browserslist: 4.22.1 | ||
11002 | chrome-trace-event: 1.0.3 | ||
11003 | enhanced-resolve: 5.15.0 | ||
11004 | es-module-lexer: 1.3.1 | ||
11005 | eslint-scope: 5.1.1 | ||
11006 | events: 3.3.0 | ||
11007 | glob-to-regexp: 0.4.1 | ||
11008 | graceful-fs: 4.2.11 | ||
11009 | json-parse-even-better-errors: 2.3.1 | ||
11010 | loader-runner: 4.3.0 | ||
11011 | mime-types: 2.1.35 | ||
11012 | neo-async: 2.6.2 | ||
11013 | schema-utils: 3.3.0 | ||
11014 | tapable: 2.2.1 | ||
11015 | terser-webpack-plugin: 5.3.9(webpack@5.88.2) | ||
11016 | watchpack: 2.4.0 | ||
11017 | webpack-cli: 5.1.4(webpack@5.88.2) | ||
11018 | webpack-sources: 3.2.3 | ||
11019 | transitivePeerDependencies: | ||
11020 | - '@swc/core' | ||
11021 | - esbuild | ||
11022 | - uglify-js | ||
11023 | dev: true | ||
11024 | |||
11025 | /websocket-driver@0.7.4: | ||
11026 | resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} | ||
11027 | engines: {node: '>=0.8.0'} | ||
11028 | dependencies: | ||
11029 | http-parser-js: 0.5.8 | ||
11030 | safe-buffer: 5.2.1 | ||
11031 | websocket-extensions: 0.1.4 | ||
11032 | dev: true | ||
5490 | 11033 | ||
5491 | /whatwg-url/5.0.0: | 11034 | /websocket-extensions@0.1.4: |
11035 | resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} | ||
11036 | engines: {node: '>=0.8.0'} | ||
11037 | dev: true | ||
11038 | |||
11039 | /whatwg-url@5.0.0: | ||
5492 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} | 11040 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} |
5493 | dependencies: | 11041 | dependencies: |
5494 | tr46: 0.0.3 | 11042 | tr46: 0.0.3 |
5495 | webidl-conversions: 3.0.1 | 11043 | webidl-conversions: 3.0.1 |
11044 | dev: false | ||
5496 | 11045 | ||
5497 | /which-boxed-primitive/1.0.2: | 11046 | /which-boxed-primitive@1.0.2: |
5498 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} | 11047 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} |
5499 | dependencies: | 11048 | dependencies: |
5500 | is-bigint: 1.0.4 | 11049 | is-bigint: 1.0.4 |
@@ -5504,143 +11053,139 @@ packages: | |||
5504 | is-symbol: 1.0.4 | 11053 | is-symbol: 1.0.4 |
5505 | dev: true | 11054 | dev: true |
5506 | 11055 | ||
5507 | /which-module/2.0.0: | 11056 | /which-typed-array@1.1.11: |
5508 | resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} | 11057 | resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} |
5509 | dev: true | 11058 | engines: {node: '>= 0.4'} |
5510 | |||
5511 | /which/1.3.1: | ||
5512 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} | ||
5513 | hasBin: true | ||
5514 | dependencies: | 11059 | dependencies: |
5515 | isexe: 2.0.0 | 11060 | available-typed-arrays: 1.0.5 |
5516 | dev: false | 11061 | call-bind: 1.0.2 |
11062 | for-each: 0.3.3 | ||
11063 | gopd: 1.0.1 | ||
11064 | has-tostringtag: 1.0.0 | ||
5517 | 11065 | ||
5518 | /which/2.0.2: | 11066 | /which@2.0.2: |
5519 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} | 11067 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} |
5520 | engines: {node: '>= 8'} | 11068 | engines: {node: '>= 8'} |
5521 | hasBin: true | 11069 | hasBin: true |
5522 | dependencies: | 11070 | dependencies: |
5523 | isexe: 2.0.0 | 11071 | isexe: 2.0.0 |
5524 | dev: true | ||
5525 | 11072 | ||
5526 | /wide-align/1.1.5: | 11073 | /wide-align@1.1.5: |
5527 | resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} | 11074 | resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} |
5528 | dependencies: | 11075 | dependencies: |
5529 | string-width: 1.0.2 | 11076 | string-width: 4.2.3 |
5530 | dev: false | ||
5531 | |||
5532 | /window-size/1.1.1: | ||
5533 | resolution: {integrity: sha512-5D/9vujkmVQ7pSmc0SCBmHXbkv6eaHwXEx65MywhmUMsI8sGqJ972APq1lotfcwMKPFLuCFfL8xGHLIp7jaBmA==} | ||
5534 | engines: {node: '>= 0.10.0'} | ||
5535 | hasBin: true | ||
5536 | dependencies: | ||
5537 | define-property: 1.0.0 | ||
5538 | is-number: 3.0.0 | ||
5539 | dev: false | ||
5540 | |||
5541 | /winston-transport/4.5.0: | ||
5542 | resolution: {integrity: sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==} | ||
5543 | engines: {node: '>= 6.4.0'} | ||
5544 | dependencies: | ||
5545 | logform: 2.4.2 | ||
5546 | readable-stream: 3.6.0 | ||
5547 | triple-beam: 1.3.0 | ||
5548 | dev: false | 11077 | dev: false |
5549 | 11078 | ||
5550 | /winston/3.8.2: | 11079 | /wildcard@2.0.1: |
5551 | resolution: {integrity: sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==} | 11080 | resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} |
5552 | engines: {node: '>= 12.0.0'} | 11081 | dev: true |
5553 | dependencies: | ||
5554 | '@colors/colors': 1.5.0 | ||
5555 | '@dabh/diagnostics': 2.0.3 | ||
5556 | async: 3.2.4 | ||
5557 | is-stream: 2.0.1 | ||
5558 | logform: 2.4.2 | ||
5559 | one-time: 1.0.0 | ||
5560 | readable-stream: 3.6.0 | ||
5561 | safe-stable-stringify: 2.4.1 | ||
5562 | stack-trace: 0.0.10 | ||
5563 | triple-beam: 1.3.0 | ||
5564 | winston-transport: 4.5.0 | ||
5565 | dev: false | ||
5566 | 11082 | ||
5567 | /word-wrap/1.2.3: | 11083 | /wordwrap@1.0.0: |
5568 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} | 11084 | resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} |
5569 | engines: {node: '>=0.10.0'} | ||
5570 | dev: true | 11085 | dev: true |
5571 | 11086 | ||
5572 | /wrap-ansi/6.2.0: | 11087 | /wrap-ansi@6.2.0: |
5573 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} | 11088 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} |
5574 | engines: {node: '>=8'} | 11089 | engines: {node: '>=8'} |
5575 | dependencies: | 11090 | dependencies: |
5576 | ansi-styles: 4.3.0 | 11091 | ansi-styles: 4.3.0 |
5577 | string-width: 4.2.3 | 11092 | string-width: 4.2.3 |
5578 | strip-ansi: 6.0.1 | 11093 | strip-ansi: 6.0.1 |
5579 | dev: true | ||
5580 | 11094 | ||
5581 | /wrappy/1.0.2: | 11095 | /wrappy@1.0.2: |
5582 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} | 11096 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} |
5583 | 11097 | ||
5584 | /xtend/4.0.2: | 11098 | /ws@8.14.2: |
11099 | resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} | ||
11100 | engines: {node: '>=10.0.0'} | ||
11101 | peerDependencies: | ||
11102 | bufferutil: ^4.0.1 | ||
11103 | utf-8-validate: '>=5.0.2' | ||
11104 | peerDependenciesMeta: | ||
11105 | bufferutil: | ||
11106 | optional: true | ||
11107 | utf-8-validate: | ||
11108 | optional: true | ||
11109 | dev: true | ||
11110 | |||
11111 | /xml2js@0.5.0: | ||
11112 | resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} | ||
11113 | engines: {node: '>=4.0.0'} | ||
11114 | dependencies: | ||
11115 | sax: 1.2.1 | ||
11116 | xmlbuilder: 11.0.1 | ||
11117 | dev: false | ||
11118 | |||
11119 | /xmlbuilder@11.0.1: | ||
11120 | resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} | ||
11121 | engines: {node: '>=4.0'} | ||
11122 | dev: false | ||
11123 | |||
11124 | /xtend@4.0.2: | ||
5585 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} | 11125 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} |
5586 | engines: {node: '>=0.4'} | 11126 | engines: {node: '>=0.4'} |
5587 | dev: false | 11127 | dev: false |
5588 | 11128 | ||
5589 | /y18n/4.0.3: | 11129 | /yallist@2.1.2: |
5590 | resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} | ||
5591 | dev: true | ||
5592 | |||
5593 | /yallist/2.1.2: | ||
5594 | resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} | 11130 | resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} |
5595 | dev: false | 11131 | dev: true |
5596 | 11132 | ||
5597 | /yallist/3.1.1: | 11133 | /yallist@3.1.1: |
5598 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} | 11134 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} |
5599 | dev: false | 11135 | dev: true |
5600 | 11136 | ||
5601 | /yallist/4.0.0: | 11137 | /yallist@4.0.0: |
5602 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} | 11138 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} |
5603 | 11139 | ||
5604 | /yamlparser/0.0.2: | 11140 | /yaml@2.3.2: |
5605 | resolution: {integrity: sha512-Cou9FCGblEENtn1/8La5wkDM/ISMh2bzu5Wh7dYzCzA0o9jD4YGyLkUJxe84oPBGoB92f+Oy4ZjVhA8S0C2wlQ==} | 11141 | resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} |
5606 | dev: false | 11142 | engines: {node: '>= 14'} |
11143 | dev: true | ||
5607 | 11144 | ||
5608 | /yargs-parser/18.1.3: | 11145 | /yargs-parser@21.1.1: |
5609 | resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} | 11146 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} |
5610 | engines: {node: '>=6'} | 11147 | engines: {node: '>=12'} |
5611 | dependencies: | ||
5612 | camelcase: 5.3.1 | ||
5613 | decamelize: 1.2.0 | ||
5614 | dev: true | 11148 | dev: true |
5615 | 11149 | ||
5616 | /yargs/15.4.1: | 11150 | /yocto-queue@0.1.0: |
5617 | resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} | 11151 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} |
5618 | engines: {node: '>=8'} | 11152 | engines: {node: '>=10'} |
5619 | dependencies: | ||
5620 | cliui: 6.0.0 | ||
5621 | decamelize: 1.2.0 | ||
5622 | find-up: 4.1.0 | ||
5623 | get-caller-file: 2.0.5 | ||
5624 | require-directory: 2.1.1 | ||
5625 | require-main-filename: 2.0.0 | ||
5626 | set-blocking: 2.0.0 | ||
5627 | string-width: 4.2.3 | ||
5628 | which-module: 2.0.0 | ||
5629 | y18n: 4.0.3 | ||
5630 | yargs-parser: 18.1.3 | ||
5631 | dev: true | 11153 | dev: true |
5632 | 11154 | ||
5633 | /youch-terminal/1.1.1: | 11155 | /youch-terminal@2.2.2: |
5634 | resolution: {integrity: sha512-LRJCIDkMH4AA6KtiX1JH3nBO8xCJx8le/CHI2hheBGHd7hcpP62owgUW5R9ObrxW0RLQT/VqPRO4mR92STkvAw==} | 11156 | resolution: {integrity: sha512-JfVAsD0r88+vWVz+Im6bMk+c7gErDp1lq6Z1Na5LAyPZTwhB3VgO6HUQsm83I217mRFSuwVwEpnvwkK/TDTNhQ==} |
5635 | dependencies: | 11157 | dependencies: |
5636 | kleur: 4.1.5 | 11158 | kleur: 4.1.5 |
5637 | dev: false | 11159 | string-width: 4.2.3 |
11160 | wordwrap: 1.0.0 | ||
11161 | dev: true | ||
5638 | 11162 | ||
5639 | /youch/2.2.2: | 11163 | /youch@3.2.3: |
5640 | resolution: {integrity: sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==} | 11164 | resolution: {integrity: sha512-ZBcWz/uzZaQVdCvfV4uk616Bbpf2ee+F/AvuKDR5EwX/Y4v06xWdtMluqTD7+KlZdM93lLm9gMZYo0sKBS0pgw==} |
5641 | dependencies: | 11165 | dependencies: |
5642 | '@types/stack-trace': 0.0.29 | 11166 | cookie: 0.5.0 |
5643 | cookie: 0.4.2 | ||
5644 | mustache: 4.2.0 | 11167 | mustache: 4.2.0 |
5645 | stack-trace: 0.0.10 | 11168 | stacktracey: 2.1.8 |
11169 | dev: true | ||
11170 | |||
11171 | /z-schema@5.0.5: | ||
11172 | resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} | ||
11173 | engines: {node: '>=8.0.0'} | ||
11174 | hasBin: true | ||
11175 | dependencies: | ||
11176 | lodash.get: 4.4.2 | ||
11177 | lodash.isequal: 4.5.0 | ||
11178 | validator: 13.11.0 | ||
11179 | optionalDependencies: | ||
11180 | commander: 9.5.0 | ||
11181 | dev: true | ||
11182 | |||
11183 | github.com/SpecialAro/adonis5-jwt/34941c10adcf89583a40767552b994ea499b92e3: | ||
11184 | resolution: {tarball: https://codeload.github.com/SpecialAro/adonis5-jwt/tar.gz/34941c10adcf89583a40767552b994ea499b92e3} | ||
11185 | name: adonis5-jwt | ||
11186 | version: 1.1.7 | ||
11187 | dependencies: | ||
11188 | jose: 4.14.6 | ||
11189 | ts-morph: 16.0.0 | ||
11190 | uuid: 9.0.0 | ||
5646 | dev: false | 11191 | dev: false |
diff --git a/providers/AppProvider.ts b/providers/AppProvider.ts new file mode 100644 index 0000000..8d64412 --- /dev/null +++ b/providers/AppProvider.ts | |||
@@ -0,0 +1,21 @@ | |||
1 | import { ApplicationContract } from '@ioc:Adonis/Core/Application'; | ||
2 | |||
3 | export default class AppProvider { | ||
4 | constructor(protected app: ApplicationContract) {} | ||
5 | |||
6 | public register() { | ||
7 | // Register your own bindings | ||
8 | } | ||
9 | |||
10 | public async boot() { | ||
11 | // IoC container is ready | ||
12 | } | ||
13 | |||
14 | public async ready() { | ||
15 | // App is ready | ||
16 | } | ||
17 | |||
18 | public async shutdown() { | ||
19 | // Cleanup, since app is going down | ||
20 | } | ||
21 | } | ||
diff --git a/providers/LegacyHashDriver.ts b/providers/LegacyHashDriver.ts new file mode 100644 index 0000000..22f9de1 --- /dev/null +++ b/providers/LegacyHashDriver.ts | |||
@@ -0,0 +1,19 @@ | |||
1 | import bcrypt from 'bcrypt'; | ||
2 | import { HashDriverContract } from '@ioc:Adonis/Core/Hash'; | ||
3 | /** | ||
4 | * Implementation of custom bcrypt driver | ||
5 | */ | ||
6 | export class LegacyHashDriver implements HashDriverContract { | ||
7 | /** | ||
8 | * Hash value | ||
9 | */ | ||
10 | public async make(value: string) { | ||
11 | return bcrypt.hash(value, 10); | ||
12 | } | ||
13 | /** | ||
14 | * Verify value | ||
15 | */ | ||
16 | public async verify(hashedValue: string, plainValue: string) { | ||
17 | return bcrypt.compare(plainValue, hashedValue); | ||
18 | } | ||
19 | } | ||
diff --git a/providers/LegacyHasherProvider.ts b/providers/LegacyHasherProvider.ts new file mode 100644 index 0000000..05b2d27 --- /dev/null +++ b/providers/LegacyHasherProvider.ts | |||
@@ -0,0 +1,14 @@ | |||
1 | import { ApplicationContract } from '@ioc:Adonis/Core/Application'; | ||
2 | import { LegacyHashDriver } from './LegacyHashDriver'; | ||
3 | |||
4 | export default class LegacyHasherProvider { | ||
5 | constructor(protected app: ApplicationContract) {} | ||
6 | |||
7 | public async boot() { | ||
8 | const Hash = this.app.container.use('Adonis/Core/Hash'); | ||
9 | |||
10 | Hash.extend('legacy', () => { | ||
11 | return new LegacyHashDriver(); | ||
12 | }); | ||
13 | } | ||
14 | } | ||
diff --git a/public/js/new.js b/public/js/new.js index beaa36d..62c2e4b 100644 --- a/public/js/new.js +++ b/public/js/new.js | |||
@@ -1,20 +1,20 @@ | |||
1 | /* eslint-env browser */ | 1 | /* eslint-env browser */ |
2 | const elDrop = document.getElementById('dropzone'); | 2 | const elDrop = document.querySelector('#dropzone'); |
3 | const submitBtn = document.getElementById('submitbutton'); | 3 | const submitBtn = document.querySelector('#submitbutton'); |
4 | const fileInput = document.getElementById('files'); | 4 | const fileInput = document.querySelector('#files'); |
5 | 5 | ||
6 | elDrop.addEventListener('dragover', (event) => { | 6 | elDrop.addEventListener('dragover', event => { |
7 | event.preventDefault(); | 7 | event.preventDefault(); |
8 | }); | 8 | }); |
9 | 9 | ||
10 | elDrop.addEventListener('drop', async (event) => { | 10 | elDrop.addEventListener('drop', async event => { |
11 | event.preventDefault(); | 11 | event.preventDefault(); |
12 | 12 | ||
13 | submitBtn.disabled = true; | 13 | submitBtn.disabled = true; |
14 | 14 | ||
15 | fileInput.files = event.dataTransfer.files; | 15 | fileInput.files = event.dataTransfer.files; |
16 | 16 | ||
17 | elDrop.innerText = `✓ ${fileInput.files.length} files selected`; | 17 | elDrop.textContent = `✓ ${fileInput.files.length} files selected`; |
18 | elDrop.style.height = 'inherit'; | 18 | elDrop.style.height = 'inherit'; |
19 | 19 | ||
20 | submitBtn.disabled = false; | 20 | submitBtn.disabled = false; |
diff --git a/public/js/transfer.js b/public/js/transfer.js index c04a6d3..b4ba14c 100644 --- a/public/js/transfer.js +++ b/public/js/transfer.js | |||
@@ -1,14 +1,15 @@ | |||
1 | /* eslint-env browser */ | 1 | /* eslint-env browser */ |
2 | const submitBtn = document.getElementById('submit'); | 2 | const submitBtn = document.querySelector('#submit'); |
3 | const fileInput = document.getElementById('file'); | 3 | const fileInput = document.querySelector('#file'); |
4 | const fileOutput = document.getElementById('fileoutput'); | 4 | const fileOutput = document.querySelector('#fileoutput'); |
5 | 5 | ||
6 | fileInput.addEventListener('change', () => { | 6 | fileInput.addEventListener('change', () => { |
7 | const reader = new FileReader(); | 7 | const reader = new FileReader(); |
8 | reader.onload = function () { | 8 | reader.addEventListener('load', () => { |
9 | const text = reader.result; | 9 | const text = reader.result; |
10 | fileOutput.value = text; | 10 | fileOutput.value = text; |
11 | submitBtn.disabled = false; | 11 | submitBtn.disabled = false; |
12 | }; | 12 | }); |
13 | // eslint-disable-next-line unicorn/prefer-blob-reading-methods | ||
13 | reader.readAsText(fileInput.files[0]); | 14 | reader.readAsText(fileInput.files[0]); |
14 | }); | 15 | }); |
diff --git a/resources/js/app.js b/resources/js/app.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/resources/js/app.js | |||
diff --git a/resources/views/dashboard/account.edge b/resources/views/dashboard/account.edge index b805ac5..3a1f53c 100644 --- a/resources/views/dashboard/account.edge +++ b/resources/views/dashboard/account.edge | |||
@@ -1,4 +1,4 @@ | |||
1 | @layout('layouts.v2') | 1 | @layout('layouts/v2') |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> | 4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> |
@@ -6,19 +6,19 @@ | |||
6 | <h1 class="text-gray-700 text-center text-2xl pb-5"> | 6 | <h1 class="text-gray-700 text-center text-2xl pb-5"> |
7 | Your Ferdium account | 7 | Your Ferdium account |
8 | </h1> | 8 | </h1> |
9 | @if(flashMessage('error')) | 9 | @if(flashMessages.has('error')) |
10 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 10 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
11 | {{ flashMessage('error') }} | 11 | {{ flashMessages.get('error') }} |
12 | </div> | 12 | </div> |
13 | @endif | 13 | @endif |
14 | @if(old('message')) | 14 | @if(flashMessages.has('message')) |
15 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 15 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
16 | {{ old('message') }} | 16 | {{ flashMessages.get('message') }} |
17 | </div> | 17 | </div> |
18 | @endif | 18 | @endif |
19 | @if(flashMessage('notification')) | 19 | @if(flashMessages.has('notification')) |
20 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 20 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
21 | {{ flashMessage('notification.message') }} | 21 | {{ flashMessages.get('notification.message') }} |
22 | </div> | 22 | </div> |
23 | @endif | 23 | @endif |
24 | @if(success === true) | 24 | @if(success === true) |
@@ -34,7 +34,7 @@ | |||
34 | <div> | 34 | <div> |
35 | <input | 35 | <input |
36 | class="shadow appearance-none rounded w-full py-2 px-3 text-gray-700 mb-3 leading-tight focus:outline-none focus:shadow-outline" | 36 | class="shadow appearance-none rounded w-full py-2 px-3 text-gray-700 mb-3 leading-tight focus:outline-none focus:shadow-outline" |
37 | type="text" value="{{ old('name', username) }}" placeholder="Name" name="username" required> | 37 | type="text" value="{{ flashMessages.get('username', username) }}" placeholder="Name" name="username" required> |
38 | </div> | 38 | </div> |
39 | </div> | 39 | </div> |
40 | <div class="mb-6"> | 40 | <div class="mb-6"> |
@@ -42,7 +42,7 @@ | |||
42 | <div> | 42 | <div> |
43 | <input | 43 | <input |
44 | class="shadow appearance-none rounded w-full py-2 px-3 text-gray-700 mb-3 leading-tight focus:outline-none focus:shadow-outline" | 44 | class="shadow appearance-none rounded w-full py-2 px-3 text-gray-700 mb-3 leading-tight focus:outline-none focus:shadow-outline" |
45 | type="text" value="{{ old('lastname', lastname) }}" placeholder="Last Name" name="lastname" required> | 45 | type="text" value="{{ flashMessages.get('lastname', lastname) }}" placeholder="Last Name" name="lastname" required> |
46 | </div> | 46 | </div> |
47 | </div> | 47 | </div> |
48 | <div class="mb-6"> | 48 | <div class="mb-6"> |
@@ -50,7 +50,7 @@ | |||
50 | <div> | 50 | <div> |
51 | <input | 51 | <input |
52 | class="shadow appearance-none rounded w-full py-2 px-3 text-gray-700 mb-3 leading-tight focus:outline-none focus:shadow-outline" | 52 | class="shadow appearance-none rounded w-full py-2 px-3 text-gray-700 mb-3 leading-tight focus:outline-none focus:shadow-outline" |
53 | type="email" value="{{ old('email', email) }}" placeholder="E-Mail" name="email" required> | 53 | type="email" value="{{ flashMessages.get('email', email) }}" placeholder="E-Mail" name="email" required> |
54 | </div> | 54 | </div> |
55 | </div> | 55 | </div> |
56 | <div class="mb-6"> | 56 | <div class="mb-6"> |
@@ -67,16 +67,16 @@ | |||
67 | </form> | 67 | </form> |
68 | <div class="text-center"> | 68 | <div class="text-center"> |
69 | <a class="w-full font-bold text-sm text-gray-500 hover:text-gray-800 mb-3" | 69 | <a class="w-full font-bold text-sm text-gray-500 hover:text-gray-800 mb-3" |
70 | href="/user/data">My account data</a> | 70 | href="/user/data">My account data</a> |
71 | <br /> | 71 | <br /> |
72 | <a class="w-full font-bold text-sm text-gray-500 hover:text-gray-800 mb-3" | 72 | <a class="w-full font-bold text-sm text-gray-500 hover:text-gray-800 mb-3" |
73 | href="/user/transfer">Import/Export account data</a> | 73 | href="/user/transfer">Import/Export account data</a> |
74 | <br /> | 74 | <br /> |
75 | <a class="w-full font-bold text-sm text-red-500 hover:text-red-800 mb-3" | 75 | <a class="w-full font-bold text-sm text-red-500 hover:text-red-800 mb-3" |
76 | href="/user/delete">Delete my account</a> | 76 | href="/user/delete">Delete my account</a> |
77 | <br /> | 77 | <br /> |
78 | <a class="w-full font-bold text-sm text-gray-500 hover:text-gray-800 mb-3" | 78 | <a class="w-full font-bold text-sm text-gray-500 hover:text-gray-800 mb-3" |
79 | href="/user/logout">Logout</a> | 79 | href="/user/logout">Logout</a> |
80 | </div> | 80 | </div> |
81 | </div> | 81 | </div> |
82 | </div> | 82 | </div> |
diff --git a/resources/views/dashboard/data.edge b/resources/views/dashboard/data.edge index cf48c1c..ac1ee40 100644 --- a/resources/views/dashboard/data.edge +++ b/resources/views/dashboard/data.edge | |||
@@ -1,179 +1,201 @@ | |||
1 | @layout('layouts.v2') | 1 | @layout('layouts/v2') |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <style> | 4 | <style> |
5 | table { | 5 | table { |
6 | border: 1px solid #919191; | 6 | border: 1px solid #919191; |
7 | border-collapse: collapse; | 7 | border-collapse: collapse; |
8 | table-layout: fixed; | 8 | table-layout: fixed; |
9 | width: 100%; | 9 | width: 100%; |
10 | } | 10 | } |
11 | table thead { text-align: center; } | ||
12 | table tbody { text-align: right; } | ||
13 | table tr { border-bottom: 1px solid #919191; } | ||
14 | table tbody tr:nth-child(even) { background: var(--tertiary-color); } | ||
15 | table th { background: var(--secondary-color); font-weight: bold; } | ||
16 | table th, table td { padding: 1rem; } | ||
17 | table th:not(last-of-type), table td:not(last-of-type) { border-right: 1px solid #919191; } | ||
18 | 11 | ||
12 | table thead { | ||
13 | text-align: center; | ||
14 | } | ||
15 | |||
16 | table tbody { | ||
17 | text-align: right; | ||
18 | } | ||
19 | |||
20 | table tr { | ||
21 | border-bottom: 1px solid #919191; | ||
22 | } | ||
23 | |||
24 | table tbody tr:nth-child(even) { | ||
25 | background: var(--tertiary-color); | ||
26 | } | ||
27 | |||
28 | table th { | ||
29 | background: var(--secondary-color); | ||
30 | font-weight: bold; | ||
31 | } | ||
32 | |||
33 | table th, | ||
34 | table td { | ||
35 | padding: 1rem; | ||
36 | } | ||
37 | |||
38 | table th:not(last-of-type), | ||
39 | table td:not(last-of-type) { | ||
40 | border-right: 1px solid #919191; | ||
41 | } | ||
19 | </style> | 42 | </style> |
20 | 43 | ||
21 | <div class="bg-purple-200 flex items-center justify-center"> | 44 | <div class="bg-purple-200 flex items-center justify-center"> |
22 | <div class="w-full bg-white shadow-md rounded px-8 pt-6 mt-5 pb-8 mb-4"> | 45 | <div class="w-full bg-white shadow-md rounded px-8 pt-6 mt-5 pb-8 mb-4"> |
23 | <h1 class="text-gray-700 text-center text-2xl pb-5">Your Account Data</h1> | 46 | <h1 class="text-gray-700 text-center text-2xl pb-5">Your Account Data</h1> |
24 | 47 | ||
25 | |||
26 | <table class="w-full rounded-lg overflow-hidden sm:shadow-lg my-5"> | 48 | <table class="w-full rounded-lg overflow-hidden sm:shadow-lg my-5"> |
27 | <tr> | 49 | <tr> |
28 | <th> | 50 | <th> |
29 | Name | 51 | Name |
30 | </th> | 52 | </th> |
31 | <th> | 53 | <th> |
32 | Value | 54 | Value |
33 | </th> | 55 | </th> |
34 | </tr> | 56 | </tr> |
35 | <tr> | 57 | <tr> |
36 | <td> | 58 | <td> |
37 | 59 | ||
38 | </td> | 60 | </td> |
39 | <td> | 61 | <td> |
40 | {{ mail }} | 62 | {{ mail }} |
41 | </td> | 63 | </td> |
42 | </tr> | 64 | </tr> |
43 | <tr> | 65 | <tr> |
44 | <td> | 66 | <td> |
45 | Username | 67 | Username |
46 | </td> | 68 | </td> |
47 | <td> | 69 | <td> |
48 | {{ username }} | 70 | {{ username }} |
49 | </td> | 71 | </td> |
50 | </tr> | 72 | </tr> |
51 | <tr> | 73 | <tr> |
52 | <td> | 74 | <td> |
53 | Last Name | 75 | Last Name |
54 | </td> | 76 | </td> |
55 | <td> | 77 | <td> |
56 | {{ lastname }} | 78 | {{ lastname }} |
57 | </td> | 79 | </td> |
58 | </tr> | 80 | </tr> |
59 | <tr> | 81 | <tr> |
60 | <td> | 82 | <td> |
61 | Created account on | 83 | Created account on |
62 | </td> | 84 | </td> |
63 | <td> | 85 | <td> |
64 | {{ created }} | 86 | {{ created }} |
65 | </td> | 87 | </td> |
66 | </tr> | 88 | </tr> |
67 | <tr> | 89 | <tr> |
68 | <td> | 90 | <td> |
69 | Last account update on | 91 | Last account update on |
70 | </td> | 92 | </td> |
71 | <td> | 93 | <td> |
72 | {{ updated }} | 94 | {{ updated }} |
73 | </td> | 95 | </td> |
74 | </tr> | 96 | </tr> |
75 | </table> | 97 | </table> |
76 | 98 | ||
77 | <h1 class="text-gray-700 text-center text-2xl pb-5">Your Services</h1> | 99 | <h1 class="text-gray-700 text-center text-2xl pb-5">Your Services</h1> |
78 | <table class="w-full rounded-lg overflow-hidden sm:shadow-lg my-5"> | 100 | <table class="w-full rounded-lg overflow-hidden sm:shadow-lg my-5"> |
79 | <tr> | 101 | <tr> |
80 | <th> | 102 | <th> |
81 | Service ID | 103 | Service ID |
82 | </th> | 104 | </th> |
83 | <th> | 105 | <th> |
84 | Name | 106 | Name |
85 | </th> | 107 | </th> |
86 | <th> | 108 | <th> |
87 | Recipe ID | 109 | Recipe ID |
88 | </th> | 110 | </th> |
89 | <th> | 111 | <th> |
90 | Settings | 112 | Settings |
91 | </th> | 113 | </th> |
92 | <th> | 114 | <th> |
93 | Created | 115 | Created |
94 | </th> | 116 | </th> |
95 | <th> | 117 | <th> |
96 | Last updated | 118 | Last updated |
97 | </th> | 119 | </th> |
98 | </tr> | 120 | </tr> |
99 | 121 | ||
100 | @each(service in services) | 122 | @each(service in services) |
101 | <tr> | 123 | <tr> |
102 | <td> | 124 | <td> |
103 | {{ service.serviceId }} | 125 | {{ service.serviceId }} |
104 | </td> | 126 | </td> |
105 | <td> | 127 | <td> |
106 | {{ service.name }} | 128 | {{ service.name }} |
107 | </td> | 129 | </td> |
108 | <td> | 130 | <td> |
109 | {{ service.recipeId }} | 131 | {{ service.recipeId }} |
110 | </td> | 132 | </td> |
111 | <td> | 133 | <td> |
112 | {{ stringify(service.settings) }} | 134 | {{ stringify(service.settings) }} |
113 | </td> | 135 | </td> |
114 | <td> | 136 | <td> |
115 | {{ service.created_at }} | 137 | {{ service.createdAt.toFormat('yyyy-MM-dd HH:mm:ss') }} |
116 | </td> | 138 | </td> |
117 | <td> | 139 | <td> |
118 | {{ service.updated_at }} | 140 | {{ service.updatedAt.toFormat('yyyy-MM-dd HH:mm:ss') }} |
119 | </td> | 141 | </td> |
120 | </tr> | 142 | </tr> |
121 | @endeach | 143 | @endeach |
122 | </table> | 144 | </table> |
123 | 145 | ||
124 | <h1 class="text-gray-700 text-center text-2xl pb-5">Your Workspaces</h1> | 146 | <h1 class="text-gray-700 text-center text-2xl pb-5">Your Workspaces</h1> |
125 | <table> | 147 | <table> |
126 | <tr> | 148 | <tr> |
127 | <th> | 149 | <th> |
128 | Service ID | 150 | Workspace ID |
129 | </th> | 151 | </th> |
130 | <th> | 152 | <th> |
131 | Name | 153 | Name |
132 | </th> | 154 | </th> |
133 | <th> | 155 | <th> |
134 | Order | 156 | Order |
135 | </th> | 157 | </th> |
136 | <th> | 158 | <th> |
137 | Services | 159 | Services |
138 | </th> | 160 | </th> |
139 | <th> | 161 | <th> |
140 | Data | 162 | Data |
141 | </th> | 163 | </th> |
142 | <th> | 164 | <th> |
143 | Created | 165 | Created |
144 | </th> | 166 | </th> |
145 | <th> | 167 | <th> |
146 | Last updated | 168 | Last updated |
147 | </th> | 169 | </th> |
148 | </tr> | 170 | </tr> |
149 | 171 | ||
150 | @each(workspace in workspaces) | 172 | @each(workspace in workspaces) |
151 | <tr> | 173 | <tr> |
152 | <td> | 174 | <td> |
153 | {{ workspace.workspaceId }} | 175 | {{ workspace.workspaceId }} |
154 | </td> | 176 | </td> |
155 | <td> | 177 | <td> |
156 | {{ workspace.name }} | 178 | {{ workspace.name }} |
157 | </td> | 179 | </td> |
158 | <td> | 180 | <td> |
159 | {{ workspace.order }} | 181 | {{ workspace.order }} |
160 | </td> | 182 | </td> |
161 | <td> | 183 | <td> |
162 | {{ stringify(workspace.services) }} | 184 | {{ stringify(workspace.services) }} |
163 | </td> | 185 | </td> |
164 | <td> | 186 | <td> |
165 | {{ stringify(workspace.data) }} | 187 | {{ stringify(workspace.data) }} |
166 | </td> | 188 | </td> |
167 | <td> | 189 | <td> |
168 | {{ workspace.created_at }} | 190 | {{ workspace.createdAt.toFormat('yyyy-MM-dd HH:mm:ss') }} |
169 | </td> | 191 | </td> |
170 | <td> | 192 | <td> |
171 | {{ workspace.updated_at }} | 193 | {{ workspace.updatedAt.toFormat('yyyy-MM-dd HH:mm:ss') }} |
172 | </td> | 194 | </td> |
173 | </tr> | 195 | </tr> |
174 | @endeach | 196 | @endeach |
175 | </table> | 197 | </table> |
176 | 198 | ||
177 | <div class="text-center"> | 199 | <div class="text-center"> |
178 | <a class="w-full font-bold text-sm text-gray-500 hover:text-gray-800 mb-3" href="/user/account">Back to My | 200 | <a class="w-full font-bold text-sm text-gray-500 hover:text-gray-800 mb-3" href="/user/account">Back to My |
179 | Account</a> | 201 | Account</a> |
@@ -182,4 +204,4 @@ | |||
182 | </div> | 204 | </div> |
183 | </div> | 205 | </div> |
184 | </div> | 206 | </div> |
185 | @endsection \ No newline at end of file | 207 | @endsection |
diff --git a/resources/views/dashboard/delete.edge b/resources/views/dashboard/delete.edge index d058a73..ea4a431 100644 --- a/resources/views/dashboard/delete.edge +++ b/resources/views/dashboard/delete.edge | |||
@@ -1,17 +1,17 @@ | |||
1 | @layout('layouts.v2') | 1 | @layout('layouts/v2') |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> | 4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> |
5 | <div class="w-full max-w-lg bg-white shadow-md rounded px-8 pt-6 pb-8 mb-4"> | 5 | <div class="w-full max-w-lg bg-white shadow-md rounded px-8 pt-6 pb-8 mb-4"> |
6 | <h1 class="text-gray-700 text-center text-2xl pb-5">Delete your account</h1> | 6 | <h1 class="text-gray-700 text-center text-2xl pb-5">Delete your account</h1> |
7 | @if(flashMessage('error')) | 7 | @if(flashMessages.has('error')) |
8 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 8 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
9 | {{ flashMessage('error') }} | 9 | {{ flashMessages.get('error') }} |
10 | </div> | 10 | </div> |
11 | @endif | 11 | @endif |
12 | @if(old('message')) | 12 | @if(flashMessages.has('message')) |
13 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 13 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
14 | {{ old('message') }} | 14 | {{ flashMessages.get('message') }} |
15 | </div> | 15 | </div> |
16 | @endif | 16 | @endif |
17 | 17 | ||
diff --git a/resources/views/dashboard/forgotPassword.edge b/resources/views/dashboard/forgotPassword.edge index cd5d8c0..b41e1cc 100644 --- a/resources/views/dashboard/forgotPassword.edge +++ b/resources/views/dashboard/forgotPassword.edge | |||
@@ -1,4 +1,4 @@ | |||
1 | @layout('layouts.v2') | 1 | @layout('layouts/v2') |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> | 4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> |
@@ -8,14 +8,14 @@ | |||
8 | Forgot Password? | 8 | Forgot Password? |
9 | </h1> | 9 | </h1> |
10 | 10 | ||
11 | @if(flashMessage('error')) | 11 | @if(flashMessages.has('error')) |
12 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 12 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
13 | {{ flashMessage('error') }} | 13 | {{ flashMessages.get('error') }} |
14 | </div> | 14 | </div> |
15 | @endif | 15 | @endif |
16 | @if(old('message')) | 16 | @if(flashMessages.has('message')) |
17 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 17 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
18 | {{ old('message') }} | 18 | {{ flashMessages.get('message') }} |
19 | </div> | 19 | </div> |
20 | @endif | 20 | @endif |
21 | 21 | ||
@@ -30,7 +30,7 @@ | |||
30 | name="mail" | 30 | name="mail" |
31 | type="text" | 31 | type="text" |
32 | placeholder="E-Mail" | 32 | placeholder="E-Mail" |
33 | value="{{ old('mail', '') }}" | 33 | value="{{ flashMessages.get('mail', '') }}" |
34 | required> | 34 | required> |
35 | </div> | 35 | </div> |
36 | 36 | ||
diff --git a/resources/views/dashboard/login.edge b/resources/views/dashboard/login.edge index 23995ae..360ad98 100644 --- a/resources/views/dashboard/login.edge +++ b/resources/views/dashboard/login.edge | |||
@@ -1,4 +1,4 @@ | |||
1 | @layout('layouts.v2') | 1 | @layout('layouts/v2') |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> | 4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> |
@@ -8,14 +8,14 @@ | |||
8 | Login | 8 | Login |
9 | </h1> | 9 | </h1> |
10 | 10 | ||
11 | @if(flashMessage('error')) | 11 | @if(flashMessages.has('error')) |
12 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 12 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
13 | {{ flashMessage('error') }} | 13 | {{ flashMessages.get('error') }} |
14 | </div> | 14 | </div> |
15 | @endif | 15 | @endif |
16 | @if(old('message')) | 16 | @if(flashMessages.has('message')) |
17 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 17 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
18 | {{ old('message') }} | 18 | {{ flashMessages.get('message') }} |
19 | </div> | 19 | </div> |
20 | @endif | 20 | @endif |
21 | 21 | ||
@@ -30,7 +30,7 @@ | |||
30 | name="mail" | 30 | name="mail" |
31 | type="text" | 31 | type="text" |
32 | placeholder="E-Mail" | 32 | placeholder="E-Mail" |
33 | value="{{ old('mail', '') }}" | 33 | value="{{ flashMessages.get('mail', '') }}" |
34 | required> | 34 | required> |
35 | </div> | 35 | </div> |
36 | <div class="mb-6"> | 36 | <div class="mb-6"> |
@@ -60,7 +60,7 @@ | |||
60 | </a> | 60 | </a> |
61 | </div> | 61 | </div> |
62 | <div class="text-center"> | 62 | <div class="text-center"> |
63 | <a class="w-full font-bold text-sm text-blue-500 hover:text-blue-800" href="../import"> | 63 | <a class="w-full font-bold text-sm text-blue-500 hover:text-blue-800" href="/import"> |
64 | Import your Franz/Ferdi account | 64 | Import your Franz/Ferdi account |
65 | </a> | 65 | </a> |
66 | </div> | 66 | </div> |
diff --git a/resources/views/dashboard/resetPassword.edge b/resources/views/dashboard/resetPassword.edge index 4b39169..33b08c3 100644 --- a/resources/views/dashboard/resetPassword.edge +++ b/resources/views/dashboard/resetPassword.edge | |||
@@ -1,4 +1,4 @@ | |||
1 | @layout('layouts.v2') | 1 | @layout('layouts/v2') |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> | 4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> |
@@ -8,14 +8,14 @@ | |||
8 | Reset Your Password | 8 | Reset Your Password |
9 | </h1> | 9 | </h1> |
10 | 10 | ||
11 | @if(flashMessage('error')) | 11 | @if(flashMessages.has('error')) |
12 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 12 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
13 | {{ flashMessage('error') }} | 13 | {{ flashMessages.get('error') }} |
14 | </div> | 14 | </div> |
15 | @endif | 15 | @endif |
16 | @if(old('message')) | 16 | @if(flashMessages.has('message')) |
17 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 17 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
18 | {{ old('message') }} | 18 | {{ flashMessages.get('message') }} |
19 | </div> | 19 | </div> |
20 | @endif | 20 | @endif |
21 | 21 | ||
@@ -30,7 +30,7 @@ | |||
30 | name="password" | 30 | name="password" |
31 | type="password" | 31 | type="password" |
32 | placeholder="New Password" | 32 | placeholder="New Password" |
33 | value="{{ old('password', '') }}" | 33 | value="{{ flashMessages.get('password', '') }}" |
34 | required> | 34 | required> |
35 | </div> | 35 | </div> |
36 | <div class="mb-4"> | 36 | <div class="mb-4"> |
@@ -43,7 +43,7 @@ | |||
43 | name="password_confirmation" | 43 | name="password_confirmation" |
44 | type="password" | 44 | type="password" |
45 | placeholder="Confirm Password" | 45 | placeholder="Confirm Password" |
46 | value="{{ old('password_confirmation', '') }}" | 46 | value="{{ flashMessages.get('password_confirmation', '') }}" |
47 | required> | 47 | required> |
48 | </div> | 48 | </div> |
49 | 49 | ||
diff --git a/resources/views/dashboard/transfer.edge b/resources/views/dashboard/transfer.edge index bdae1f4..759edbf 100644 --- a/resources/views/dashboard/transfer.edge +++ b/resources/views/dashboard/transfer.edge | |||
@@ -1,22 +1,22 @@ | |||
1 | @layout('layouts.v2') | 1 | @layout('layouts/v2') |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> | 4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> |
5 | <div class="w-full max-w-lg bg-white shadow-md rounded px-8 pt-6 pb-8 mb-4"> | 5 | <div class="w-full max-w-lg bg-white shadow-md rounded px-8 pt-6 pb-8 mb-4"> |
6 | <h1 class="text-gray-700 text-center text-2xl pb-5">Import/Export data from another Ferdium server</h1> | 6 | <h1 class="text-gray-700 text-center text-2xl pb-5">Import/Export data from another Ferdium server</h1> |
7 | @if(flashMessage('error')) | 7 | @if(flashMessages.has('error')) |
8 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 8 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
9 | {{ flashMessage('error') }} | 9 | {{ flashMessages.get('error') }} |
10 | </div> | 10 | </div> |
11 | @endif | 11 | @endif |
12 | @if(old('message')) | 12 | @if(flashMessages.has('message')) |
13 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 13 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
14 | {{ old('message') }} | 14 | {{ flashMessages.get('message') }} |
15 | </div> | 15 | </div> |
16 | @endif | 16 | @endif |
17 | @if(flashMessage('notification')) | 17 | @if(flashMessages.has('notification')) |
18 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 18 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
19 | {{ flashMessage('notification.message') }} | 19 | {{ flashMessages.get('notification.message') }} |
20 | </div> | 20 | </div> |
21 | @endif | 21 | @endif |
22 | @if(success === true) | 22 | @if(success === true) |
diff --git a/resources/views/emails/reset_password.edge b/resources/views/emails/reset_password.edge new file mode 100644 index 0000000..e2d2c1c --- /dev/null +++ b/resources/views/emails/reset_password.edge | |||
@@ -0,0 +1,8 @@ | |||
1 | Hello {{ username }}, | ||
2 | we received a request to reset your Ferdium account password. | ||
3 | Use the link below to reset your password. If you didn't requested that your password be reset, please ignore this | ||
4 | message. | ||
5 | |||
6 | {{ appUrl }}/user/reset?token={{ encodeURIComponent(token) }} | ||
7 | |||
8 | This message was sent automatically. Please do not reply. | ||
diff --git a/resources/views/layouts/main.edge b/resources/views/layouts/main.edge index c611bc5..a53b6c5 100644 --- a/resources/views/layouts/main.edge +++ b/resources/views/layouts/main.edge | |||
@@ -6,10 +6,10 @@ | |||
6 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | 6 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
7 | <meta http-equiv="X-UA-Compatible" content="ie=edge"> | 7 | <meta http-equiv="X-UA-Compatible" content="ie=edge"> |
8 | <title>ferdium-server</title> | 8 | <title>ferdium-server</title> |
9 | <link rel="shortcut icon" type="image/jpg" href="img/favicon.ico" /> | 9 | <link rel="shortcut icon" type="image/jpg" href="/img/favicon.ico" /> |
10 | 10 | ||
11 | {{ style('css/vanilla') }} | 11 | <link rel="stylesheet" type="text/css" href="/css/vanilla.css"> |
12 | {{ style('css/main') }} | 12 | <link rel="stylesheet" type="text/css" href="/css/main.css"> |
13 | </head> | 13 | </head> |
14 | 14 | ||
15 | <body> | 15 | <body> |
diff --git a/resources/views/layouts/v2.edge b/resources/views/layouts/v2.edge index 38af29f..ac20cab 100644 --- a/resources/views/layouts/v2.edge +++ b/resources/views/layouts/v2.edge | |||
@@ -8,8 +8,8 @@ | |||
8 | <title>Server</title> | 8 | <title>Server</title> |
9 | <link rel="shortcut icon" type="image/jpg" href="/img/favicon.ico" /> | 9 | <link rel="shortcut icon" type="image/jpg" href="/img/favicon.ico" /> |
10 | 10 | ||
11 | {{ style('css/tailwind') }} | 11 | <link rel="stylesheet" type="text/css" href="/css/tailwind.css"> |
12 | {{ style('css/main') }} | 12 | <link rel="stylesheet" type="text/css" href="/css/main.css"> |
13 | </head> | 13 | </head> |
14 | 14 | ||
15 | <body> | 15 | <body> |
diff --git a/resources/views/others/import.edge b/resources/views/others/import.edge index 7fb58de..ca7cc6d 100644 --- a/resources/views/others/import.edge +++ b/resources/views/others/import.edge | |||
@@ -1,4 +1,4 @@ | |||
1 | @layout('layouts.v2') | 1 | @layout('layouts/v2') |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> | 4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> |
@@ -11,14 +11,14 @@ | |||
11 | Please login using your Franz/Ferdi account. We will create a new Ferdium account with the same credentials. | 11 | Please login using your Franz/Ferdi account. We will create a new Ferdium account with the same credentials. |
12 | </p> | 12 | </p> |
13 | 13 | ||
14 | @if(flashMessage('error')) | 14 | @if(flashMessages.has('error')) |
15 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 15 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
16 | {{ flashMessage('error') }} | 16 | {{ flashMessages.get('error') }} |
17 | </div> | 17 | </div> |
18 | @endif | 18 | @endif |
19 | @if(old('message')) | 19 | @if(flashMessages.has('message')) |
20 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> | 20 | <div class="bg-orange-100 border-l-4 border-orange-500 text-orange-700 p-4"> |
21 | {{ old('message') }} | 21 | {{ flashMessages.get('message') }} |
22 | </div> | 22 | </div> |
23 | @endif | 23 | @endif |
24 | 24 | ||
@@ -32,7 +32,7 @@ | |||
32 | name="email" | 32 | name="email" |
33 | type="text" | 33 | type="text" |
34 | placeholder="E-Mail" | 34 | placeholder="E-Mail" |
35 | value="{{ old('email', '') }}" | 35 | value="{{ flashMessages.get('email', '') }}" |
36 | required> | 36 | required> |
37 | </div> | 37 | </div> |
38 | <div class="mb-6"> | 38 | <div class="mb-6"> |
diff --git a/resources/views/others/index.edge b/resources/views/others/index.edge index 5cc5726..1f595b6 100644 --- a/resources/views/others/index.edge +++ b/resources/views/others/index.edge | |||
@@ -1,4 +1,4 @@ | |||
1 | @layout('layouts.v2') | 1 | @layout('layouts/v2') |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <!--Main--> | 4 | <!--Main--> |
@@ -39,7 +39,7 @@ | |||
39 | 39 | ||
40 | <!--Right Col--> | 40 | <!--Right Col--> |
41 | <div class="w-full xl:w-3/5 py-6 overflow-y-hidden"> | 41 | <div class="w-full xl:w-3/5 py-6 overflow-y-hidden"> |
42 | <img class="w-5/6 mx-auto lg:mr-0 slide-in-bottom" src="{{ assetsUrl('img/hero.png') }}"> | 42 | <img class="w-5/6 mx-auto lg:mr-0 slide-in-bottom" src="/img/hero.png"> |
43 | </div> | 43 | </div> |
44 | 44 | ||
45 | </div> | 45 | </div> |
@@ -53,6 +53,5 @@ | |||
53 | 53 | ||
54 | // Show on page | 54 | // Show on page |
55 | document.getElementById('server').innerText = server; | 55 | document.getElementById('server').innerText = server; |
56 | |||
57 | </script> | 56 | </script> |
58 | @endsection | 57 | @endsection |
diff --git a/resources/views/others/message.edge b/resources/views/others/message.edge index 59be2ed..08200da 100644 --- a/resources/views/others/message.edge +++ b/resources/views/others/message.edge | |||
@@ -1,4 +1,4 @@ | |||
1 | @layout('layouts.v2') | 1 | @layout('layouts/v2') |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> | 4 | <div class="w-screen bg-purple-200 flex items-center justify-center"> |
diff --git a/resources/views/others/new.edge b/resources/views/others/new.edge index ed97a34..66587c2 100644 --- a/resources/views/others/new.edge +++ b/resources/views/others/new.edge | |||
@@ -1,4 +1,4 @@ | |||
1 | @layout('layouts.main') | 1 | @layout('layouts/main') |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <h1>Create a new recipe</h1> | 4 | <h1>Create a new recipe</h1> |
@@ -33,5 +33,5 @@ | |||
33 | <button type="submit" id="submitbutton">Create recipe</button> | 33 | <button type="submit" id="submitbutton">Create recipe</button> |
34 | </form> | 34 | </form> |
35 | 35 | ||
36 | <script src="js/new.js"></script> | 36 | <script src="/js/new.js"></script> |
37 | @endsection | 37 | @endsection |
diff --git a/scripts/adonisjs-4-to-5.sh b/scripts/adonisjs-4-to-5.sh new file mode 100644 index 0000000..ccb5c9f --- /dev/null +++ b/scripts/adonisjs-4-to-5.sh | |||
@@ -0,0 +1,50 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | # THIS SCRIPT IS USED TO MIGRATE FROM ADONISJS V4 TO ADONISJS V5 | ||
4 | # IT SHOULD BE RUN BEFORE RUNNING THE SERVER | ||
5 | |||
6 | # Check if DB_DATABASE is undefined or empty, and set a default value if necessary | ||
7 | if [ -z "$DB_DATABASE" ]; then | ||
8 | DB_DATABASE="ferdium" | ||
9 | fi | ||
10 | |||
11 | # Check if DATA_DIR is undefined or empty, and set a default value if necessary | ||
12 | if [ -z "$DATA_DIR" ]; then | ||
13 | DATA_DIR="/data" | ||
14 | fi | ||
15 | |||
16 | # Define the path to your SQLite database file | ||
17 | db_file="$DATA_DIR/$DB_DATABASE.sqlite" | ||
18 | |||
19 | # Check if the database file exists | ||
20 | if [ ! -f "$db_file" ]; then | ||
21 | echo "Database file '$db_file' not found. An empty database will be created." | ||
22 | exit 0 | ||
23 | fi | ||
24 | |||
25 | # Check if the "adonis_schema_versions" table exists and if the version is less than 2 | ||
26 | version=$(sqlite3 "$db_file" "SELECT version FROM adonis_schema_versions LIMIT 1;" 2>/dev/null) | ||
27 | if [ -z "$version" ] || [ "$version" -lt 2 ]; then | ||
28 | # Table not found or version less than 2, proceed | ||
29 | echo "-- Starting database migration from AdonisJS v4 to v5 --" | ||
30 | |||
31 | # Check if the "adonis_schema" table exists | ||
32 | schema_exists=$(sqlite3 "$db_file" "SELECT name FROM sqlite_master WHERE type='table' AND name='adonis_schema';" 2>/dev/null) | ||
33 | if [ -n "$schema_exists" ]; then | ||
34 | # "adonis_schema" table exists, proceed | ||
35 | |||
36 | # Iterate through rows in the "name" column of "adonis_schema" and append "database/migrations" to each value | ||
37 | sqlite3 -batch "$db_file" "SELECT name FROM adonis_schema;" 2>/dev/null | while read -r old_value; do | ||
38 | new_value="database/migrations/$old_value" | ||
39 | echo "Updating value from '$old_value' to '$new_value'" | ||
40 | |||
41 | # Update the value in the database | ||
42 | sqlite3 "$db_file" "UPDATE adonis_schema SET name='$new_value' WHERE name='$old_value';" 2>/dev/null | ||
43 | done | ||
44 | else | ||
45 | echo "ERROR: Table 'adonis_schema' not found." | ||
46 | exit 1 | ||
47 | fi | ||
48 | # else | ||
49 | # echo "Version is greater than or equal to 2. Exiting script." | ||
50 | fi | ||
diff --git a/server.js b/server.js deleted file mode 100644 index 921df97..0000000 --- a/server.js +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | const Sentry = require('@sentry/node'); | ||
2 | |||
3 | Sentry.init({ dsn: 'https://34e9a42c1de24048b7bfc980211dd7c8@sentry.io/1838449' }); | ||
4 | |||
5 | /* | ||
6 | |-------------------------------------------------------------------------- | ||
7 | | Http server | ||
8 | |-------------------------------------------------------------------------- | ||
9 | | | ||
10 | | This file bootstraps Adonisjs to start the HTTP server. You are free to | ||
11 | | customize the process of booting the http server. | ||
12 | | | ||
13 | | """ Loading ace commands """ | ||
14 | | At times you may want to load ace commands when starting the HTTP server. | ||
15 | | Same can be done by chaining `loadCommands()` method after | ||
16 | | | ||
17 | | """ Preloading files """ | ||
18 | | Also you can preload files by calling `preLoad('path/to/file')` method. | ||
19 | | Make sure to pass a relative path from the project root. | ||
20 | */ | ||
21 | |||
22 | const { Ignitor } = require('@adonisjs/ignitor'); | ||
23 | const fold = require('@adonisjs/fold'); | ||
24 | |||
25 | new Ignitor(fold) | ||
26 | .appRoot(__dirname) | ||
27 | .fireHttpServer() | ||
28 | .catch(console.error); // eslint-disable-line no-console | ||
diff --git a/server.ts b/server.ts new file mode 100644 index 0000000..f334636 --- /dev/null +++ b/server.ts | |||
@@ -0,0 +1,19 @@ | |||
1 | /* | ||
2 | |-------------------------------------------------------------------------- | ||
3 | | AdonisJs Server | ||
4 | |-------------------------------------------------------------------------- | ||
5 | | | ||
6 | | The contents in this file is meant to bootstrap the AdonisJs application | ||
7 | | and start the HTTP server to accept incoming connections. You must avoid | ||
8 | | making this file dirty and instead make use of `lifecycle hooks` provided | ||
9 | | by AdonisJs service providers for custom code. | ||
10 | | | ||
11 | */ | ||
12 | |||
13 | import 'reflect-metadata'; | ||
14 | import sourceMapSupport from 'source-map-support'; | ||
15 | import { Ignitor } from '@adonisjs/core/build/standalone'; | ||
16 | |||
17 | sourceMapSupport.install({ handleUncaughtExceptions: false }); | ||
18 | |||
19 | new Ignitor(__dirname).httpServer().start(); | ||
diff --git a/start/app.js b/start/app.js deleted file mode 100644 index f1fb23a..0000000 --- a/start/app.js +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | /* | ||
2 | |-------------------------------------------------------------------------- | ||
3 | | Providers | ||
4 | |-------------------------------------------------------------------------- | ||
5 | | | ||
6 | | Providers are building blocks for your Adonis app. Anytime you install | ||
7 | | a new Adonis specific package, chances are you will register the | ||
8 | | provider here. | ||
9 | | | ||
10 | */ | ||
11 | const providers = [ | ||
12 | '@adonisjs/framework/providers/AppProvider', | ||
13 | '@adonisjs/auth/providers/AuthProvider', | ||
14 | '@adonisjs/bodyparser/providers/BodyParserProvider', | ||
15 | '@adonisjs/cors/providers/CorsProvider', | ||
16 | '@adonisjs/lucid/providers/LucidProvider', | ||
17 | '@adonisjs/drive/providers/DriveProvider', | ||
18 | '@adonisjs/validator/providers/ValidatorProvider', | ||
19 | '@adonisjs/framework/providers/ViewProvider', | ||
20 | '@adonisjs/session/providers/SessionProvider', | ||
21 | '@adonisjs/shield/providers/ShieldProvider', | ||
22 | '@adonisjs/persona/providers/PersonaProvider', | ||
23 | '@adonisjs/mail/providers/MailProvider', | ||
24 | ]; | ||
25 | |||
26 | /* | ||
27 | |-------------------------------------------------------------------------- | ||
28 | | Ace Providers | ||
29 | |-------------------------------------------------------------------------- | ||
30 | | | ||
31 | | Ace providers are required only when running ace commands. For example | ||
32 | | Providers for migrations, tests etc. | ||
33 | | | ||
34 | */ | ||
35 | const aceProviders = [ | ||
36 | '@adonisjs/lucid/providers/MigrationsProvider', | ||
37 | ]; | ||
38 | |||
39 | /* | ||
40 | |-------------------------------------------------------------------------- | ||
41 | | Aliases | ||
42 | |-------------------------------------------------------------------------- | ||
43 | | | ||
44 | | Aliases are short unique names for IoC container bindings. You are free | ||
45 | | to create your own aliases. | ||
46 | | | ||
47 | | For example: | ||
48 | | { Route: 'Adonis/Src/Route' } | ||
49 | | | ||
50 | */ | ||
51 | const aliases = {}; | ||
52 | |||
53 | /* | ||
54 | |-------------------------------------------------------------------------- | ||
55 | | Commands | ||
56 | |-------------------------------------------------------------------------- | ||
57 | | | ||
58 | | Here you store ace commands for your package | ||
59 | | | ||
60 | */ | ||
61 | const commands = []; | ||
62 | |||
63 | module.exports = { | ||
64 | providers, aceProviders, aliases, commands, | ||
65 | }; | ||
diff --git a/start/events.js b/start/events.js deleted file mode 100644 index a99afd5..0000000 --- a/start/events.js +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | const Event = use('Event'); | ||
2 | const Mail = use('Mail'); | ||
3 | const Env = use('Env'); | ||
4 | |||
5 | Event.on('forgot::password', async ({ user, token }) => { | ||
6 | const body = ` | ||
7 | Hello ${user.username}, | ||
8 | we received a request to reset your Ferdium account password. | ||
9 | Use the link below to reset your password. If you didn't requested that your password be reset, please ignore this message. | ||
10 | |||
11 | ${Env.get('APP_URL')}/user/reset?token=${encodeURIComponent(token)} | ||
12 | |||
13 | This message was sent automatically. Please do not reply. | ||
14 | `; | ||
15 | console.log('Sending message', body); | ||
16 | try { | ||
17 | await Mail.raw(body, (message) => { | ||
18 | message.subject('[Ferdium] Reset your password'); | ||
19 | message.from(Env.get('MAIL_SENDER')); | ||
20 | message.to(user.email); | ||
21 | }); | ||
22 | } catch (e) { | ||
23 | console.log(`Couldn't send mail: ${e}`); | ||
24 | } | ||
25 | }); | ||
diff --git a/start/events.ts b/start/events.ts new file mode 100644 index 0000000..11e63e5 --- /dev/null +++ b/start/events.ts | |||
@@ -0,0 +1,33 @@ | |||
1 | import Config from '@ioc:Adonis/Core/Config'; | ||
2 | import Event from '@ioc:Adonis/Core/Event'; | ||
3 | import Mail from '@ioc:Adonis/Addons/Mail'; | ||
4 | |||
5 | /* | ||
6 | |-------------------------------------------------------------------------- | ||
7 | | Preloaded File | ||
8 | |-------------------------------------------------------------------------- | ||
9 | | | ||
10 | | Any code written inside this file will be executed during the application | ||
11 | | boot. | ||
12 | | | ||
13 | */ | ||
14 | Event.on('forgot::password', async ({ user, token }) => { | ||
15 | try { | ||
16 | // eslint-disable-next-line no-console | ||
17 | console.log('Sending message'); | ||
18 | await Mail.send(message => { | ||
19 | message | ||
20 | .subject('[Ferdium] Forgot Password') | ||
21 | .to(user.email) | ||
22 | .from(Config.get('dasshboard.mailFrom')) | ||
23 | .textView('emails.forgot-password', { | ||
24 | appUrl: Config.get('app.url'), | ||
25 | username: user.username, | ||
26 | token, | ||
27 | }); | ||
28 | }); | ||
29 | } catch (error) { | ||
30 | // eslint-disable-next-line no-console | ||
31 | console.log(`Couldn't send mail: ${error}`); | ||
32 | } | ||
33 | }); | ||
diff --git a/start/kernel.js b/start/kernel.js deleted file mode 100644 index 12c2162..0000000 --- a/start/kernel.js +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | /** @type {import('@adonisjs/framework/src/Server')} */ | ||
2 | const Server = use('Server'); | ||
3 | |||
4 | /* | ||
5 | |-------------------------------------------------------------------------- | ||
6 | | Global Middleware | ||
7 | |-------------------------------------------------------------------------- | ||
8 | | | ||
9 | | Global middleware are executed on each http request only when the routes | ||
10 | | match. | ||
11 | | | ||
12 | */ | ||
13 | const globalMiddleware = [ | ||
14 | 'Adonis/Middleware/BodyParser', | ||
15 | 'App/Middleware/ConvertEmptyStringsToNull', | ||
16 | 'Adonis/Middleware/AuthInit', | ||
17 | 'Adonis/Middleware/Session', | ||
18 | ]; | ||
19 | |||
20 | /* | ||
21 | |-------------------------------------------------------------------------- | ||
22 | | Named Middleware | ||
23 | |-------------------------------------------------------------------------- | ||
24 | | | ||
25 | | Named middleware is key/value object to conditionally add middleware on | ||
26 | | specific routes or group of routes. | ||
27 | | | ||
28 | | // define | ||
29 | | { | ||
30 | | auth: 'Adonis/Middleware/Auth' | ||
31 | | } | ||
32 | | | ||
33 | | // use | ||
34 | | Route.get().middleware('auth') | ||
35 | | | ||
36 | */ | ||
37 | const namedMiddleware = { | ||
38 | auth: 'Adonis/Middleware/Auth', | ||
39 | guest: 'Adonis/Middleware/AllowGuestOnly', | ||
40 | shield: 'Adonis/Middleware/Shield', | ||
41 | }; | ||
42 | |||
43 | /* | ||
44 | |-------------------------------------------------------------------------- | ||
45 | | Server Middleware | ||
46 | |-------------------------------------------------------------------------- | ||
47 | | | ||
48 | | Server level middleware are executed even when route for a given URL is | ||
49 | | not registered. Features like `static assets` and `cors` needs better | ||
50 | | control over request lifecycle. | ||
51 | | | ||
52 | */ | ||
53 | const serverMiddleware = [ | ||
54 | 'Adonis/Middleware/Static', | ||
55 | 'Adonis/Middleware/Cors', | ||
56 | 'App/Middleware/HandleDoubleSlash', | ||
57 | ]; | ||
58 | |||
59 | Server | ||
60 | .registerGlobal(globalMiddleware) | ||
61 | .registerNamed(namedMiddleware) | ||
62 | .use(serverMiddleware); | ||
diff --git a/start/kernel.ts b/start/kernel.ts new file mode 100644 index 0000000..1c5c92b --- /dev/null +++ b/start/kernel.ts | |||
@@ -0,0 +1,49 @@ | |||
1 | /* | ||
2 | |-------------------------------------------------------------------------- | ||
3 | | Application middleware | ||
4 | |-------------------------------------------------------------------------- | ||
5 | | | ||
6 | | This file is used to define middleware for HTTP requests. You can register | ||
7 | | middleware as a `closure` or an IoC container binding. The bindings are | ||
8 | | preferred, since they keep this file clean. | ||
9 | | | ||
10 | */ | ||
11 | |||
12 | import Server from '@ioc:Adonis/Core/Server'; | ||
13 | |||
14 | /* | ||
15 | |-------------------------------------------------------------------------- | ||
16 | | Global middleware | ||
17 | |-------------------------------------------------------------------------- | ||
18 | | | ||
19 | | An array of global middleware, that will be executed in the order they | ||
20 | | are defined for every HTTP requests. | ||
21 | | | ||
22 | */ | ||
23 | Server.middleware.register([ | ||
24 | () => import('@ioc:Adonis/Core/BodyParser'), | ||
25 | () => import('@ioc:Adonis/Addons/Shield'), | ||
26 | ]); | ||
27 | |||
28 | /* | ||
29 | |-------------------------------------------------------------------------- | ||
30 | | Named middleware | ||
31 | |-------------------------------------------------------------------------- | ||
32 | | | ||
33 | | Named middleware are defined as key-value pair. The value is the namespace | ||
34 | | or middleware function and key is the alias. Later you can use these | ||
35 | | alias on individual routes. For example: | ||
36 | | | ||
37 | | { auth: () => import('App/Middleware/Auth') } | ||
38 | | | ||
39 | | and then use it as follows | ||
40 | | | ||
41 | | Route.get('dashboard', 'UserController.dashboard').middleware('auth') | ||
42 | | | ||
43 | */ | ||
44 | Server.middleware.registerNamed({ | ||
45 | auth: () => import('App/Middleware/Auth'), | ||
46 | dashboard: () => import('App/Middleware/Dashboard'), | ||
47 | guest: () => import('App/Middleware/AllowGuestOnly'), | ||
48 | shield: () => import('@ioc:Adonis/Addons/Shield'), | ||
49 | }); | ||
diff --git a/start/routes.js b/start/routes.js deleted file mode 100644 index 0f3785f..0000000 --- a/start/routes.js +++ /dev/null | |||
@@ -1,128 +0,0 @@ | |||
1 | /* | ||
2 | |-------------------------------------------------------------------------- | ||
3 | | Routes | ||
4 | |-------------------------------------------------------------------------- | ||
5 | | | ||
6 | */ | ||
7 | |||
8 | /** @type {typeof import('@adonisjs/framework/src/Route/Manager')} */ | ||
9 | const Route = use('Route'); | ||
10 | const Env = use('Env'); | ||
11 | |||
12 | // Health: Returning if all systems function correctly | ||
13 | Route.get('health', ({ | ||
14 | response, | ||
15 | }) => response.send({ | ||
16 | api: 'success', | ||
17 | db: 'success', | ||
18 | })); | ||
19 | |||
20 | // API is grouped under '/v1/' route | ||
21 | Route.group(() => { | ||
22 | // User authentification | ||
23 | Route.post('auth/signup', 'UserController.signup').middleware('guest'); | ||
24 | Route.post('auth/login', 'UserController.login').middleware('guest'); | ||
25 | |||
26 | // User info | ||
27 | Route.get('me', 'UserController.me').middleware('auth'); | ||
28 | Route.put('me', 'UserController.updateMe').middleware('auth'); | ||
29 | |||
30 | // Service info | ||
31 | Route.post('service', 'ServiceController.create').middleware('auth'); | ||
32 | Route.put('service/reorder', 'ServiceController.reorder').middleware('auth'); | ||
33 | Route.put('service/:id', 'ServiceController.edit').middleware('auth'); | ||
34 | Route.delete('service/:id', 'ServiceController.delete').middleware('auth'); | ||
35 | Route.get('me/services', 'ServiceController.list').middleware('auth'); | ||
36 | Route.get('recipe', 'ServiceController.list').middleware('auth'); | ||
37 | Route.get('icon/:id', 'ServiceController.icon'); | ||
38 | |||
39 | // Recipe store | ||
40 | Route.get('recipes', 'RecipeController.list'); | ||
41 | Route.get('recipes/search', 'RecipeController.search'); | ||
42 | Route.get('recipes/popular', 'RecipeController.popularRecipes'); | ||
43 | Route.get('recipes/download/:recipe', 'RecipeController.download'); | ||
44 | Route.post('recipes/update', 'RecipeController.update'); | ||
45 | |||
46 | // Workspaces | ||
47 | Route.put('workspace/:id', 'WorkspaceController.edit').middleware('auth'); | ||
48 | Route.delete('workspace/:id', 'WorkspaceController.delete').middleware('auth'); | ||
49 | Route.post('workspace', 'WorkspaceController.create').middleware('auth'); | ||
50 | Route.get('workspace', 'WorkspaceController.list').middleware('auth'); | ||
51 | |||
52 | // Static responses | ||
53 | Route.get('features/:mode?', 'StaticController.features'); | ||
54 | Route.get('services', 'StaticController.emptyArray'); | ||
55 | Route.get('news', 'StaticController.emptyArray'); | ||
56 | Route.get('announcements/:version', 'StaticController.announcement'); | ||
57 | }).prefix('v1'); | ||
58 | |||
59 | // User dashboard | ||
60 | if (Env.get('IS_DASHBOARD_ENABLED') !== 'false') { | ||
61 | Route.group(() => { | ||
62 | // Auth | ||
63 | Route.get('login', ({ view }) => view.render('dashboard.login')).middleware('guest'); | ||
64 | Route.post('login', 'DashboardController.login').middleware('guest').as('login'); | ||
65 | |||
66 | // Reset password | ||
67 | Route.get('forgot', ({ view }) => view.render('dashboard.forgotPassword')).middleware('guest'); | ||
68 | Route.post('forgot', 'DashboardController.forgotPassword').middleware('guest'); | ||
69 | |||
70 | Route.get('reset', ({ view, request }) => { | ||
71 | const { token } = request.get(); | ||
72 | if (token) { | ||
73 | return view.render('dashboard.resetPassword', { token }); | ||
74 | } | ||
75 | return view.render('others.message', { | ||
76 | heading: 'Invalid token', | ||
77 | text: 'Please make sure you are using a valid and recent link to reset your password.', | ||
78 | }); | ||
79 | }).middleware('guest'); | ||
80 | Route.post('reset', 'DashboardController.resetPassword').middleware('guest'); | ||
81 | |||
82 | // Dashboard | ||
83 | Route.get('account', 'DashboardController.account').middleware('auth:session'); | ||
84 | Route.post('account', 'DashboardController.edit').middleware('auth:session'); | ||
85 | |||
86 | Route.get('data', 'DashboardController.data').middleware('auth:session'); | ||
87 | |||
88 | Route.get('export', 'DashboardController.export').middleware('auth:session'); | ||
89 | Route.post('transfer', 'DashboardController.import').middleware('auth:session'); | ||
90 | Route.get('transfer', ({ view }) => view.render('dashboard.transfer')).middleware('auth:session'); | ||
91 | |||
92 | Route.get('delete', ({ view }) => view.render('dashboard.delete')).middleware('auth:session'); | ||
93 | Route.post('delete', 'DashboardController.delete').middleware('auth:session'); | ||
94 | |||
95 | Route.get('logout', 'DashboardController.logout').middleware('auth:session'); | ||
96 | |||
97 | Route.get('*', ({ response }) => response.redirect('/user/account')); | ||
98 | }).prefix('user').middleware('shield'); | ||
99 | } else { | ||
100 | Route.group(() => { | ||
101 | Route.get('*', ({ | ||
102 | response, | ||
103 | }) => response.send('The user dashboard is disabled on this server\n\nIf you are the server owner, please set IS_DASHBOARD_ENABLED to true to enable the dashboard.')); | ||
104 | }).prefix('user'); | ||
105 | } | ||
106 | |||
107 | // Recipe creation | ||
108 | Route.post('new', 'RecipeController.create'); | ||
109 | Route.get('new', ({ response, view }) => { | ||
110 | if (Env.get('IS_CREATION_ENABLED') == 'false') { // eslint-disable-line eqeqeq | ||
111 | return response.send('This server doesn\'t allow the creation of new recipes.\n\nIf you are the server owner, please set IS_CREATION_ENABLED to true to enable recipe creation.'); | ||
112 | } | ||
113 | return view.render('others.new'); | ||
114 | }); | ||
115 | |||
116 | // Franz/Ferdi account import | ||
117 | Route.post('import', 'UserController.import'); | ||
118 | Route.get('import', ({ view }) => view.render('others.import')); | ||
119 | |||
120 | // Legal documents | ||
121 | Route.get('terms', ({ response }) => response.redirect('/terms.html')); | ||
122 | Route.get('privacy', ({ response }) => response.redirect('/privacy.html')); | ||
123 | |||
124 | // Index | ||
125 | Route.get('/', ({ view }) => view.render('others.index')); | ||
126 | |||
127 | // 404 handler | ||
128 | Route.get('/*', ({ response }) => response.redirect('/')); | ||
diff --git a/start/routes.ts b/start/routes.ts new file mode 100644 index 0000000..75cef72 --- /dev/null +++ b/start/routes.ts | |||
@@ -0,0 +1,22 @@ | |||
1 | /* | ||
2 | |-------------------------------------------------------------------------- | ||
3 | | Routes | ||
4 | |-------------------------------------------------------------------------- | ||
5 | | | ||
6 | | This file is dedicated for defining HTTP routes. A single file is enough | ||
7 | | for majority of projects, however you can define routes in different | ||
8 | | files and just make sure to import them inside this file. For example | ||
9 | | | ||
10 | | Define routes in following two files | ||
11 | | ├── start/routes/cart.ts | ||
12 | | ├── start/routes/customer.ts | ||
13 | | | ||
14 | | and then import them inside `start/routes.ts` as follows | ||
15 | | | ||
16 | | import './routes/cart' | ||
17 | | import './routes/customer' | ||
18 | | | ||
19 | */ | ||
20 | |||
21 | import './routes/api'; | ||
22 | import './routes/web'; | ||
diff --git a/start/routes/api.ts b/start/routes/api.ts new file mode 100644 index 0000000..78282f0 --- /dev/null +++ b/start/routes/api.ts | |||
@@ -0,0 +1,51 @@ | |||
1 | // As this is currently a rebuild of the initial API we it is grouped in /v2/ | ||
2 | |||
3 | import Route from '@ioc:Adonis/Core/Route'; | ||
4 | |||
5 | Route.group(() => { | ||
6 | // User authentification | ||
7 | Route.post('auth/signup', 'UserController.signup').middleware('guest'); | ||
8 | Route.post('auth/login', 'UserController.login').middleware('guest'); | ||
9 | |||
10 | // User info | ||
11 | Route.get('me', 'UserController.me').middleware('auth:jwt'); | ||
12 | Route.put('me', 'UserController.updateMe').middleware('auth:jwt'); | ||
13 | Route.get('me/newtoken', 'UserController.newToken').middleware('auth:jwt'); | ||
14 | |||
15 | // // Service info | ||
16 | Route.post('service', 'ServiceController.create').middleware('auth:jwt'); | ||
17 | Route.put('service/reorder', 'ServiceController.reorder').middleware( | ||
18 | 'auth:jwt', | ||
19 | ); | ||
20 | Route.put('service/:id', 'ServiceController.edit').middleware('auth:jwt'); | ||
21 | Route.delete('service/:id', 'ServiceController.delete').middleware( | ||
22 | 'auth:jwt', | ||
23 | ); | ||
24 | Route.get('me/services', 'ServiceController.list').middleware('auth:jwt'); | ||
25 | Route.get('recipe', 'ServiceController.list').middleware('auth:jwt'); | ||
26 | Route.get('icon/:id', 'ServiceController.icon'); | ||
27 | |||
28 | // Recipe store | ||
29 | Route.get('recipes', 'RecipeController.list'); | ||
30 | Route.get('recipes/search', 'RecipeController.search'); | ||
31 | Route.get('recipes/popular', 'RecipeController.popularRecipes'); | ||
32 | Route.get('recipes/download/:recipe', 'RecipeController.download'); | ||
33 | Route.post('recipes/update', 'RecipeController.update'); | ||
34 | |||
35 | // // Workspaces | ||
36 | Route.put('workspace/:id', 'WorkspaceController.edit').middleware('auth:jwt'); | ||
37 | Route.delete('workspace/:id', 'WorkspaceController.delete').middleware( | ||
38 | 'auth:jwt', | ||
39 | ); | ||
40 | Route.post('workspace', 'WorkspaceController.create').middleware('auth:jwt'); | ||
41 | Route.get('workspace', 'WorkspaceController.list').middleware('auth:jwt'); | ||
42 | |||
43 | // Static responses | ||
44 | Route.get('features/:mode?', 'Api/Static/FeaturesController.show'); | ||
45 | Route.get('services', 'Api/Static/EmptyController.show'); | ||
46 | Route.get('news', 'Api/Static/EmptyController.show'); | ||
47 | Route.get( | ||
48 | 'announcements/:version', | ||
49 | 'Api/Static/AnnouncementsController.show', | ||
50 | ); | ||
51 | }).prefix('/v1'); | ||
diff --git a/start/routes/web.ts b/start/routes/web.ts new file mode 100644 index 0000000..308abec --- /dev/null +++ b/start/routes/web.ts | |||
@@ -0,0 +1,54 @@ | |||
1 | import Route from '@ioc:Adonis/Core/Route'; | ||
2 | |||
3 | // Health check | ||
4 | Route.get('health', 'HealthController.index'); | ||
5 | |||
6 | // Legal documents | ||
7 | Route.get('terms', ({ response }) => response.redirect('/terms.html')); | ||
8 | Route.get('privacy', ({ response }) => response.redirect('/privacy.html')); | ||
9 | |||
10 | // Index | ||
11 | Route.get('/', ({ view }) => view.render('others/index')); | ||
12 | |||
13 | Route.group(() => { | ||
14 | Route.group(() => { | ||
15 | // Guest troutes | ||
16 | Route.group(() => { | ||
17 | Route.get('login', 'Dashboard/LoginController.show'); | ||
18 | Route.post('login', 'Dashboard/LoginController.login').as('login'); | ||
19 | |||
20 | // Reset password | ||
21 | Route.get('forgot', 'Dashboard/ForgotPasswordController.show'); | ||
22 | Route.post('forgot', 'Dashboard/ForgotPasswordController.forgotPassword'); | ||
23 | |||
24 | Route.get('reset', 'Dashboard/ResetPasswordController.show'); | ||
25 | Route.post('reset', 'Dashboard/ResetPasswordController.resetPassword'); | ||
26 | }).middleware(['dashboard', 'guest']); | ||
27 | |||
28 | // Authenticated routes | ||
29 | Route.group(() => { | ||
30 | Route.get('account', 'Dashboard/AccountController.show'); | ||
31 | Route.post('account', 'Dashboard/AccountController.store'); | ||
32 | |||
33 | Route.get('data', 'Dashboard/DataController.show'); | ||
34 | Route.get('export', 'Dashboard/ExportController.show'); | ||
35 | |||
36 | Route.get('transfer', 'Dashboard/TransferController.show'); | ||
37 | Route.post('transfer', 'Dashboard/TransferController.import'); | ||
38 | |||
39 | Route.get('delete', 'Dashboard/DeleteController.show'); | ||
40 | Route.post('delete', 'Dashboard/DeleteController.delete'); | ||
41 | |||
42 | Route.get('logout', 'Dashboard/LogOutController.logout'); | ||
43 | |||
44 | Route.get('*', ({ response }) => response.redirect('/user/account')); | ||
45 | }).middleware(['dashboard', 'auth:web']); | ||
46 | }).prefix('user'); | ||
47 | |||
48 | // Franz/Ferdi account import | ||
49 | Route.get('import', ({ view }) => view.render('others/import')); | ||
50 | Route.post('import', 'UserController.import'); | ||
51 | |||
52 | // 404 handler | ||
53 | Route.get('/*', ({ response }) => response.redirect('/')); | ||
54 | }).middleware(['dashboard']); | ||
@@ -0,0 +1,49 @@ | |||
1 | /* | ||
2 | |-------------------------------------------------------------------------- | ||
3 | | Tests | ||
4 | |-------------------------------------------------------------------------- | ||
5 | | | ||
6 | | The contents in this file boots the AdonisJS application and configures | ||
7 | | the Japa tests runner. | ||
8 | | | ||
9 | | For the most part you will never edit this file. The configuration | ||
10 | | for the tests can be controlled via ".adonisrc.json" and | ||
11 | | "tests/bootstrap.ts" files. | ||
12 | | | ||
13 | */ | ||
14 | |||
15 | import 'reflect-metadata'; | ||
16 | import sourceMapSupport from 'source-map-support'; | ||
17 | import { Ignitor } from '@adonisjs/core/build/standalone'; | ||
18 | import { | ||
19 | configure, | ||
20 | processCliArgs, | ||
21 | run, | ||
22 | RunnerHooksHandler, | ||
23 | } from '@japa/runner'; | ||
24 | |||
25 | process.env.NODE_ENV = 'test'; | ||
26 | |||
27 | sourceMapSupport.install({ handleUncaughtExceptions: false }); | ||
28 | |||
29 | const kernel = new Ignitor(__dirname).kernel('test'); | ||
30 | |||
31 | kernel | ||
32 | .boot() | ||
33 | .then(() => import('./tests/bootstrap')) | ||
34 | .then(({ runnerHooks, ...config }) => { | ||
35 | const app: RunnerHooksHandler[] = [() => kernel.start()]; | ||
36 | |||
37 | configure({ | ||
38 | ...kernel.application.rcFile.tests, | ||
39 | ...processCliArgs(process.argv.slice(2)), | ||
40 | ...config, | ||
41 | |||
42 | importer: filePath => import(filePath), | ||
43 | setup: [...app, ...runnerHooks.setup], | ||
44 | teardown: runnerHooks.teardown, | ||
45 | cwd: kernel.application.appRoot, | ||
46 | }); | ||
47 | |||
48 | run(); | ||
49 | }); | ||
diff --git a/tests/bootstrap.ts b/tests/bootstrap.ts new file mode 100644 index 0000000..efd1d1f --- /dev/null +++ b/tests/bootstrap.ts | |||
@@ -0,0 +1,83 @@ | |||
1 | /** | ||
2 | * File source: https://bit.ly/3ukaHTz | ||
3 | * | ||
4 | * Feel free to let us know via PR, if you find something broken in this contract | ||
5 | * file. | ||
6 | */ | ||
7 | |||
8 | import type { Config } from '@japa/runner'; | ||
9 | import TestUtils from '@ioc:Adonis/Core/TestUtils'; | ||
10 | import { | ||
11 | assert, | ||
12 | runFailedTests, | ||
13 | specReporter, | ||
14 | apiClient, | ||
15 | } from '@japa/preset-adonis'; | ||
16 | import { fakeCsrfField } from './utils'; | ||
17 | |||
18 | /* | ||
19 | |-------------------------------------------------------------------------- | ||
20 | | Japa Plugins | ||
21 | |-------------------------------------------------------------------------- | ||
22 | | | ||
23 | | Japa plugins allows you to add additional features to Japa. By default | ||
24 | | we register the assertion plugin. | ||
25 | | | ||
26 | | Feel free to remove existing plugins or add more. | ||
27 | | | ||
28 | */ | ||
29 | export const plugins: Config['plugins'] = [ | ||
30 | assert(), | ||
31 | runFailedTests(), | ||
32 | apiClient(), | ||
33 | ]; | ||
34 | |||
35 | /* | ||
36 | |-------------------------------------------------------------------------- | ||
37 | | Japa Reporters | ||
38 | |-------------------------------------------------------------------------- | ||
39 | | | ||
40 | | Japa reporters displays/saves the progress of tests as they are executed. | ||
41 | | By default, we register the spec reporter to show a detailed report | ||
42 | | of tests on the terminal. | ||
43 | | | ||
44 | */ | ||
45 | export const reporters: Config['reporters'] = [specReporter()]; | ||
46 | |||
47 | /* | ||
48 | |-------------------------------------------------------------------------- | ||
49 | | Runner hooks | ||
50 | |-------------------------------------------------------------------------- | ||
51 | | | ||
52 | | Runner hooks are executed after booting the AdonisJS app and | ||
53 | | before the test files are imported. | ||
54 | | | ||
55 | | You can perform actions like starting the HTTP server or running migrations | ||
56 | | within the runner hooks | ||
57 | | | ||
58 | */ | ||
59 | export const runnerHooks: Required<Pick<Config, 'setup' | 'teardown'>> = { | ||
60 | setup: [ | ||
61 | () => TestUtils.ace().loadCommands(), | ||
62 | () => TestUtils.db().migrate(), | ||
63 | () => fakeCsrfField(), | ||
64 | ], | ||
65 | teardown: [], | ||
66 | }; | ||
67 | |||
68 | /* | ||
69 | |-------------------------------------------------------------------------- | ||
70 | | Configure individual suites | ||
71 | |-------------------------------------------------------------------------- | ||
72 | | | ||
73 | | The configureSuite method gets called for every test suite registered | ||
74 | | within ".adonisrc.json" file. | ||
75 | | | ||
76 | | You can use this method to configure suites. For example: Only start | ||
77 | | the HTTP server when it is a functional suite. | ||
78 | */ | ||
79 | export const configureSuite: Config['configureSuite'] = suite => { | ||
80 | if (suite.name === 'functional') { | ||
81 | suite.setup(() => TestUtils.httpServer().start()); | ||
82 | } | ||
83 | }; | ||
diff --git a/tests/config.ts b/tests/config.ts new file mode 100644 index 0000000..8cd3511 --- /dev/null +++ b/tests/config.ts | |||
@@ -0,0 +1 @@ | |||
export const apiVersion = 'v1'; | |||
diff --git a/tests/functional/api/register.spec.ts b/tests/functional/api/register.spec.ts new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/functional/api/register.spec.ts | |||
diff --git a/tests/functional/api/static/announcements.spec.ts b/tests/functional/api/static/announcements.spec.ts new file mode 100644 index 0000000..ac933fe --- /dev/null +++ b/tests/functional/api/static/announcements.spec.ts | |||
@@ -0,0 +1,55 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | import { apiVersion } from '../../../config'; | ||
3 | |||
4 | test.group('API / Static / News', () => { | ||
5 | test('returns a 404 response when the requested versions does not exist', async ({ | ||
6 | client, | ||
7 | }) => { | ||
8 | const response = await client.get(`/${apiVersion}/announcements/illegal`); | ||
9 | |||
10 | response.assertStatus(404); | ||
11 | response.assertTextIncludes('No announcement found.'); | ||
12 | }); | ||
13 | |||
14 | test('returns a 200 response with default version file when specifying version as input', async ({ | ||
15 | client, | ||
16 | }) => { | ||
17 | const response = await client.get(`/${apiVersion}/announcements/version`); | ||
18 | |||
19 | response.assertStatus(200); | ||
20 | response.assertBody({ | ||
21 | main: { | ||
22 | headline: 'Example Announcement', | ||
23 | subHeadline: 'Configure your announcement here', | ||
24 | image: { | ||
25 | light: 'https://api.ferdium.org/assets/feature/light.png', | ||
26 | dark: 'https://api.ferdium.org/assets/feature/dark.png', | ||
27 | }, | ||
28 | text: 'Long description here', | ||
29 | cta: { | ||
30 | label: 'Click here to do something', | ||
31 | href: '/settings/app', | ||
32 | analytics: { | ||
33 | category: 'announcements-main', | ||
34 | action: 'event', | ||
35 | label: 'This does not get used', | ||
36 | }, | ||
37 | }, | ||
38 | }, | ||
39 | spotlight: { | ||
40 | title: 'Spotlight:', | ||
41 | subject: 'Show another feature', | ||
42 | text: 'Show another feature in the spotlight', | ||
43 | cta: { | ||
44 | label: 'Click here to do something', | ||
45 | href: '/settings/team', | ||
46 | analytics: { | ||
47 | category: 'announcements-spotlight', | ||
48 | action: 'event', | ||
49 | label: 'This does not get used', | ||
50 | }, | ||
51 | }, | ||
52 | }, | ||
53 | }); | ||
54 | }); | ||
55 | }); | ||
diff --git a/tests/functional/api/static/features.spec.ts b/tests/functional/api/static/features.spec.ts new file mode 100644 index 0000000..1050fcf --- /dev/null +++ b/tests/functional/api/static/features.spec.ts | |||
@@ -0,0 +1,29 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | import { apiVersion } from '../../../config'; | ||
3 | |||
4 | const defaultResponse = { | ||
5 | isServiceProxyEnabled: true, | ||
6 | isWorkspaceEnabled: true, | ||
7 | isAnnouncementsEnabled: true, | ||
8 | isSettingsWSEnabled: false, | ||
9 | isMagicBarEnabled: true, | ||
10 | isTodosEnabled: true, | ||
11 | }; | ||
12 | |||
13 | test.group('API / Static / Features', () => { | ||
14 | test('returns a 200 response with empty array', async ({ client }) => { | ||
15 | const response = await client.get(`/${apiVersion}/features`); | ||
16 | |||
17 | response.assertStatus(200); | ||
18 | response.assertBody(defaultResponse); | ||
19 | }); | ||
20 | |||
21 | test('returns a 200 response with expected object when calling with :mode', async ({ | ||
22 | client, | ||
23 | }) => { | ||
24 | const response = await client.get(`/${apiVersion}/features/random`); | ||
25 | |||
26 | response.assertStatus(200); | ||
27 | response.assertBody(defaultResponse); | ||
28 | }); | ||
29 | }); | ||
diff --git a/tests/functional/api/static/news.spec.ts b/tests/functional/api/static/news.spec.ts new file mode 100644 index 0000000..8f3818f --- /dev/null +++ b/tests/functional/api/static/news.spec.ts | |||
@@ -0,0 +1,11 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | import { apiVersion } from '../../../config'; | ||
3 | |||
4 | test.group('API / Static / News', () => { | ||
5 | test('returns a 200 response with empty array', async ({ client }) => { | ||
6 | const response = await client.get(`/${apiVersion}/news`); | ||
7 | |||
8 | response.assertStatus(200); | ||
9 | response.assertBody([]); | ||
10 | }); | ||
11 | }); | ||
diff --git a/tests/functional/api/static/services.spec.ts b/tests/functional/api/static/services.spec.ts new file mode 100644 index 0000000..55eef37 --- /dev/null +++ b/tests/functional/api/static/services.spec.ts | |||
@@ -0,0 +1,11 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | import { apiVersion } from '../../../config'; | ||
3 | |||
4 | test.group('API / Static / Services', () => { | ||
5 | test('returns a 200 response with empty array', async ({ client }) => { | ||
6 | const response = await client.get(`/${apiVersion}/services`); | ||
7 | |||
8 | response.assertStatus(200); | ||
9 | response.assertBody([]); | ||
10 | }); | ||
11 | }); | ||
diff --git a/tests/functional/dashboard/account.spec.ts b/tests/functional/dashboard/account.spec.ts new file mode 100644 index 0000000..bee9d6a --- /dev/null +++ b/tests/functional/dashboard/account.spec.ts | |||
@@ -0,0 +1,124 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | import User from 'App/Models/User'; | ||
3 | import UserFactory from 'Database/factories/UserFactory'; | ||
4 | |||
5 | test.group('Dashboard / Account page', () => { | ||
6 | test('redirects to /user/login when accessing /user/account as guest', async ({ | ||
7 | client, | ||
8 | }) => { | ||
9 | const response = await client.get('/user/account'); | ||
10 | |||
11 | response.assertRedirectsTo('/user/login'); // Check if it redirects to the expected URL | ||
12 | }); | ||
13 | |||
14 | test('returns a 200 opening the account route while logged in', async ({ | ||
15 | client, | ||
16 | }) => { | ||
17 | const user = await UserFactory.create(); | ||
18 | const response = await client.get('/user/account').loginAs(user); | ||
19 | |||
20 | response.assertStatus(200); | ||
21 | response.assertTextIncludes('Your Ferdium account'); | ||
22 | |||
23 | response.assertTextIncludes(user.email); | ||
24 | response.assertTextIncludes(user.username); | ||
25 | response.assertTextIncludes(user.lastname); | ||
26 | }); | ||
27 | |||
28 | test('returns a validation error for all fields when missing', async ({ | ||
29 | client, | ||
30 | }) => { | ||
31 | const user = await UserFactory.create(); | ||
32 | const response = await client.post('/user/account').loginAs(user); | ||
33 | |||
34 | response.assertTextIncludes( | ||
35 | 'value="required validation failed,required validation failed" placeholder="E-Mail"', | ||
36 | ); | ||
37 | response.assertTextIncludes( | ||
38 | 'value="required validation failed,required validation failed" placeholder="Name"', | ||
39 | ); | ||
40 | response.assertTextIncludes( | ||
41 | 'value="required validation failed,required validation failed" placeholder="Last Name"', | ||
42 | ); | ||
43 | }); | ||
44 | |||
45 | test('returns a validation error for username when there is another user with same username', async ({ | ||
46 | client, | ||
47 | }) => { | ||
48 | const user = await UserFactory.create(); | ||
49 | const existingUser = await UserFactory.create(); | ||
50 | |||
51 | const response = await client.post('/user/account').loginAs(user).form({ | ||
52 | username: existingUser.username, | ||
53 | email: user.email, | ||
54 | lastname: user.lastname, | ||
55 | }); | ||
56 | |||
57 | response.assertTextIncludes( | ||
58 | 'value="unique validation failure" placeholder="Name"', | ||
59 | ); | ||
60 | }); | ||
61 | |||
62 | test('returns a validation error for email when there is another user with same email', async ({ | ||
63 | client, | ||
64 | }) => { | ||
65 | const user = await UserFactory.create(); | ||
66 | const existingUser = await UserFactory.create(); | ||
67 | |||
68 | const response = await client.post('/user/account').loginAs(user).form({ | ||
69 | username: user.username, | ||
70 | email: existingUser.email, | ||
71 | lastname: user.lastname, | ||
72 | }); | ||
73 | |||
74 | response.assertTextIncludes( | ||
75 | 'value="unique validation failure" placeholder="E-Mail"', | ||
76 | ); | ||
77 | }); | ||
78 | |||
79 | test('updates user data and ensures the data is persisted', async ({ | ||
80 | client, | ||
81 | assert, | ||
82 | }) => { | ||
83 | const user = await UserFactory.create(); | ||
84 | const response = await client.post('/user/account').loginAs(user).form({ | ||
85 | username: 'edited-username', | ||
86 | email: 'edited-email', | ||
87 | lastname: 'edited-lastname', | ||
88 | }); | ||
89 | |||
90 | response.assertStatus(200); | ||
91 | |||
92 | // Ensure updated data is displayed on account page | ||
93 | response.assertTextIncludes('edited-username'); | ||
94 | response.assertTextIncludes('edited-email'); | ||
95 | response.assertTextIncludes('edited-lastname'); | ||
96 | |||
97 | // Ensure updated data is persisted in database | ||
98 | const updatedUser = await User.findBy('id', user.id); | ||
99 | assert.equal(updatedUser?.username, 'edited-username'); | ||
100 | assert.equal(updatedUser?.email, 'edited-email'); | ||
101 | assert.equal(updatedUser?.lastname, 'edited-lastname'); | ||
102 | }); | ||
103 | |||
104 | test('updates user password and ensures the user can still login', async ({ | ||
105 | client, | ||
106 | }) => { | ||
107 | const user = await UserFactory.create(); | ||
108 | const response = await client.post('/user/account').loginAs(user).form({ | ||
109 | username: user.username, | ||
110 | email: user.email, | ||
111 | lastname: user.lastname, | ||
112 | password: 'modified-password-account-page', | ||
113 | }); | ||
114 | |||
115 | response.assertStatus(200); | ||
116 | |||
117 | const loginResponse = await client.post('/user/login').fields({ | ||
118 | mail: user.email, | ||
119 | password: 'modified-password-account-page', | ||
120 | }); | ||
121 | |||
122 | loginResponse.assertRedirectsTo('/user/account'); | ||
123 | }); | ||
124 | }); | ||
diff --git a/tests/functional/dashboard/data.spec.ts b/tests/functional/dashboard/data.spec.ts new file mode 100644 index 0000000..1a0e7ad --- /dev/null +++ b/tests/functional/dashboard/data.spec.ts | |||
@@ -0,0 +1,31 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | import UserFactory from 'Database/factories/UserFactory'; | ||
3 | |||
4 | test.group('Dashboard / Data page', () => { | ||
5 | test('redirects to /user/login when accessing /user/data as guest', async ({ | ||
6 | client, | ||
7 | }) => { | ||
8 | const response = await client.get('/user/data'); | ||
9 | |||
10 | response.assertRedirectsTo('/user/login'); // Check if it redirects to the expected URL | ||
11 | }); | ||
12 | |||
13 | test('ensure the correct data is shown on the page', async ({ client }) => { | ||
14 | const user = await UserFactory.create(); | ||
15 | const response = await client.get('/user/data').loginAs(user); | ||
16 | |||
17 | response.assertStatus(200); | ||
18 | response.assertTextIncludes(user.email); | ||
19 | response.assertTextIncludes(user.username); | ||
20 | response.assertTextIncludes(user.lastname); | ||
21 | response.assertTextIncludes( | ||
22 | user.created_at.toFormat('yyyy-MM-dd HH:mm:ss'), | ||
23 | ); | ||
24 | response.assertTextIncludes( | ||
25 | user.updated_at.toFormat('yyyy-MM-dd HH:mm:ss'), | ||
26 | ); | ||
27 | }); | ||
28 | |||
29 | // TODO: Add test to include services. | ||
30 | // TODO: Add test to include workspaces. | ||
31 | }); | ||
diff --git a/tests/functional/dashboard/delete.spec.ts b/tests/functional/dashboard/delete.spec.ts new file mode 100644 index 0000000..ae3f0e6 --- /dev/null +++ b/tests/functional/dashboard/delete.spec.ts | |||
@@ -0,0 +1,37 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | import User from 'App/Models/User'; | ||
3 | import UserFactory from 'Database/factories/UserFactory'; | ||
4 | |||
5 | test.group('Dashboard / Delete account page', () => { | ||
6 | test('redirects to /user/login when accessing /user/delete as guest', async ({ | ||
7 | client, | ||
8 | }) => { | ||
9 | const response = await client.get('/user/delete'); | ||
10 | |||
11 | response.assertRedirectsTo('/user/login'); // Check if it redirects to the expected URL | ||
12 | }); | ||
13 | |||
14 | test('returns a 200 opening the delete route while logged in', async ({ | ||
15 | client, | ||
16 | }) => { | ||
17 | const user = await UserFactory.create(); | ||
18 | const response = await client.get('/user/delete').loginAs(user); | ||
19 | |||
20 | response.assertStatus(200); | ||
21 | response.assertTextIncludes('Delete your account'); | ||
22 | }); | ||
23 | |||
24 | test('returns a 200 opening the delete route while logged in', async ({ | ||
25 | client, | ||
26 | assert, | ||
27 | }) => { | ||
28 | const user = await UserFactory.create(); | ||
29 | const response = await client.post('/user/delete').loginAs(user); | ||
30 | |||
31 | response.assertRedirectsTo('/user/login'); | ||
32 | // This asserts the session is deleted as well | ||
33 | response.assertSessionMissing('auth_web'); | ||
34 | |||
35 | assert.isNull(await User.find(user.id)); | ||
36 | }); | ||
37 | }); | ||
diff --git a/tests/functional/dashboard/disabled-dashboard.spec.ts b/tests/functional/dashboard/disabled-dashboard.spec.ts new file mode 100644 index 0000000..cc9052c --- /dev/null +++ b/tests/functional/dashboard/disabled-dashboard.spec.ts | |||
@@ -0,0 +1,71 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | import Config from '@ioc:Adonis/Core/Config'; | ||
3 | |||
4 | const disabledDashboardMessage = | ||
5 | 'The user dashboard is disabled on this server\n\nIf you are the server owner, please set IS_DASHBOARD_ENABLED to true to enable the dashboard.'; | ||
6 | |||
7 | test.group('Dashboard / Disabled dashboard', group => { | ||
8 | group.setup(() => { | ||
9 | Config.set('dashboard.enabled', false); | ||
10 | }); | ||
11 | |||
12 | group.teardown(() => { | ||
13 | Config.set('dashboard.enabled', true); | ||
14 | }); | ||
15 | |||
16 | test('Login page returns disabled dashboard message', async ({ client }) => { | ||
17 | const response = await client.get('/user/login'); | ||
18 | |||
19 | response.assertTextIncludes(disabledDashboardMessage); | ||
20 | }); | ||
21 | |||
22 | test('Forgot password page returns disabled dashboard message', async ({ | ||
23 | client, | ||
24 | }) => { | ||
25 | const response = await client.get('/user/forgot'); | ||
26 | |||
27 | response.assertTextIncludes(disabledDashboardMessage); | ||
28 | }); | ||
29 | |||
30 | test('Reset password page returns disabled dashboard message', async ({ | ||
31 | client, | ||
32 | }) => { | ||
33 | const response = await client.get('/user/reset'); | ||
34 | |||
35 | response.assertTextIncludes(disabledDashboardMessage); | ||
36 | }); | ||
37 | |||
38 | test('Account page returns disabled dashboard message', async ({ | ||
39 | client, | ||
40 | }) => { | ||
41 | const response = await client.get('/user/account'); | ||
42 | |||
43 | response.assertTextIncludes(disabledDashboardMessage); | ||
44 | }); | ||
45 | |||
46 | test('Data page returns disabled dashboard message', async ({ client }) => { | ||
47 | const response = await client.get('/user/data'); | ||
48 | |||
49 | response.assertTextIncludes(disabledDashboardMessage); | ||
50 | }); | ||
51 | |||
52 | test('Export page returns disabled dashboard message', async ({ client }) => { | ||
53 | const response = await client.get('/user/export'); | ||
54 | |||
55 | response.assertTextIncludes(disabledDashboardMessage); | ||
56 | }); | ||
57 | |||
58 | test('Transfer page returns disabled dashboard message', async ({ | ||
59 | client, | ||
60 | }) => { | ||
61 | const response = await client.get('/user/transfer'); | ||
62 | |||
63 | response.assertTextIncludes(disabledDashboardMessage); | ||
64 | }); | ||
65 | |||
66 | test('Logout page returns disabled dashboard message', async ({ client }) => { | ||
67 | const response = await client.get('/user/logout'); | ||
68 | |||
69 | response.assertTextIncludes(disabledDashboardMessage); | ||
70 | }); | ||
71 | }); | ||
diff --git a/tests/functional/dashboard/export.spec.ts b/tests/functional/dashboard/export.spec.ts new file mode 100644 index 0000000..4250622 --- /dev/null +++ b/tests/functional/dashboard/export.spec.ts | |||
@@ -0,0 +1,61 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | import UserFactory from 'Database/factories/UserFactory'; | ||
3 | |||
4 | test.group('Dashboard / Export page', () => { | ||
5 | test('redirects to /user/login when accessing /user/transfer as guest', async ({ | ||
6 | client, | ||
7 | }) => { | ||
8 | const response = await client.get('/user/transfer'); | ||
9 | |||
10 | response.assertRedirectsTo('/user/login'); // Check if it redirects to the expected URL | ||
11 | }); | ||
12 | |||
13 | test('returns a correct export with user data', async ({ | ||
14 | assert, | ||
15 | client, | ||
16 | }) => { | ||
17 | const user = await UserFactory.create(); | ||
18 | const response = await client.get('/user/export').loginAs(user); | ||
19 | |||
20 | response.assertStatus(200); | ||
21 | const exportData = JSON.parse(response.text()); | ||
22 | |||
23 | assert.equal(exportData.username, user.username); | ||
24 | assert.equal(exportData.lastname, user.lastname); | ||
25 | assert.equal(exportData.mail, user.email); | ||
26 | }); | ||
27 | |||
28 | // TODO: We can improve this test by hard checking the export data | ||
29 | test('returns a correct export with service data', async ({ | ||
30 | assert, | ||
31 | client, | ||
32 | }) => { | ||
33 | const user = await UserFactory.with('services', 5).create(); | ||
34 | const response = await client.get('/user/export').loginAs(user); | ||
35 | |||
36 | response.assertStatus(200); | ||
37 | const exportData = JSON.parse(response.text()); | ||
38 | |||
39 | assert.equal(exportData.username, user.username); | ||
40 | assert.equal(exportData.lastname, user.lastname); | ||
41 | assert.equal(exportData.mail, user.email); | ||
42 | assert.equal(exportData.services.length, user.services.length); | ||
43 | }); | ||
44 | |||
45 | // TODO: We can improve this test by hard checking the export data | ||
46 | test('returns a correct export with workspace data', async ({ | ||
47 | assert, | ||
48 | client, | ||
49 | }) => { | ||
50 | const user = await UserFactory.with('workspaces', 5).create(); | ||
51 | const response = await client.get('/user/export').loginAs(user); | ||
52 | |||
53 | response.assertStatus(200); | ||
54 | const exportData = JSON.parse(response.text()); | ||
55 | |||
56 | assert.equal(exportData.username, user.username); | ||
57 | assert.equal(exportData.lastname, user.lastname); | ||
58 | assert.equal(exportData.mail, user.email); | ||
59 | assert.equal(exportData.workspaces.length, user.workspaces.length); | ||
60 | }); | ||
61 | }); | ||
diff --git a/tests/functional/dashboard/forgot-password.spec.ts b/tests/functional/dashboard/forgot-password.spec.ts new file mode 100644 index 0000000..9dcec5a --- /dev/null +++ b/tests/functional/dashboard/forgot-password.spec.ts | |||
@@ -0,0 +1,70 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | import Event from '@ioc:Adonis/Core/Event'; | ||
3 | import UserFactory from 'Database/factories/UserFactory'; | ||
4 | |||
5 | test.group('Dashboard / Forgot password page', () => { | ||
6 | test('returns a 200 opening the forgot password route', async ({ | ||
7 | client, | ||
8 | }) => { | ||
9 | const response = await client.get('/user/forgot'); | ||
10 | |||
11 | response.assertStatus(200); | ||
12 | response.assertTextIncludes('Forgot Password?'); | ||
13 | }); | ||
14 | |||
15 | test('returns `Please enter a valid email address` when providing invalid email', async ({ | ||
16 | client, | ||
17 | }) => { | ||
18 | const response = await client.post('/user/forgot').fields({ | ||
19 | mail: 'invalid', | ||
20 | }); | ||
21 | |||
22 | response.assertStatus(200); | ||
23 | response.assertTextIncludes('Please enter a valid email address'); | ||
24 | }); | ||
25 | |||
26 | test('returns `email send when exists` without forgot:password event', async ({ | ||
27 | client, | ||
28 | assert, | ||
29 | }) => { | ||
30 | const emitter = Event.fake(); | ||
31 | |||
32 | const response = await client.post('/user/forgot').fields({ | ||
33 | mail: 'test@ferdium.org', | ||
34 | }); | ||
35 | |||
36 | response.assertStatus(200); | ||
37 | response.assertTextIncludes( | ||
38 | 'If your provided E-Mail address is linked to an account, we have just sent an E-Mail to that address.', | ||
39 | ); | ||
40 | |||
41 | assert.isFalse(emitter.exists('forgot:password')); | ||
42 | }); | ||
43 | |||
44 | test('returns `email send when exists` and trigger forgot:password event', async ({ | ||
45 | client, | ||
46 | assert, | ||
47 | }) => { | ||
48 | const emitter = Event.fake(); | ||
49 | const user = await UserFactory.merge({ | ||
50 | email: 'test+forgot_password@ferdium.org', | ||
51 | }).create(); | ||
52 | |||
53 | const response = await client.post('/user/forgot').fields({ | ||
54 | mail: 'test+forgot_password@ferdium.org', | ||
55 | }); | ||
56 | |||
57 | response.assertStatus(200); | ||
58 | response.assertTextIncludes( | ||
59 | 'If your provided E-Mail address is linked to an account, we have just sent an E-Mail to that address.', | ||
60 | ); | ||
61 | |||
62 | assert.isTrue( | ||
63 | emitter.exists( | ||
64 | event => | ||
65 | event.name === 'forgot:password' && | ||
66 | event.data.user.email === user.email, | ||
67 | ), | ||
68 | ); | ||
69 | }); | ||
70 | }); | ||
diff --git a/tests/functional/dashboard/import-stubs/invalid.json b/tests/functional/dashboard/import-stubs/invalid.json new file mode 100644 index 0000000..86d11fa --- /dev/null +++ b/tests/functional/dashboard/import-stubs/invalid.json | |||
@@ -0,0 +1 @@ | |||
Lorum ipsum | |||
diff --git a/tests/functional/dashboard/import-stubs/random-file.txt b/tests/functional/dashboard/import-stubs/random-file.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/functional/dashboard/import-stubs/random-file.txt | |||
diff --git a/tests/functional/dashboard/import-stubs/services-only.ferdi-data b/tests/functional/dashboard/import-stubs/services-only.ferdi-data new file mode 100644 index 0000000..d95f3ef --- /dev/null +++ b/tests/functional/dashboard/import-stubs/services-only.ferdi-data | |||
@@ -0,0 +1,38 @@ | |||
1 | { | ||
2 | "username": "John", | ||
3 | "lastname": "Doe", | ||
4 | "mail": "john.doe@ferdium.org", | ||
5 | "services": [ | ||
6 | { | ||
7 | "id": 5641, | ||
8 | "userId": "1234", | ||
9 | "serviceId": "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
10 | "name": "random-service-1", | ||
11 | "recipeId": "random-service-1", | ||
12 | "settings": "{}", | ||
13 | "created_at": "2022-06-21 08:29:13", | ||
14 | "updated_at": "2022-07-19 15:47:16" | ||
15 | }, | ||
16 | { | ||
17 | "id": 2134, | ||
18 | "userId": "1234", | ||
19 | "serviceId": "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
20 | "name": "random-service-1", | ||
21 | "recipeId": "random-service-1", | ||
22 | "settings": "{}", | ||
23 | "created_at": "2022-06-21 08:29:13", | ||
24 | "updated_at": "2022-07-19 15:47:16" | ||
25 | }, | ||
26 | { | ||
27 | "id": 5343, | ||
28 | "userId": "1234", | ||
29 | "serviceId": "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
30 | "name": "random-service-1", | ||
31 | "recipeId": "random-service-1", | ||
32 | "settings": "{}", | ||
33 | "created_at": "2022-06-21 08:29:13", | ||
34 | "updated_at": "2022-07-19 15:47:16" | ||
35 | } | ||
36 | ], | ||
37 | "workspaces": [] | ||
38 | } | ||
diff --git a/tests/functional/dashboard/import-stubs/services-only.ferdium-data b/tests/functional/dashboard/import-stubs/services-only.ferdium-data new file mode 100644 index 0000000..d95f3ef --- /dev/null +++ b/tests/functional/dashboard/import-stubs/services-only.ferdium-data | |||
@@ -0,0 +1,38 @@ | |||
1 | { | ||
2 | "username": "John", | ||
3 | "lastname": "Doe", | ||
4 | "mail": "john.doe@ferdium.org", | ||
5 | "services": [ | ||
6 | { | ||
7 | "id": 5641, | ||
8 | "userId": "1234", | ||
9 | "serviceId": "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
10 | "name": "random-service-1", | ||
11 | "recipeId": "random-service-1", | ||
12 | "settings": "{}", | ||
13 | "created_at": "2022-06-21 08:29:13", | ||
14 | "updated_at": "2022-07-19 15:47:16" | ||
15 | }, | ||
16 | { | ||
17 | "id": 2134, | ||
18 | "userId": "1234", | ||
19 | "serviceId": "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
20 | "name": "random-service-1", | ||
21 | "recipeId": "random-service-1", | ||
22 | "settings": "{}", | ||
23 | "created_at": "2022-06-21 08:29:13", | ||
24 | "updated_at": "2022-07-19 15:47:16" | ||
25 | }, | ||
26 | { | ||
27 | "id": 5343, | ||
28 | "userId": "1234", | ||
29 | "serviceId": "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
30 | "name": "random-service-1", | ||
31 | "recipeId": "random-service-1", | ||
32 | "settings": "{}", | ||
33 | "created_at": "2022-06-21 08:29:13", | ||
34 | "updated_at": "2022-07-19 15:47:16" | ||
35 | } | ||
36 | ], | ||
37 | "workspaces": [] | ||
38 | } | ||
diff --git a/tests/functional/dashboard/import-stubs/services-only.json b/tests/functional/dashboard/import-stubs/services-only.json new file mode 100644 index 0000000..d95f3ef --- /dev/null +++ b/tests/functional/dashboard/import-stubs/services-only.json | |||
@@ -0,0 +1,38 @@ | |||
1 | { | ||
2 | "username": "John", | ||
3 | "lastname": "Doe", | ||
4 | "mail": "john.doe@ferdium.org", | ||
5 | "services": [ | ||
6 | { | ||
7 | "id": 5641, | ||
8 | "userId": "1234", | ||
9 | "serviceId": "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
10 | "name": "random-service-1", | ||
11 | "recipeId": "random-service-1", | ||
12 | "settings": "{}", | ||
13 | "created_at": "2022-06-21 08:29:13", | ||
14 | "updated_at": "2022-07-19 15:47:16" | ||
15 | }, | ||
16 | { | ||
17 | "id": 2134, | ||
18 | "userId": "1234", | ||
19 | "serviceId": "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
20 | "name": "random-service-1", | ||
21 | "recipeId": "random-service-1", | ||
22 | "settings": "{}", | ||
23 | "created_at": "2022-06-21 08:29:13", | ||
24 | "updated_at": "2022-07-19 15:47:16" | ||
25 | }, | ||
26 | { | ||
27 | "id": 5343, | ||
28 | "userId": "1234", | ||
29 | "serviceId": "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
30 | "name": "random-service-1", | ||
31 | "recipeId": "random-service-1", | ||
32 | "settings": "{}", | ||
33 | "created_at": "2022-06-21 08:29:13", | ||
34 | "updated_at": "2022-07-19 15:47:16" | ||
35 | } | ||
36 | ], | ||
37 | "workspaces": [] | ||
38 | } | ||
diff --git a/tests/functional/dashboard/import-stubs/services-workspaces.ferdi-data b/tests/functional/dashboard/import-stubs/services-workspaces.ferdi-data new file mode 100644 index 0000000..750e6ca --- /dev/null +++ b/tests/functional/dashboard/import-stubs/services-workspaces.ferdi-data | |||
@@ -0,0 +1,61 @@ | |||
1 | { | ||
2 | "username": "John", | ||
3 | "lastname": "Doe", | ||
4 | "mail": "john.doe@ferdium.org", | ||
5 | "services": [ | ||
6 | { | ||
7 | "id": 5641, | ||
8 | "userId": "1234", | ||
9 | "serviceId": "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
10 | "name": "random-service-1", | ||
11 | "recipeId": "random-service-1", | ||
12 | "settings": "{}", | ||
13 | "created_at": "2022-06-21 08:29:13", | ||
14 | "updated_at": "2022-07-19 15:47:16" | ||
15 | }, | ||
16 | { | ||
17 | "id": 2134, | ||
18 | "userId": "1234", | ||
19 | "serviceId": "79769de5-a998-4af1-b7d0-89956a15b0ed", | ||
20 | "name": "random-service-2", | ||
21 | "recipeId": "random-service-2", | ||
22 | "settings": "{}", | ||
23 | "created_at": "2022-06-21 08:29:13", | ||
24 | "updated_at": "2022-07-19 15:47:16" | ||
25 | }, | ||
26 | { | ||
27 | "id": 5343, | ||
28 | "userId": "1234", | ||
29 | "serviceId": "0ac973f8-40dc-4760-b2c2-55e1d2943747", | ||
30 | "name": "random-service-3", | ||
31 | "recipeId": "random-service-3", | ||
32 | "settings": "{}", | ||
33 | "created_at": "2022-06-21 08:29:13", | ||
34 | "updated_at": "2022-07-19 15:47:16" | ||
35 | } | ||
36 | ], | ||
37 | "workspaces": [ | ||
38 | { | ||
39 | "name": "workspace1", | ||
40 | "order": 0, | ||
41 | "services": [], | ||
42 | "data": "{\"name\":\"workspace1\"}" | ||
43 | }, | ||
44 | { | ||
45 | "name": "workspace2", | ||
46 | "order": 0, | ||
47 | "services": ["d6901fff-ec44-4251-93de-d7103ed9c44b", "79769de5-a998-4af1-b7d0-89956a15b0ed"], | ||
48 | "data": "{\"name\":\"workspace2\"}" | ||
49 | }, | ||
50 | { | ||
51 | "name": "workspace3", | ||
52 | "order": 0, | ||
53 | "services": [ | ||
54 | "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
55 | "79769de5-a998-4af1-b7d0-89956a15b0ed", | ||
56 | "0ac973f8-40dc-4760-b2c2-55e1d2943747" | ||
57 | ], | ||
58 | "data": "{\"name\":\"workspace3\"}" | ||
59 | } | ||
60 | ] | ||
61 | } | ||
diff --git a/tests/functional/dashboard/import-stubs/services-workspaces.ferdium-data b/tests/functional/dashboard/import-stubs/services-workspaces.ferdium-data new file mode 100644 index 0000000..e999c0d --- /dev/null +++ b/tests/functional/dashboard/import-stubs/services-workspaces.ferdium-data | |||
@@ -0,0 +1,61 @@ | |||
1 | { | ||
2 | "username": "John", | ||
3 | "lastname": "Doe", | ||
4 | "mail": "john.doe@ferdium.org", | ||
5 | "services": [ | ||
6 | { | ||
7 | "id": 5641, | ||
8 | "userId": "1234", | ||
9 | "serviceId": "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
10 | "name": "random-service-1", | ||
11 | "recipeId": "random-service-1", | ||
12 | "settings": "{}", | ||
13 | "created_at": "2022-06-21 08:29:13", | ||
14 | "updated_at": "2022-07-19 15:47:16" | ||
15 | }, | ||
16 | { | ||
17 | "id": 2134, | ||
18 | "userId": "1234", | ||
19 | "serviceId": "79769de5-a998-4af1-b7d0-89956a15b0ed", | ||
20 | "name": "random-service-2", | ||
21 | "recipeId": "random-service-2", | ||
22 | "settings": "{}", | ||
23 | "created_at": "2022-06-21 08:29:13", | ||
24 | "updated_at": "2022-07-19 15:47:16" | ||
25 | }, | ||
26 | { | ||
27 | "id": 5343, | ||
28 | "userId": "1234", | ||
29 | "serviceId": "0ac973f8-40dc-4760-b2c2-55e1d2943747", | ||
30 | "name": "random-service-3", | ||
31 | "recipeId": "random-service-2", | ||
32 | "settings": "{}", | ||
33 | "created_at": "2022-06-21 08:29:13", | ||
34 | "updated_at": "2022-07-19 15:47:16" | ||
35 | } | ||
36 | ], | ||
37 | "workspaces": [ | ||
38 | { | ||
39 | "name": "workspace1", | ||
40 | "order": 0, | ||
41 | "services": [], | ||
42 | "data": "{\"name\":\"workspace1\"}" | ||
43 | }, | ||
44 | { | ||
45 | "name": "workspace2", | ||
46 | "order": 0, | ||
47 | "services": ["d6901fff-ec44-4251-93de-d7103ed9c44b", "79769de5-a998-4af1-b7d0-89956a15b0ed"], | ||
48 | "data": "{\"name\":\"workspace2\"}" | ||
49 | }, | ||
50 | { | ||
51 | "name": "workspace3", | ||
52 | "order": 0, | ||
53 | "services": [ | ||
54 | "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
55 | "79769de5-a998-4af1-b7d0-89956a15b0ed", | ||
56 | "0ac973f8-40dc-4760-b2c2-55e1d2943747" | ||
57 | ], | ||
58 | "data": "{\"name\":\"workspace3\"}" | ||
59 | } | ||
60 | ] | ||
61 | } | ||
diff --git a/tests/functional/dashboard/import-stubs/services-workspaces.json b/tests/functional/dashboard/import-stubs/services-workspaces.json new file mode 100644 index 0000000..54c6889 --- /dev/null +++ b/tests/functional/dashboard/import-stubs/services-workspaces.json | |||
@@ -0,0 +1,64 @@ | |||
1 | { | ||
2 | "username": "John", | ||
3 | "lastname": "Doe", | ||
4 | "mail": "john.doe@ferdium.org", | ||
5 | "services": [ | ||
6 | { | ||
7 | "id": 5641, | ||
8 | "userId": "1234", | ||
9 | "serviceId": "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
10 | "name": "random-service-1", | ||
11 | "recipeId": "random-service-1", | ||
12 | "settings": "{}", | ||
13 | "created_at": "2022-06-21 08:29:13", | ||
14 | "updated_at": "2022-07-19 15:47:16" | ||
15 | }, | ||
16 | { | ||
17 | "id": 2134, | ||
18 | "userId": "1234", | ||
19 | "serviceId": "79769de5-a998-4af1-b7d0-89956a15b0ed", | ||
20 | "name": "random-service-2", | ||
21 | "recipeId": "random-service-2", | ||
22 | "settings": "{}", | ||
23 | "created_at": "2022-06-21 08:29:13", | ||
24 | "updated_at": "2022-07-19 15:47:16" | ||
25 | }, | ||
26 | { | ||
27 | "id": 5343, | ||
28 | "userId": "1234", | ||
29 | "serviceId": "0ac973f8-40dc-4760-b2c2-55e1d2943747", | ||
30 | "name": "random-service-3", | ||
31 | "recipeId": "random-service-3", | ||
32 | "settings": "{}", | ||
33 | "created_at": "2022-06-21 08:29:13", | ||
34 | "updated_at": "2022-07-19 15:47:16" | ||
35 | } | ||
36 | ], | ||
37 | "workspaces": [ | ||
38 | { | ||
39 | "name": "workspace1", | ||
40 | "order": 0, | ||
41 | "services": [], | ||
42 | "data": "{\"name\":\"workspace1\"}" | ||
43 | }, | ||
44 | { | ||
45 | "name": "workspace2", | ||
46 | "order": 0, | ||
47 | "services": [ | ||
48 | "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
49 | "79769de5-a998-4af1-b7d0-89956a15b0ed" | ||
50 | ], | ||
51 | "data": "{\"name\":\"workspace2\"}" | ||
52 | }, | ||
53 | { | ||
54 | "name": "workspace3", | ||
55 | "order": 0, | ||
56 | "services": [ | ||
57 | "d6901fff-ec44-4251-93de-d7103ed9c44b", | ||
58 | "79769de5-a998-4af1-b7d0-89956a15b0ed", | ||
59 | "0ac973f8-40dc-4760-b2c2-55e1d2943747" | ||
60 | ], | ||
61 | "data": "{\"name\":\"workspace3\"}" | ||
62 | } | ||
63 | ] | ||
64 | } | ||
diff --git a/tests/functional/dashboard/import-stubs/valid-no-data.json b/tests/functional/dashboard/import-stubs/valid-no-data.json new file mode 100644 index 0000000..8d4816f --- /dev/null +++ b/tests/functional/dashboard/import-stubs/valid-no-data.json | |||
@@ -0,0 +1,3 @@ | |||
1 | { | ||
2 | "test": "value" | ||
3 | } | ||
diff --git a/tests/functional/dashboard/import-stubs/workspaces-only.ferdi-data b/tests/functional/dashboard/import-stubs/workspaces-only.ferdi-data new file mode 100644 index 0000000..13ea9c6 --- /dev/null +++ b/tests/functional/dashboard/import-stubs/workspaces-only.ferdi-data | |||
@@ -0,0 +1,26 @@ | |||
1 | { | ||
2 | "username": "John", | ||
3 | "lastname": "Doe", | ||
4 | "mail": "john.doe@ferdium.org", | ||
5 | "services": [], | ||
6 | "workspaces": [ | ||
7 | { | ||
8 | "name": "workspace1", | ||
9 | "order": 0, | ||
10 | "services": [], | ||
11 | "data": "{\"name\":\"workspace1\"}" | ||
12 | }, | ||
13 | { | ||
14 | "name": "workspace2", | ||
15 | "order": 0, | ||
16 | "services": [], | ||
17 | "data": "{\"name\":\"workspace2\"}" | ||
18 | }, | ||
19 | { | ||
20 | "name": "workspace3", | ||
21 | "order": 0, | ||
22 | "services": [], | ||
23 | "data": "{\"name\":\"workspace3\"}" | ||
24 | } | ||
25 | ] | ||
26 | } | ||
diff --git a/tests/functional/dashboard/import-stubs/workspaces-only.ferdium-data b/tests/functional/dashboard/import-stubs/workspaces-only.ferdium-data new file mode 100644 index 0000000..13ea9c6 --- /dev/null +++ b/tests/functional/dashboard/import-stubs/workspaces-only.ferdium-data | |||
@@ -0,0 +1,26 @@ | |||
1 | { | ||
2 | "username": "John", | ||
3 | "lastname": "Doe", | ||
4 | "mail": "john.doe@ferdium.org", | ||
5 | "services": [], | ||
6 | "workspaces": [ | ||
7 | { | ||
8 | "name": "workspace1", | ||
9 | "order": 0, | ||
10 | "services": [], | ||
11 | "data": "{\"name\":\"workspace1\"}" | ||
12 | }, | ||
13 | { | ||
14 | "name": "workspace2", | ||
15 | "order": 0, | ||
16 | "services": [], | ||
17 | "data": "{\"name\":\"workspace2\"}" | ||
18 | }, | ||
19 | { | ||
20 | "name": "workspace3", | ||
21 | "order": 0, | ||
22 | "services": [], | ||
23 | "data": "{\"name\":\"workspace3\"}" | ||
24 | } | ||
25 | ] | ||
26 | } | ||
diff --git a/tests/functional/dashboard/import-stubs/workspaces-only.json b/tests/functional/dashboard/import-stubs/workspaces-only.json new file mode 100644 index 0000000..13ea9c6 --- /dev/null +++ b/tests/functional/dashboard/import-stubs/workspaces-only.json | |||
@@ -0,0 +1,26 @@ | |||
1 | { | ||
2 | "username": "John", | ||
3 | "lastname": "Doe", | ||
4 | "mail": "john.doe@ferdium.org", | ||
5 | "services": [], | ||
6 | "workspaces": [ | ||
7 | { | ||
8 | "name": "workspace1", | ||
9 | "order": 0, | ||
10 | "services": [], | ||
11 | "data": "{\"name\":\"workspace1\"}" | ||
12 | }, | ||
13 | { | ||
14 | "name": "workspace2", | ||
15 | "order": 0, | ||
16 | "services": [], | ||
17 | "data": "{\"name\":\"workspace2\"}" | ||
18 | }, | ||
19 | { | ||
20 | "name": "workspace3", | ||
21 | "order": 0, | ||
22 | "services": [], | ||
23 | "data": "{\"name\":\"workspace3\"}" | ||
24 | } | ||
25 | ] | ||
26 | } | ||
diff --git a/tests/functional/dashboard/login.spec.ts b/tests/functional/dashboard/login.spec.ts new file mode 100644 index 0000000..adae66a --- /dev/null +++ b/tests/functional/dashboard/login.spec.ts | |||
@@ -0,0 +1,65 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | import UserFactory from 'Database/factories/UserFactory'; | ||
3 | |||
4 | test.group('Dashboard / Login page', () => { | ||
5 | test('returns a 200 opening the login route', async ({ client }) => { | ||
6 | const response = await client.get('/user/login'); | ||
7 | |||
8 | response.assertStatus(200); | ||
9 | }); | ||
10 | |||
11 | test('returns `invalid mail or password` when validation fails', async ({ | ||
12 | client, | ||
13 | }) => { | ||
14 | const response = await client.post('/user/login').fields({ | ||
15 | mail: 'invalid', | ||
16 | password: 'invalid', | ||
17 | }); | ||
18 | |||
19 | response.assertRedirectsTo('/user/login'); | ||
20 | response.assertTextIncludes('Invalid mail or password'); | ||
21 | }); | ||
22 | |||
23 | test('returns `invalid mail or password` when account is not found', async ({ | ||
24 | client, | ||
25 | }) => { | ||
26 | const response = await client.post('/user/login').fields({ | ||
27 | mail: 'test+notexistingpassword@ferdium.org', | ||
28 | password: 'notexistingpassword', | ||
29 | }); | ||
30 | |||
31 | response.assertRedirectsTo('/user/login'); | ||
32 | response.assertTextIncludes('Invalid mail or password'); | ||
33 | }); | ||
34 | |||
35 | test('returns `invalid mail or password` when password is not valid', async ({ | ||
36 | client, | ||
37 | }) => { | ||
38 | await UserFactory.merge({ | ||
39 | email: 'test@ferdium.org', | ||
40 | }).create(); | ||
41 | |||
42 | const response = await client.post('/user/login').fields({ | ||
43 | mail: 'test+invalid_password@ferdium.org', | ||
44 | password: 'invalid_password', | ||
45 | }); | ||
46 | |||
47 | response.assertRedirectsTo('/user/login'); | ||
48 | response.assertTextIncludes('Invalid mail or password'); | ||
49 | }); | ||
50 | |||
51 | test('redirects to account page when user is able to login', async ({ | ||
52 | client, | ||
53 | }) => { | ||
54 | await UserFactory.merge({ | ||
55 | email: 'test+password@ferdium.org', | ||
56 | }).create(); | ||
57 | |||
58 | const response = await client.post('/user/login').fields({ | ||
59 | mail: 'test+password@ferdium.org', | ||
60 | password: 'password', | ||
61 | }); | ||
62 | |||
63 | response.assertRedirectsTo('/user/account'); | ||
64 | }); | ||
65 | }); | ||
diff --git a/tests/functional/dashboard/logout.spec.ts b/tests/functional/dashboard/logout.spec.ts new file mode 100644 index 0000000..a45ee72 --- /dev/null +++ b/tests/functional/dashboard/logout.spec.ts | |||
@@ -0,0 +1,21 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | import UserFactory from 'Database/factories/UserFactory'; | ||
3 | |||
4 | test.group('Dashboard / Log out page', () => { | ||
5 | test('redirects to /user/login when accessing /user/logout as guest', async ({ | ||
6 | client, | ||
7 | }) => { | ||
8 | const response = await client.get('/user/logout'); | ||
9 | |||
10 | response.assertRedirectsTo('/user/login'); // Check if it redirects to the expected URL | ||
11 | }); | ||
12 | |||
13 | test('logs the user out when opening the page', async ({ client }) => { | ||
14 | const user = await UserFactory.create(); | ||
15 | const response = await client.get('/user/logout').loginAs(user); | ||
16 | |||
17 | response.assertRedirectsTo('/user/login'); | ||
18 | // This asserts the session is deleted as well | ||
19 | response.assertSessionMissing('auth_web'); | ||
20 | }); | ||
21 | }); | ||
diff --git a/tests/functional/dashboard/reset-password.spec.ts b/tests/functional/dashboard/reset-password.spec.ts new file mode 100644 index 0000000..e488482 --- /dev/null +++ b/tests/functional/dashboard/reset-password.spec.ts | |||
@@ -0,0 +1,122 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | import Token from 'App/Models/Token'; | ||
3 | import UserFactory from 'Database/factories/UserFactory'; | ||
4 | import TokenFactory from 'Database/factories/TokenFactory'; | ||
5 | |||
6 | test.group('Dashboard / Reset password page', () => { | ||
7 | test('returns a `Invalid token` message when opening without a token', async ({ | ||
8 | client, | ||
9 | }) => { | ||
10 | const response = await client.get('/user/reset'); | ||
11 | |||
12 | response.assertStatus(200); | ||
13 | response.assertTextIncludes('Invalid token'); | ||
14 | }); | ||
15 | |||
16 | test('displays the form when a token is provided', async ({ client }) => { | ||
17 | const response = await client.get( | ||
18 | '/user/reset?token=randomtokenbutitworks', | ||
19 | ); | ||
20 | |||
21 | response.assertStatus(200); | ||
22 | response.assertTextIncludes('Reset Your Password'); | ||
23 | }); | ||
24 | |||
25 | test('returns `passwords do not match` message when passwords do not match', async ({ | ||
26 | client, | ||
27 | }) => { | ||
28 | const response = await client.post('/user/reset').fields({ | ||
29 | token: 'randomnotworkingtoken', | ||
30 | password: 'password', | ||
31 | password_confirmation: 'not_matching', | ||
32 | }); | ||
33 | |||
34 | response.assertTextIncludes('Passwords do not match'); | ||
35 | }); | ||
36 | |||
37 | test('returns `Cannot reset your password` when token does not exist', async ({ | ||
38 | client, | ||
39 | }) => { | ||
40 | const response = await client.post('/user/reset').fields({ | ||
41 | token: 'randomnotworkingtoken', | ||
42 | password: 'password', | ||
43 | password_confirmation: 'password', | ||
44 | }); | ||
45 | |||
46 | response.assertTextIncludes('Cannot reset your password'); | ||
47 | }); | ||
48 | |||
49 | test('returns `Cannot reset your password` when token is older than 24 hours', async ({ | ||
50 | client, | ||
51 | }) => { | ||
52 | const token = await TokenFactory.merge({ | ||
53 | // eslint-disable-next-line unicorn/no-await-expression-member | ||
54 | user_id: (await UserFactory.create()).id, | ||
55 | }) | ||
56 | .apply('old_token') | ||
57 | .create(); | ||
58 | |||
59 | const response = await client.post('/user/reset').fields({ | ||
60 | token: token.token, | ||
61 | password: 'password', | ||
62 | password_confirmation: 'password', | ||
63 | }); | ||
64 | |||
65 | response.assertTextIncludes('Cannot reset your password'); | ||
66 | }); | ||
67 | |||
68 | test('returns `Cannot reset your password` when token is revoked', async ({ | ||
69 | client, | ||
70 | }) => { | ||
71 | const token = await TokenFactory.merge({ | ||
72 | // eslint-disable-next-line unicorn/no-await-expression-member | ||
73 | user_id: (await UserFactory.create()).id, | ||
74 | }) | ||
75 | .apply('revoked') | ||
76 | .create(); | ||
77 | |||
78 | const response = await client.post('/user/reset').fields({ | ||
79 | token: token.token, | ||
80 | password: 'password', | ||
81 | password_confirmation: 'password', | ||
82 | }); | ||
83 | |||
84 | response.assertTextIncludes('Cannot reset your password'); | ||
85 | }); | ||
86 | |||
87 | test('correctly resets password and deletes token and able to login with new password', async ({ | ||
88 | client, | ||
89 | assert, | ||
90 | }) => { | ||
91 | const userEmail = 'working-reset-password-login@ferdium.org'; | ||
92 | const token = await TokenFactory.merge({ | ||
93 | user_id: | ||
94 | ( | ||
95 | await UserFactory.merge({ | ||
96 | email: userEmail, | ||
97 | }).create() | ||
98 | // prettier-ignore | ||
99 | // eslint-disable-next-line unicorn/no-await-expression-member | ||
100 | ).id, | ||
101 | }).create(); | ||
102 | |||
103 | const response = await client.post('/user/reset').fields({ | ||
104 | token: token.token, | ||
105 | password: 'new_password', | ||
106 | password_confirmation: 'new_password', | ||
107 | }); | ||
108 | |||
109 | // Assert response is as expected | ||
110 | response.assertTextIncludes('Successfully reset your password'); | ||
111 | |||
112 | // Token should be deleted from database | ||
113 | assert.isNull(await Token.query().where('token', token.token).first()); | ||
114 | |||
115 | const loginResponse = await client.post('/user/login').fields({ | ||
116 | mail: userEmail, | ||
117 | password: 'new_password', | ||
118 | }); | ||
119 | |||
120 | loginResponse.assertRedirectsTo('/user/account'); | ||
121 | }); | ||
122 | }); | ||
diff --git a/tests/functional/dashboard/transfer.spec.ts b/tests/functional/dashboard/transfer.spec.ts new file mode 100644 index 0000000..0f8ee31 --- /dev/null +++ b/tests/functional/dashboard/transfer.spec.ts | |||
@@ -0,0 +1,222 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | import UserFactory from 'Database/factories/UserFactory'; | ||
3 | |||
4 | test.group('Dashboard / Transfer page', () => { | ||
5 | test('redirects to /user/login when accessing /user/transfer as guest', async ({ | ||
6 | client, | ||
7 | }) => { | ||
8 | const response = await client.get('/user/transfer'); | ||
9 | |||
10 | response.assertRedirectsTo('/user/login'); // Check if it redirects to the expected URL | ||
11 | }); | ||
12 | |||
13 | test('returns a 200 opening the transfer route while being logged in', async ({ | ||
14 | client, | ||
15 | }) => { | ||
16 | const user = await UserFactory.create(); | ||
17 | const response = await client.get('/user/transfer').loginAs(user); | ||
18 | |||
19 | response.assertStatus(200); | ||
20 | }); | ||
21 | |||
22 | // TODO: Fix the following tests | ||
23 | |||
24 | // test('returns a validation error when not uploading a file', async ({ | ||
25 | // client, | ||
26 | // }) => { | ||
27 | // const user = await UserFactory.create(); | ||
28 | // const response = await client.put('/user/transfer').loginAs(user); | ||
29 | |||
30 | // response.assertTextIncludes('File missing'); | ||
31 | // }); | ||
32 | |||
33 | // test('returns a validation error when trying to use anything but json', async ({ | ||
34 | // client, | ||
35 | // }) => { | ||
36 | // const user = await UserFactory.create(); | ||
37 | // const response = await client | ||
38 | // .put('/user/transfer') | ||
39 | // .loginAs(user) | ||
40 | // .file('file', 'tests/functional/dashboard/import-stubs/random-file.txt', { | ||
41 | // filename: 'random-file.txt', | ||
42 | // }); | ||
43 | |||
44 | // response.assertTextIncludes('File missing'); | ||
45 | // }); | ||
46 | |||
47 | // test('returns a validation error when trying to use anything valid json', async ({ | ||
48 | // client, | ||
49 | // }) => { | ||
50 | // const user = await UserFactory.create(); | ||
51 | // const response = await client | ||
52 | // .put('/user/transfer') | ||
53 | // .loginAs(user) | ||
54 | // .file('file', 'tests/functional/dashboard/import-stubs/invalid.json', { | ||
55 | // filename: 'invalid.json', | ||
56 | // }); | ||
57 | |||
58 | // response.assertTextIncludes('Invalid Ferdium account file'); | ||
59 | // }); | ||
60 | |||
61 | // test('returns a validation error when trying to use a json file with no ferdium structure', async ({ | ||
62 | // client, | ||
63 | // }) => { | ||
64 | // const user = await UserFactory.create(); | ||
65 | // const response = await client | ||
66 | // .put('/user/transfer') | ||
67 | // .loginAs(user) | ||
68 | // .file( | ||
69 | // 'file', | ||
70 | // 'tests/functional/dashboard/import-stubs/valid-no-data.json', | ||
71 | // { | ||
72 | // filename: 'valid-no-data.json', | ||
73 | // }, | ||
74 | // ); | ||
75 | |||
76 | // response.assertTextIncludes('Invalid Ferdium account file (2)'); | ||
77 | // }); | ||
78 | |||
79 | // test('correctly transfers data from json/ferdi-data and ferdium-data file with only workspaces', async ({ | ||
80 | // client, | ||
81 | // assert, | ||
82 | // }) => { | ||
83 | // // Repeat for all 3 file extension | ||
84 | // const files = [ | ||
85 | // 'workspaces-only.json', | ||
86 | // 'workspaces-only.ferdi-data', | ||
87 | // 'workspaces-only.ferdium-data', | ||
88 | // ]; | ||
89 | |||
90 | // for (const file of files) { | ||
91 | // // eslint-disable-next-line no-await-in-loop | ||
92 | // const user = await UserFactory.create(); | ||
93 | // // eslint-disable-next-line no-await-in-loop | ||
94 | // const response = await client | ||
95 | // .put('/user/transfer') | ||
96 | // .loginAs(user) | ||
97 | // .file('file', `tests/functional/dashboard/import-stubs/${file}`, { | ||
98 | // filename: file, | ||
99 | // }); | ||
100 | |||
101 | // response.assertTextIncludes( | ||
102 | // 'Your account has been imported, you can now login as usual!', | ||
103 | // ); | ||
104 | // // eslint-disable-next-line no-await-in-loop | ||
105 | // await user.refresh(); | ||
106 | |||
107 | // // eslint-disable-next-line no-await-in-loop | ||
108 | // const workspacesForUser = await user.related('workspaces').query(); | ||
109 | // assert.equal(workspacesForUser.length, 3); | ||
110 | // } | ||
111 | // }); | ||
112 | |||
113 | // test('correctly transfers data from json/ferdi-data and ferdium-data file with only services', async ({ | ||
114 | // client, | ||
115 | // assert, | ||
116 | // }) => { | ||
117 | // // Repeat for all 3 file extension | ||
118 | // const files = [ | ||
119 | // 'services-only.json', | ||
120 | // 'services-only.ferdi-data', | ||
121 | // 'services-only.ferdium-data', | ||
122 | // ]; | ||
123 | |||
124 | // for (const file of files) { | ||
125 | // // eslint-disable-next-line no-await-in-loop | ||
126 | // const user = await UserFactory.create(); | ||
127 | // // eslint-disable-next-line no-await-in-loop | ||
128 | // const response = await client | ||
129 | // .put('/user/transfer') | ||
130 | // .loginAs(user) | ||
131 | // .file('file', `tests/functional/dashboard/import-stubs/${file}`, { | ||
132 | // filename: file, | ||
133 | // }); | ||
134 | |||
135 | // response.assertTextIncludes( | ||
136 | // 'Your account has been imported, you can now login as usual!', | ||
137 | // ); | ||
138 | // // eslint-disable-next-line no-await-in-loop | ||
139 | // await user.refresh(); | ||
140 | |||
141 | // // eslint-disable-next-line no-await-in-loop | ||
142 | // const servicesForUser = await user.related('services').query(); | ||
143 | // assert.equal(servicesForUser.length, 3); | ||
144 | // } | ||
145 | // }); | ||
146 | |||
147 | // test('correctly transfers data from json/ferdi-data and ferdium-data file with workspaces and services', async ({ | ||
148 | // client, | ||
149 | // assert, | ||
150 | // }) => { | ||
151 | // // Repeat for all 3 file extension | ||
152 | // const files = [ | ||
153 | // 'services-workspaces.json', | ||
154 | // 'services-workspaces.ferdi-data', | ||
155 | // 'services-workspaces.ferdium-data', | ||
156 | // ]; | ||
157 | |||
158 | // for (const file of files) { | ||
159 | // // eslint-disable-next-line no-await-in-loop | ||
160 | // const user = await UserFactory.create(); | ||
161 | // // eslint-disable-next-line no-await-in-loop | ||
162 | // const response = await client | ||
163 | // .put('/user/transfer') | ||
164 | // .loginAs(user) | ||
165 | // .file('file', `tests/functional/dashboard/import-stubs/${file}`, { | ||
166 | // filename: file, | ||
167 | // }); | ||
168 | |||
169 | // response.assertTextIncludes( | ||
170 | // 'Your account has been imported, you can now login as usual!', | ||
171 | // ); | ||
172 | // // eslint-disable-next-line no-await-in-loop | ||
173 | // await user.refresh(); | ||
174 | |||
175 | // // eslint-disable-next-line no-await-in-loop | ||
176 | // const servicesForUser = await user.related('services').query(); | ||
177 | // // eslint-disable-next-line no-await-in-loop | ||
178 | // const workspacesForUser = await user.related('workspaces').query(); | ||
179 | // assert.equal(servicesForUser.length, 3); | ||
180 | // assert.equal(workspacesForUser.length, 3); | ||
181 | |||
182 | // const firstServiceUuid = servicesForUser.find( | ||
183 | // s => s.name === 'random-service-1', | ||
184 | // )?.serviceId; | ||
185 | // const secondServiceUuid = servicesForUser.find( | ||
186 | // s => s.name === 'random-service-2', | ||
187 | // )?.serviceId; | ||
188 | // const thirdServiceUUid = servicesForUser.find( | ||
189 | // s => s.name === 'random-service-3', | ||
190 | // )?.serviceId; | ||
191 | |||
192 | // // Assert the first workspace to not have any services | ||
193 | // const firstWorkspace = workspacesForUser.find( | ||
194 | // w => w.name === 'workspace1', | ||
195 | // ); | ||
196 | // if (firstWorkspace?.services) { | ||
197 | // assert.empty(JSON.parse(firstWorkspace.services)); | ||
198 | // } | ||
199 | |||
200 | // const secondWorkspace = workspacesForUser.find( | ||
201 | // w => w.name === 'workspace2', | ||
202 | // ); | ||
203 | // if (secondWorkspace?.services) { | ||
204 | // assert.deepEqual(JSON.parse(secondWorkspace.services), [ | ||
205 | // firstServiceUuid, | ||
206 | // secondServiceUuid, | ||
207 | // ]); | ||
208 | // } | ||
209 | |||
210 | // const thirdWorkspace = workspacesForUser.find( | ||
211 | // w => w.name === 'workspace3', | ||
212 | // ); | ||
213 | // if (thirdWorkspace?.services) { | ||
214 | // assert.deepEqual(JSON.parse(thirdWorkspace.services), [ | ||
215 | // firstServiceUuid, | ||
216 | // secondServiceUuid, | ||
217 | // thirdServiceUUid, | ||
218 | // ]); | ||
219 | // } | ||
220 | // } | ||
221 | // }); | ||
222 | }); | ||
diff --git a/tests/functional/health.spec.ts b/tests/functional/health.spec.ts new file mode 100644 index 0000000..2f7e074 --- /dev/null +++ b/tests/functional/health.spec.ts | |||
@@ -0,0 +1,13 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | |||
3 | test.group('health page', () => { | ||
4 | test('returns a 200 response', async ({ client }) => { | ||
5 | const response = await client.get('/health'); | ||
6 | |||
7 | response.assertStatus(200); | ||
8 | response.assertBodyContains({ | ||
9 | api: 'success', | ||
10 | db: 'success', | ||
11 | }); | ||
12 | }); | ||
13 | }); | ||
diff --git a/tests/functional/static-pages/home.spec.ts b/tests/functional/static-pages/home.spec.ts new file mode 100644 index 0000000..5054e05 --- /dev/null +++ b/tests/functional/static-pages/home.spec.ts | |||
@@ -0,0 +1,10 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | |||
3 | test.group('home page', () => { | ||
4 | test('returns a 200 response', async ({ client }) => { | ||
5 | const response = await client.get('/'); | ||
6 | |||
7 | response.assertStatus(200); | ||
8 | response.assertTextIncludes('Go to account dashboard'); | ||
9 | }); | ||
10 | }); | ||
diff --git a/tests/functional/static-pages/privacy.spec.ts b/tests/functional/static-pages/privacy.spec.ts new file mode 100644 index 0000000..f1d5bec --- /dev/null +++ b/tests/functional/static-pages/privacy.spec.ts | |||
@@ -0,0 +1,10 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | |||
3 | test.group('privacy page', () => { | ||
4 | test('returns a 200 response', async ({ client }) => { | ||
5 | const response = await client.get('/privacy'); | ||
6 | |||
7 | response.assertStatus(200); | ||
8 | response.assertTextIncludes('PRIVACY POLICY'); | ||
9 | }); | ||
10 | }); | ||
diff --git a/tests/functional/static-pages/terms.spec.ts b/tests/functional/static-pages/terms.spec.ts new file mode 100644 index 0000000..de990e4 --- /dev/null +++ b/tests/functional/static-pages/terms.spec.ts | |||
@@ -0,0 +1,10 @@ | |||
1 | import { test } from '@japa/runner'; | ||
2 | |||
3 | test.group('terms page', () => { | ||
4 | test('returns a 200 response', async ({ client }) => { | ||
5 | const response = await client.get('/terms'); | ||
6 | |||
7 | response.assertStatus(200); | ||
8 | response.assertTextIncludes('Terms of Service'); | ||
9 | }); | ||
10 | }); | ||
diff --git a/tests/utils.ts b/tests/utils.ts new file mode 100644 index 0000000..14460b9 --- /dev/null +++ b/tests/utils.ts | |||
@@ -0,0 +1,6 @@ | |||
1 | import View from '@ioc:Adonis/Core/View'; | ||
2 | |||
3 | export function fakeCsrfField(): void { | ||
4 | // Create fake csrField function in the view | ||
5 | View.global('csrfField', () => ''); | ||
6 | } | ||
diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..aee7acd --- /dev/null +++ b/tsconfig.json | |||
@@ -0,0 +1,37 @@ | |||
1 | { | ||
2 | "extends": "./node_modules/adonis-preset-ts/tsconfig.json", | ||
3 | "include": ["**/*"], | ||
4 | "exclude": ["node_modules", "build", "recipes"], | ||
5 | "compilerOptions": { | ||
6 | "outDir": "build", | ||
7 | "rootDir": "./", | ||
8 | "strict": true, | ||
9 | "incremental": true, | ||
10 | "paths": { | ||
11 | "App/*": ["./app/*"], | ||
12 | "Config/*": ["./config/*"], | ||
13 | "Contracts/*": ["./contracts/*"], | ||
14 | "Database/*": ["./database/*"] | ||
15 | }, | ||
16 | "types": [ | ||
17 | "@adonisjs/core", | ||
18 | "@adonisjs/repl", | ||
19 | "@japa/preset-adonis/build/adonis-typings", | ||
20 | "@adonisjs/view", | ||
21 | "@adonisjs/lucid", | ||
22 | "@adonisjs/auth", | ||
23 | "@adonisjs/shield", | ||
24 | "@adonisjs/session", | ||
25 | "@adonisjs/mail", | ||
26 | "fs-extra", | ||
27 | "adonis5-jwt" | ||
28 | ], | ||
29 | "sourceMap": true, | ||
30 | "noFallthroughCasesInSwitch": true, | ||
31 | "resolveJsonModule": true, | ||
32 | "forceConsistentCasingInFileNames": true, | ||
33 | "useUnknownInCatchVariables": false, | ||
34 | "noImplicitReturns": true, | ||
35 | "strictPropertyInitialization": false | ||
36 | } | ||
37 | } | ||
diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..9743941 --- /dev/null +++ b/webpack.config.js | |||
@@ -0,0 +1,213 @@ | |||
1 | const { join } = require('node:path'); | ||
2 | const Encore = require('@symfony/webpack-encore'); | ||
3 | |||
4 | /* | ||
5 | |-------------------------------------------------------------------------- | ||
6 | | Encore runtime environment | ||
7 | |-------------------------------------------------------------------------- | ||
8 | */ | ||
9 | if (!Encore.isRuntimeEnvironmentConfigured()) { | ||
10 | Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev'); | ||
11 | } | ||
12 | |||
13 | /* | ||
14 | |-------------------------------------------------------------------------- | ||
15 | | Output path | ||
16 | |-------------------------------------------------------------------------- | ||
17 | | | ||
18 | | The output path for writing the compiled files. It should always | ||
19 | | be inside the public directory, so that AdonisJS can serve it. | ||
20 | | | ||
21 | */ | ||
22 | Encore.setOutputPath('./public/assets'); | ||
23 | |||
24 | /* | ||
25 | |-------------------------------------------------------------------------- | ||
26 | | Public URI | ||
27 | |-------------------------------------------------------------------------- | ||
28 | | | ||
29 | | The public URI to access the static files. It should always be | ||
30 | | relative from the "public" directory. | ||
31 | | | ||
32 | */ | ||
33 | Encore.setPublicPath('/assets'); | ||
34 | |||
35 | /* | ||
36 | |-------------------------------------------------------------------------- | ||
37 | | Entrypoints | ||
38 | |-------------------------------------------------------------------------- | ||
39 | | | ||
40 | | Entrypoints are script files that boots your frontend application. Ideally | ||
41 | | a single entrypoint is used by majority of applications. However, feel | ||
42 | | free to add more (if required). | ||
43 | | | ||
44 | | Also, make sure to read the docs on "Assets bundler" to learn more about | ||
45 | | entrypoints. | ||
46 | | | ||
47 | */ | ||
48 | Encore.addEntry('app', './resources/js/app.js'); | ||
49 | |||
50 | /* | ||
51 | |-------------------------------------------------------------------------- | ||
52 | | Copy assets | ||
53 | |-------------------------------------------------------------------------- | ||
54 | | | ||
55 | | Since the edge templates are not part of the Webpack compile lifecycle, any | ||
56 | | images referenced by it will not be processed by Webpack automatically. Hence | ||
57 | | we must copy them manually. | ||
58 | | | ||
59 | */ | ||
60 | // Encore.copyFiles({ | ||
61 | // from: './resources/images', | ||
62 | // to: 'images/[path][name].[hash:8].[ext]', | ||
63 | // }) | ||
64 | |||
65 | /* | ||
66 | |-------------------------------------------------------------------------- | ||
67 | | Split shared code | ||
68 | |-------------------------------------------------------------------------- | ||
69 | | | ||
70 | | Instead of bundling duplicate code in all the bundles, generate a separate | ||
71 | | bundle for the shared code. | ||
72 | | | ||
73 | | https://symfony.com/doc/current/frontend/encore/split-chunks.html | ||
74 | | https://webpack.js.org/plugins/split-chunks-plugin/ | ||
75 | | | ||
76 | */ | ||
77 | // Encore.splitEntryChunks() | ||
78 | |||
79 | /* | ||
80 | |-------------------------------------------------------------------------- | ||
81 | | Isolated entrypoints | ||
82 | |-------------------------------------------------------------------------- | ||
83 | | | ||
84 | | Treat each entry point and its dependencies as its own isolated module. | ||
85 | | | ||
86 | */ | ||
87 | Encore.disableSingleRuntimeChunk(); | ||
88 | |||
89 | /* | ||
90 | |-------------------------------------------------------------------------- | ||
91 | | Cleanup output folder | ||
92 | |-------------------------------------------------------------------------- | ||
93 | | | ||
94 | | It is always nice to cleanup the build output before creating a build. It | ||
95 | | will ensure that all unused files from the previous build are removed. | ||
96 | | | ||
97 | */ | ||
98 | Encore.cleanupOutputBeforeBuild(); | ||
99 | /* | ||
100 | |-------------------------------------------------------------------------- | ||
101 | | Source maps | ||
102 | |-------------------------------------------------------------------------- | ||
103 | | | ||
104 | | Enable source maps in production | ||
105 | | | ||
106 | */ | ||
107 | Encore.enableSourceMaps(!Encore.isProduction()); | ||
108 | |||
109 | /* | ||
110 | |-------------------------------------------------------------------------- | ||
111 | | Assets versioning | ||
112 | |-------------------------------------------------------------------------- | ||
113 | | | ||
114 | | Enable assets versioning to leverage lifetime browser and CDN cache | ||
115 | | | ||
116 | */ | ||
117 | Encore.enableVersioning(Encore.isProduction()); | ||
118 | |||
119 | /* | ||
120 | |-------------------------------------------------------------------------- | ||
121 | | Configure dev server | ||
122 | |-------------------------------------------------------------------------- | ||
123 | | | ||
124 | | Here we configure the dev server to enable live reloading for edge templates. | ||
125 | | Remember edge templates are not processed by Webpack and hence we need | ||
126 | | to watch them explicitly and livereload the browser. | ||
127 | | | ||
128 | */ | ||
129 | Encore.configureDevServerOptions(options => { | ||
130 | /** | ||
131 | * Normalize "options.static" property to an array | ||
132 | */ | ||
133 | if (!options.static) { | ||
134 | options.static = []; | ||
135 | } else if (!Array.isArray(options.static)) { | ||
136 | options.static = [options.static]; | ||
137 | } | ||
138 | |||
139 | /** | ||
140 | * Enable live reload and add views directory | ||
141 | */ | ||
142 | options.liveReload = true; | ||
143 | options.static.push({ | ||
144 | directory: join(__dirname, './resources/views'), | ||
145 | watch: true, | ||
146 | }); | ||
147 | }); | ||
148 | |||
149 | /* | ||
150 | |-------------------------------------------------------------------------- | ||
151 | | CSS precompilers support | ||
152 | |-------------------------------------------------------------------------- | ||
153 | | | ||
154 | | Uncomment one of the following lines of code to enable support for your | ||
155 | | favorite CSS precompiler | ||
156 | | | ||
157 | */ | ||
158 | // Encore.enableSassLoader() | ||
159 | // Encore.enableLessLoader() | ||
160 | // Encore.enableStylusLoader() | ||
161 | |||
162 | /* | ||
163 | |-------------------------------------------------------------------------- | ||
164 | | CSS loaders | ||
165 | |-------------------------------------------------------------------------- | ||
166 | | | ||
167 | | Uncomment one of the following line of code to enable support for | ||
168 | | PostCSS or CSS. | ||
169 | | | ||
170 | */ | ||
171 | // Encore.enablePostCssLoader() | ||
172 | // Encore.configureCssLoader(() => {}) | ||
173 | |||
174 | /* | ||
175 | |-------------------------------------------------------------------------- | ||
176 | | Enable Vue loader | ||
177 | |-------------------------------------------------------------------------- | ||
178 | | | ||
179 | | Uncomment the following lines of code to enable support for vue. Also make | ||
180 | | sure to install the required dependencies. | ||
181 | | | ||
182 | */ | ||
183 | // Encore.enableVueLoader(() => {}, { | ||
184 | // version: 3, | ||
185 | // runtimeCompilerBuild: false, | ||
186 | // useJsx: false | ||
187 | // }) | ||
188 | |||
189 | /* | ||
190 | |-------------------------------------------------------------------------- | ||
191 | | Configure logging | ||
192 | |-------------------------------------------------------------------------- | ||
193 | | | ||
194 | | To keep the terminal clean from unnecessary info statements , we only | ||
195 | | log warnings and errors. If you want all the logs, you can change | ||
196 | | the level to "info". | ||
197 | | | ||
198 | */ | ||
199 | const config = Encore.getWebpackConfig(); | ||
200 | config.infrastructureLogging = { | ||
201 | level: 'warn', | ||
202 | }; | ||
203 | config.stats = 'errors-warnings'; | ||
204 | |||
205 | /* | ||
206 | |-------------------------------------------------------------------------- | ||
207 | | Export config | ||
208 | |-------------------------------------------------------------------------- | ||
209 | | | ||
210 | | Export config for webpack to do its job | ||
211 | | | ||
212 | */ | ||
213 | module.exports = config; | ||