From 73502250bec4a69a79a70259d4835ead37670e06 Mon Sep 17 00:00:00 2001 From: geekact Date: Tue, 16 Jul 2024 22:23:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 5 +- .gitignore | 9 +- .vscode/settings.json | 2 +- cli.ts | 32 + lerna.json | 16 - openapi.config.ts | 5 + openapi/openapi.json | 1 + openapi/openapi.yaml | 304 ++ openapi/package.json | 3 + openapi/routers/user.router.ts | 140 + package.json | 83 +- pnpm-lock.yaml | 5349 +++++++++------------------ pnpm-workspace.yaml | 2 - src/adapters/axios.ts | 37 + src/adapters/fetch.ts | 47 + src/base-openapi-client.ts | 81 + src/bin.ts | 94 + src/define-config.ts | 30 + src/index.ts | 4 + src/lib/adapter.ts | 53 + src/lib/document-to-meta.ts | 50 + src/lib/filter-tag.ts | 24 + src/lib/filter-url.ts | 17 + src/lib/generate-comments.ts | 13 + src/lib/generate-template.ts | 147 + src/lib/parse-parameters.ts | 28 + src/lib/parse-request-body.ts | 27 + src/lib/parse-response.ts | 27 + src/lib/parse-schema-type.ts | 34 + src/lib/path-to-openapi.ts | 20 + src/lib/read-config.ts | 12 + src/lib/rebuild-dist.ts | 23 + src/lib/ref-to-object.ts | 15 + src/openapi-runtime.ts | 1 + src/utils.ts | 34 + test/__snapshots__/bin.test.ts.snap | 192 + test/adapters/axios.test.ts | 144 + test/adapters/fetch.test.ts | 104 + test/base-openapi-client.test.ts | 44 + test/bin.test.ts | 53 + test/lib/filter-tag.test.ts | 87 + test/lib/filter-url.test.ts | 85 + test/lib/generate-comment.test.ts | 46 + test/lib/generate-template.test.ts | 416 +++ test/lib/parse-parameters.test.ts | 171 + test/lib/parse-request-body.test.ts | 147 + test/lib/parse-response.test.ts | 114 + test/lib/parse-schema.test.ts | 64 + test/lib/path-to-openapi.test.ts | 37 + test/lib/read-config.test.ts | 13 + test/lib/rebuild-dist.test.ts | 31 + test/mocks/get-basic-document.ts | 17 + test/mocks/get-basic-matea.ts | 12 + test/mocks/mock-openapi-client.ts | 13 + tsconfig.json | 5 +- tsup.config.ts | 56 +- vitest.config.ts | 9 +- vitest.workspace.ts | 1 - 58 files changed, 4982 insertions(+), 3648 deletions(-) create mode 100644 cli.ts delete mode 100644 lerna.json create mode 100644 openapi.config.ts create mode 100644 openapi/openapi.json create mode 100644 openapi/openapi.yaml create mode 100644 openapi/package.json create mode 100644 openapi/routers/user.router.ts delete mode 100644 pnpm-workspace.yaml create mode 100644 src/adapters/axios.ts create mode 100644 src/adapters/fetch.ts create mode 100644 src/base-openapi-client.ts create mode 100755 src/bin.ts create mode 100644 src/define-config.ts create mode 100644 src/index.ts create mode 100644 src/lib/adapter.ts create mode 100644 src/lib/document-to-meta.ts create mode 100644 src/lib/filter-tag.ts create mode 100644 src/lib/filter-url.ts create mode 100644 src/lib/generate-comments.ts create mode 100644 src/lib/generate-template.ts create mode 100644 src/lib/parse-parameters.ts create mode 100644 src/lib/parse-request-body.ts create mode 100644 src/lib/parse-response.ts create mode 100644 src/lib/parse-schema-type.ts create mode 100644 src/lib/path-to-openapi.ts create mode 100644 src/lib/read-config.ts create mode 100644 src/lib/rebuild-dist.ts create mode 100644 src/lib/ref-to-object.ts create mode 100644 src/openapi-runtime.ts create mode 100644 src/utils.ts create mode 100644 test/__snapshots__/bin.test.ts.snap create mode 100644 test/adapters/axios.test.ts create mode 100644 test/adapters/fetch.test.ts create mode 100644 test/base-openapi-client.test.ts create mode 100644 test/bin.test.ts create mode 100644 test/lib/filter-tag.test.ts create mode 100644 test/lib/filter-url.test.ts create mode 100644 test/lib/generate-comment.test.ts create mode 100644 test/lib/generate-template.test.ts create mode 100644 test/lib/parse-parameters.test.ts create mode 100644 test/lib/parse-request-body.test.ts create mode 100644 test/lib/parse-response.test.ts create mode 100644 test/lib/parse-schema.test.ts create mode 100644 test/lib/path-to-openapi.test.ts create mode 100644 test/lib/read-config.test.ts create mode 100644 test/lib/rebuild-dist.test.ts create mode 100644 test/mocks/get-basic-document.ts create mode 100644 test/mocks/get-basic-matea.ts create mode 100644 test/mocks/mock-openapi-client.ts delete mode 100644 vitest.workspace.ts diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a107e73..e411bf5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,9 +26,6 @@ jobs: cache: 'pnpm' node-version-file: 'package.json' - run: pnpm install - - run: npx lerna version --force-publish --yes - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | npm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_TOKEN }} - pnpm --recursive publish + pnpm publish diff --git a/.gitignore b/.gitignore index b45dd25..3dd88a6 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,11 @@ coverage/ .DS_Store *.log .tsbuildinfo -.nx/ +*.js +*.d.ts +*.d.cts +*.d.mts +*.js.map +/adapters +openapi/openapi.yaml +openapi/openapi.json \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index e51fc27..1d97715 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,5 +12,5 @@ "typescript.tsdk": "node_modules/typescript/lib", "typescript.preferences.quoteStyle": "single", "typescript.suggest.autoImports": true, - "cSpell.words": ["openapi"] + "cSpell.words": ["aomex", "openapi"] } diff --git a/cli.ts b/cli.ts new file mode 100644 index 0000000..6811309 --- /dev/null +++ b/cli.ts @@ -0,0 +1,32 @@ +import { ConsoleApp } from '@aomex/console'; +import { openapi } from '@aomex/openapi'; + +const app = new ConsoleApp({ + mount: [ + openapi({ + commandName: 'openapi-json', + routers: ['./openapi/routers'], + saveToFile: './openapi/openapi.json', + docs: { + openapi: '3.0.3', + info: { + version: '0.0.0', + }, + }, + }), + openapi({ + commandName: 'openapi-yaml', + routers: ['./openapi/routers'], + saveToFile: './openapi/openapi.yaml', + docs: { + openapi: '3.0.3', + info: { + version: '0.0.0', + }, + }, + }), + ], +}); + +const code = await app.run(); +process.exit(code); diff --git a/lerna.json b/lerna.json deleted file mode 100644 index 26a055c..0000000 --- a/lerna.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "1.6.0", - "npmClient": "pnpm", - "command": { - "version": { - "allowBranch": "main", - "conventionalCommits": true, - "message": "chore(release): 发布版本%s", - "createRelease": "github", - "private": false, - "exact": false - } - }, - "access": "public" -} diff --git a/openapi.config.ts b/openapi.config.ts new file mode 100644 index 0000000..a6199ac --- /dev/null +++ b/openapi.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from './src/define-config'; + +export default defineConfig({ + path: './openapi/openapi.json', +}); diff --git a/openapi/openapi.json b/openapi/openapi.json new file mode 100644 index 0000000..823f2e9 --- /dev/null +++ b/openapi/openapi.json @@ -0,0 +1 @@ +{"openapi":"3.0.3","info":{"version":"0.0.0","title":"foca-openapi"},"tags":[{"name":"user"}],"paths":{"/users":{"get":{"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"result":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"description":"用户名","type":"string"},"age":{"nullable":true,"type":"integer"},"address":{"nullable":true,"type":"string"},"password":{"description":"即将删除","deprecated":true,"type":"string"}},"required":["id","name","age","password"]}}},"required":["page","limit","total","result"]}}}}},"parameters":[{"name":"page","in":"query","schema":{"default":1,"type":"integer","maximum":10,"minimum":1,"exclusiveMaximum":false,"exclusiveMinimum":false}},{"name":"limit","in":"query","description":"每页返回的资源数量","schema":{"description":"每页返回的资源数量","default":10,"type":"integer","maximum":100,"exclusiveMaximum":false}}],"tags":["user"],"operationId":"list_users"},"post":{"responses":{"201":{"description":"创建成功","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"name":{"description":"用户名","type":"string"},"age":{"nullable":true,"type":"integer"},"address":{"nullable":true,"type":"string"},"password":{"description":"即将删除","deprecated":true,"type":"string"}},"required":["id","name","age","password"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"age":{"type":"integer"},"address":{"type":"integer"}},"required":["name"]}}},"required":true},"tags":["user"],"operationId":"create_users","x-codegen-request-body-name":"body"}},"/users/{id}":{"get":{"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"name":{"description":"用户名","type":"string"},"age":{"nullable":true,"type":"integer"},"address":{"nullable":true,"type":"string"},"password":{"description":"即将删除","deprecated":true,"type":"string"}},"required":["id","name","age","password"]}}}},"404":{"description":"用户不存在"}},"tags":["user"],"operationId":"retrieve_users_by_id"},"put":{"responses":{"200":{"description":"更新成功","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"name":{"description":"用户名","type":"string"},"age":{"nullable":true,"type":"integer"},"address":{"nullable":true,"type":"string"},"password":{"description":"即将删除","deprecated":true,"type":"string"}},"required":["id","name","age","password"]}}}},"404":{"description":"用户不存在"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"age":{"type":"integer"},"address":{"type":"integer"}},"required":["name"]}}},"required":true},"tags":["user"],"operationId":"replace_users_by_id"},"delete":{"responses":{"204":{"description":"删除成功"},"404":{"description":"用户不存在"}},"tags":["user"],"operationId":"delete_users_by_id"},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"exclusiveMinimum":false}}]},"/users/v1":{"post":{"deprecated":true,"description":"接口已弃用,请使用 /users","responses":{"201":{"description":"创建成功","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"name":{"description":"用户名","type":"string"},"age":{"nullable":true,"type":"integer"},"address":{"nullable":true,"type":"string"},"password":{"description":"即将删除","deprecated":true,"type":"string"}},"required":["id","name","age","password"]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"age":{"type":"integer"},"address":{"type":"integer"}},"required":["name"]}}},"required":true},"tags":["user"],"operationId":"create_users_v_1","x-codegen-request-body-name":"body"}},"/users/avatar":{"put":{"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]}}}}},"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}},"required":true},"tags":["user"],"operationId":"replace_users_avatar"}}}} \ No newline at end of file diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml new file mode 100644 index 0000000..ab306ad --- /dev/null +++ b/openapi/openapi.yaml @@ -0,0 +1,304 @@ +openapi: 3.0.3 +info: + version: 0.0.0 + title: foca-openapi +tags: + - name: user +paths: + /users: + get: + responses: + "200": + description: "" + content: + application/json: + schema: + type: object + properties: + page: + type: integer + limit: + type: integer + total: + type: integer + result: + type: array + items: + type: object + properties: + id: + type: integer + name: + description: 用户名 + type: string + age: + nullable: true + type: integer + address: + nullable: true + type: string + password: + description: 即将删除 + deprecated: true + type: string + required: + - id + - name + - age + - password + required: + - page + - limit + - total + - result + parameters: + - name: page + in: query + schema: + default: 1 + type: integer + maximum: 10 + minimum: 1 + exclusiveMaximum: false + exclusiveMinimum: false + - name: limit + in: query + description: 每页返回的资源数量 + schema: + description: 每页返回的资源数量 + default: 10 + type: integer + maximum: 100 + exclusiveMaximum: false + tags: + - user + operationId: list_users + post: + responses: + "201": + description: 创建成功 + content: + application/json: + schema: + type: object + properties: + id: + type: integer + name: + description: 用户名 + type: string + age: + nullable: true + type: integer + address: + nullable: true + type: string + password: + description: 即将删除 + deprecated: true + type: string + required: + - id + - name + - age + - password + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + age: + type: integer + address: + type: integer + required: + - name + required: true + tags: + - user + operationId: create_users + x-codegen-request-body-name: body + /users/{id}: + get: + responses: + "200": + description: "" + content: + application/json: + schema: + type: object + properties: + id: + type: integer + name: + description: 用户名 + type: string + age: + nullable: true + type: integer + address: + nullable: true + type: string + password: + description: 即将删除 + deprecated: true + type: string + required: + - id + - name + - age + - password + "404": + description: 用户不存在 + tags: + - user + operationId: retrieve_users_by_id + put: + responses: + "200": + description: 更新成功 + content: + application/json: + schema: + type: object + properties: + id: + type: integer + name: + description: 用户名 + type: string + age: + nullable: true + type: integer + address: + nullable: true + type: string + password: + description: 即将删除 + deprecated: true + type: string + required: + - id + - name + - age + - password + "404": + description: 用户不存在 + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + age: + type: integer + address: + type: integer + required: + - name + required: true + tags: + - user + operationId: replace_users_by_id + delete: + responses: + "204": + description: 删除成功 + "404": + description: 用户不存在 + tags: + - user + operationId: delete_users_by_id + parameters: + - name: id + in: path + required: true + schema: + type: integer + minimum: 1 + exclusiveMinimum: false + /users/v1: + post: + deprecated: true + description: 接口已弃用,请使用 /users + responses: + "201": + description: 创建成功 + content: + application/json: + schema: + type: object + properties: + id: + type: integer + name: + description: 用户名 + type: string + age: + nullable: true + type: integer + address: + nullable: true + type: string + password: + description: 即将删除 + deprecated: true + type: string + required: + - id + - name + - age + - password + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + age: + type: integer + address: + type: integer + required: + - name + required: true + tags: + - user + operationId: create_users_v_1 + x-codegen-request-body-name: body + /users/avatar: + put: + responses: + "201": + description: "" + content: + application/json: + schema: + type: object + properties: + url: + type: string + required: + - url + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + file: + type: string + format: binary + required: + - file + required: true + tags: + - user + operationId: replace_users_avatar diff --git a/openapi/package.json b/openapi/package.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/openapi/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/openapi/routers/user.router.ts b/openapi/routers/user.router.ts new file mode 100644 index 0000000..4bda7b0 --- /dev/null +++ b/openapi/routers/user.router.ts @@ -0,0 +1,140 @@ +import { rule } from '@aomex/core'; +import { Router } from '@aomex/router'; +import { body, params, query, response } from '@aomex/web'; + +export const router = new Router(); + +const userItem = { + id: rule.int(), + name: rule.string().docs({ description: '用户名' }), + age: rule.int().nullable(), + address: rule.string().nullable().optional(), + password: rule.string().docs({ deprecated: true, description: '即将删除' }), +}; + +router.get('/users', { + mount: [ + query({ + page: rule.int().min(1).max(10).default(1), + limit: rule.int().max(100).default(10).docs({ description: '每页返回的资源数量' }), + }), + response({ + statusCode: 200, + content: { + page: rule.int(), + limit: rule.int(), + total: rule.int(), + result: rule.array(userItem), + }, + }), + ], + action: () => {}, +}); + +router.get('/users/:id', { + mount: [ + params({ + id: rule.int().min(1), + }), + response({ + statusCode: 200, + content: userItem, + }), + response({ + statusCode: 404, + description: '用户不存在', + }), + ], + action: () => {}, +}); + +router.post('/users', { + mount: [ + body({ + name: rule.string(), + age: rule.int().optional(), + address: rule.int().optional(), + }), + response({ + statusCode: 201, + description: '创建成功', + content: userItem, + }), + ], + action: () => {}, +}); + +router.post('/users/v1', { + docs: { + deprecated: true, + description: '接口已弃用,请使用 /users', + }, + mount: [ + body({ + name: rule.string(), + age: rule.int().optional(), + address: rule.int().optional(), + }), + response({ + statusCode: 201, + description: '创建成功', + content: userItem, + }), + ], + action: () => {}, +}); + +router.put('/users/:id', { + mount: [ + params({ + id: rule.int().min(1), + }), + body({ + name: rule.string(), + age: rule.int().optional(), + address: rule.int().optional(), + }), + response({ + statusCode: 200, + description: '更新成功', + content: userItem, + }), + response({ + statusCode: 404, + description: '用户不存在', + }), + ], + action: () => {}, +}); + +router.put('/users/avatar', { + mount: [ + body({ + file: rule.file().mimeTypes('image/*'), + }), + response({ + statusCode: 201, + content: { + url: rule.string(), + }, + }), + ], + action: () => {}, +}); + +router.delete('/users/:id', { + mount: [ + params({ + id: rule.int().min(1), + }), + response({ + statusCode: 204, + description: '删除成功', + }), + response({ + statusCode: 404, + description: '用户不存在', + }), + ], + action: () => {}, +}); diff --git a/package.json b/package.json index 3cf2ddd..994d526 100644 --- a/package.json +++ b/package.json @@ -1,21 +1,57 @@ { - "name": "aomex", - "private": true, - "repository": "git@github.com:aomex/aomex.git", - "homepage": "https://aomex.js.org", - "author": "geekact ", - "license": "MIT", - "type": "module", + "name": "foca-openapi", + "version": "0.0.0", + "description": "根据openapi文档生成请求客户端", "scripts": { "test": "vitest", - "build": "pnpm --recursive --workspace-concurrency 1 prepublishOnly", + "generate": "aomex openapi-yaml && aomex openapi-json", + "build": "tsup", "preinstall": "only-allow pnpm", "prepare": "husky", + "prepublishOnly": "tsup", "deploy:main": "sh scripts/develop-deploy-main.sh", "sync:main": "sh scripts/develop-sync-main.sh" }, + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/esm/index.js", + "require": "./dist/index.js" + }, + "./adapters/fetch": { + "types": "./dist/adapters/fetch.d.ts", + "import": "./dist/adapters/esm/fetch.js", + "require": "./dist/adapters/fetch.js" + }, + "./adapters/axios": { + "types": "./dist/adapters/axios.d.ts", + "import": "./dist/adapters/esm/axios.js", + "require": "./dist/adapters/axios.js" + }, + "./package.json": "./package.json" + }, + "bin": "dist/bin.mjs", + "type": "module", + "publishConfig": { + "type": "commonjs", + "access": "public" + }, + "files": [ + "src", + "adapters", + "dist", + "LICENSE", + "package.json", + "README.md", + "CHANGELOG.md" + ], + "keywords": [], + "repository": "git@github.com:aomex/aomex.git", + "homepage": "https://aomex.js.org", + "license": "MIT", "volta": { - "node": "20.13.0", + "node": "18.16.0", "pnpm": "9.5.0" }, "packageManager": "pnpm@9.5.0", @@ -23,18 +59,33 @@ "node": ">=18" }, "dependencies": { + "listr2": "^8.2.3", + "lodash-es": "^4.17.21", + "object-to-formdata": "^4.5.1", + "openapi-types": "^12.1.3", + "qs": "^6.12.3", + "tsup": "^8.1.0", + "tsx": "^4.15.6", + "yaml": "^2.4.5" + }, + "devDependencies": { + "@aomex/console": "^1.7.0", + "@aomex/core": "^1.7.0", + "@aomex/openapi": "^1.7.0", + "@aomex/router": "^1.7.0", + "@aomex/web": "^1.7.0", "@commitlint/cli": "^19.3.0", "@commitlint/config-conventional": "^19.2.2", - "@types/node": "^18", - "@vitest/coverage-v8": "^1.5.2", + "@types/lodash-es": "^4.17.12", + "@types/node": "^20.14.10", + "@types/qs": "^6.9.15", + "@vitest/coverage-v8": "^2.0.3", + "axios": "^1.7.2", "husky": "^9.0.11", - "lerna": "^8.1.5", "only-allow": "^1.2.1", "prettier": "^3.2.5", - "ts-expect": "^1.3.0", - "tsup": "^8.0.2", - "tsx": "^4.15.6", + "tsx": "^4.16.2", "typescript": "^5.5.3", - "vitest": "^1.5.2" + "vitest": "^2.0.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e452ee6..f7cf895 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,45 +8,82 @@ importers: .: dependencies: + listr2: + specifier: ^8.2.3 + version: 8.2.3 + lodash-es: + specifier: ^4.17.21 + version: 4.17.21 + object-to-formdata: + specifier: ^4.5.1 + version: 4.5.1 + openapi-types: + specifier: ^12.1.3 + version: 12.1.3 + qs: + specifier: ^6.12.3 + version: 6.12.3 + tsup: + specifier: ^8.1.0 + version: 8.1.0(postcss@8.4.38)(typescript@5.5.3) + tsx: + specifier: ^4.15.6 + version: 4.16.2 + yaml: + specifier: ^2.4.5 + version: 2.4.5 + devDependencies: + '@aomex/console': + specifier: ^1.7.0 + version: 1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3)) + '@aomex/core': + specifier: ^1.7.0 + version: 1.7.0(@types/node@20.14.10)(typescript@5.5.3) + '@aomex/openapi': + specifier: ^1.7.0 + version: 1.7.0(@aomex/console@1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3)))(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3))(@aomex/router@1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3))(@aomex/web@1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3))))(@aomex/web@1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3)))(encoding@0.1.13) + '@aomex/router': + specifier: ^1.7.0 + version: 1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3))(@aomex/web@1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3))) + '@aomex/web': + specifier: ^1.7.0 + version: 1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3)) '@commitlint/cli': specifier: ^19.3.0 - version: 19.3.0(@types/node@18.19.39)(typescript@5.5.3) + version: 19.3.0(@types/node@20.14.10)(typescript@5.5.3) '@commitlint/config-conventional': specifier: ^19.2.2 version: 19.2.2 + '@types/lodash-es': + specifier: ^4.17.12 + version: 4.17.12 '@types/node': - specifier: ^18 - version: 18.19.39 + specifier: ^20.14.10 + version: 20.14.10 + '@types/qs': + specifier: ^6.9.15 + version: 6.9.15 '@vitest/coverage-v8': - specifier: ^1.5.2 - version: 1.5.2(vitest@1.5.2(@types/node@18.19.39)) + specifier: ^2.0.3 + version: 2.0.3(vitest@2.0.3(@types/node@20.14.10)) + axios: + specifier: ^1.7.2 + version: 1.7.2 husky: specifier: ^9.0.11 version: 9.0.11 - lerna: - specifier: ^8.1.5 - version: 8.1.5(encoding@0.1.13) only-allow: specifier: ^1.2.1 version: 1.2.1 prettier: specifier: ^3.2.5 version: 3.2.5 - ts-expect: - specifier: ^1.3.0 - version: 1.3.0 - tsup: - specifier: ^8.0.2 - version: 8.0.2(postcss@8.4.38)(typescript@5.5.3) - tsx: - specifier: ^4.15.6 - version: 4.15.6 typescript: specifier: ^5.5.3 version: 5.5.3 vitest: - specifier: ^1.5.2 - version: 1.5.2(@types/node@18.19.39) + specifier: ^2.0.3 + version: 2.0.3(@types/node@20.14.10) packages: @@ -54,6 +91,53 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@aomex/console@1.7.0': + resolution: {integrity: sha512-p1bnkQAxfXt8qB/rzKORDpdcAgum74gqWt1UTQbh6nE8NCjTZ6VCx+WgBKVHZiXpolT5uwGbHTKm2+27iyVqgQ==} + engines: {node: ^20.13.0 || ^22} + hasBin: true + peerDependencies: + '@aomex/core': ^1.0.0 + + '@aomex/core@1.7.0': + resolution: {integrity: sha512-DOd++pRnkjcyXEwPNZcqwXLnjgXElvhnssjmXN0W3WkdAWiuupaTIewpAfVMtNxJFno0JK/GsRaoiaAGqxCU0g==} + engines: {node: ^20.13.0 || ^22} + peerDependencies: + '@types/node': ^20 || ^22 + typescript: '>=5.4' + + '@aomex/internal-file-import@1.7.0': + resolution: {integrity: sha512-xhMiQ8TKdLf1isJwT9YXA2ADnOYyl8Py/Cn1QbiTxav9MQp7NyHGaRjkDoluHzUAGTHOrv2YIhoN18eskgC3bA==} + engines: {node: ^20.13.0 || ^22} + + '@aomex/internal-tools@1.7.0': + resolution: {integrity: sha512-u5Xv9WvnTlpCoJS988gp8cWAZRldIeyFVS95NWcq1zaD9hXUA5uhcgHuI9LaSkgC1zpkrNxPuneSVgrf8z4Gtw==} + engines: {node: ^20.13.0 || ^22} + + '@aomex/openapi@1.7.0': + resolution: {integrity: sha512-vpSSBke3vE9+PBqTYckXbp7Mfq/TCT5ZfkOpzrZy0DPRIIUa1mtAZljPKqOdlFe3+lXP8aDAgeuEU+aM/8aa9g==} + engines: {node: ^20.13.0 || ^22} + peerDependencies: + '@aomex/console': ^1.0.0 + '@aomex/core': ^1.0.0 + '@aomex/router': ^1.0.0 + '@aomex/web': ^1.0.0 + + '@aomex/router@1.7.0': + resolution: {integrity: sha512-6WTpHT4rhmA97An+0YijYNImxX9Xy+3cF7E6sLfvfxYTTpyvjpZr+ECPUPYwHnhDmiA0Hxmp/qOiA039NUbr4g==} + engines: {node: ^20.13.0 || ^22} + peerDependencies: + '@aomex/core': ^1.0.0 + '@aomex/web': ^1.0.0 + + '@aomex/web@1.7.0': + resolution: {integrity: sha512-dn48ttIPft5AVrlMNRT2ELpjou8D5mLP7fu8rWwf71o+D58koewccpHmouXadoGpxD2C9FMHcNJbmTRaIdjWhg==} + engines: {node: ^20.13.0 || ^22} + peerDependencies: + '@aomex/core': ^1.0.0 + + '@asyncapi/specs@4.3.1': + resolution: {integrity: sha512-EfexhJu/lwF8OdQDm28NKLJHFkx0Gb6O+rcezhZYLPIoNYKXJMh2J1vFGpwmfAcTTh+ffK44Oc2Hs1Q4sLBp+A==} + '@babel/code-frame@7.24.2': resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} @@ -70,8 +154,8 @@ packages: resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.1': - resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} + '@babel/parser@7.24.8': + resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==} engines: {node: '>=6.0.0'} hasBin: true @@ -151,12 +235,6 @@ packages: resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} engines: {node: '>=v18'} - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.20.2': resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} engines: {node: '>=12'} @@ -169,11 +247,11 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} - cpu: [arm64] - os: [android] + cpu: [ppc64] + os: [aix] '@esbuild/android-arm64@0.20.2': resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} @@ -187,10 +265,10 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [android] '@esbuild/android-arm@0.20.2': @@ -205,10 +283,10 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} - cpu: [x64] + cpu: [arm] os: [android] '@esbuild/android-x64@0.20.2': @@ -223,11 +301,11 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] + cpu: [x64] + os: [android] '@esbuild/darwin-arm64@0.20.2': resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} @@ -241,10 +319,10 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} - cpu: [x64] + cpu: [arm64] os: [darwin] '@esbuild/darwin-x64@0.20.2': @@ -259,11 +337,11 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] + cpu: [x64] + os: [darwin] '@esbuild/freebsd-arm64@0.20.2': resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} @@ -277,10 +355,10 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} - cpu: [x64] + cpu: [arm64] os: [freebsd] '@esbuild/freebsd-x64@0.20.2': @@ -295,11 +373,11 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} - cpu: [arm64] - os: [linux] + cpu: [x64] + os: [freebsd] '@esbuild/linux-arm64@0.20.2': resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} @@ -313,10 +391,10 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [linux] '@esbuild/linux-arm@0.20.2': @@ -331,10 +409,10 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} - cpu: [ia32] + cpu: [arm] os: [linux] '@esbuild/linux-ia32@0.20.2': @@ -349,10 +427,10 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} - cpu: [loong64] + cpu: [ia32] os: [linux] '@esbuild/linux-loong64@0.20.2': @@ -367,10 +445,10 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} - cpu: [mips64el] + cpu: [loong64] os: [linux] '@esbuild/linux-mips64el@0.20.2': @@ -385,10 +463,10 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} - cpu: [ppc64] + cpu: [mips64el] os: [linux] '@esbuild/linux-ppc64@0.20.2': @@ -403,10 +481,10 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} - cpu: [riscv64] + cpu: [ppc64] os: [linux] '@esbuild/linux-riscv64@0.20.2': @@ -421,10 +499,10 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} - cpu: [s390x] + cpu: [riscv64] os: [linux] '@esbuild/linux-s390x@0.20.2': @@ -439,10 +517,10 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} - cpu: [x64] + cpu: [s390x] os: [linux] '@esbuild/linux-x64@0.20.2': @@ -457,11 +535,11 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] - os: [netbsd] + os: [linux] '@esbuild/netbsd-x64@0.20.2': resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} @@ -475,11 +553,11 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] - os: [openbsd] + os: [netbsd] '@esbuild/openbsd-x64@0.20.2': resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} @@ -493,11 +571,11 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] - os: [sunos] + os: [openbsd] '@esbuild/sunos-x64@0.20.2': resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} @@ -511,11 +589,11 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} - cpu: [arm64] - os: [win32] + cpu: [x64] + os: [sunos] '@esbuild/win32-arm64@0.20.2': resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} @@ -529,10 +607,10 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} - cpu: [ia32] + cpu: [arm64] os: [win32] '@esbuild/win32-ia32@0.20.2': @@ -547,10 +625,10 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} - cpu: [x64] + cpu: [ia32] os: [win32] '@esbuild/win32-x64@0.20.2': @@ -565,25 +643,23 @@ packages: cpu: [x64] os: [win32] - '@hutson/parse-repository-url@3.0.2': - resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} - engines: {node: '>=6.9.0'} + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@hapi/bourne@3.0.0': + resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==} '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@isaacs/string-locale-compare@1.1.0': - resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} - '@istanbuljs/schema@0.1.3': resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -602,9 +678,17 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@lerna/create@8.1.5': - resolution: {integrity: sha512-Ku8yTGgeumayvMr8sml72EPb6WaoJhRjMTkMZrKSJtcLNDBlDpKwyUxDxNTBNBRUYWUuJCnj7eUH7pDNuc9odQ==} - engines: {node: '>=18.0.0'} + '@jsep-plugin/regex@1.0.3': + resolution: {integrity: sha512-XfZgry4DwEZvSFtS/6Y+R48D7qJYJK6R9/yJFyUFHCIUMEEHuJ4X95TDgJp5QkmzfLYvapMPzskV5HpIDrREug==} + engines: {node: '>= 10.16.0'} + peerDependencies: + jsep: ^0.4.0||^1.0.0 + + '@jsep-plugin/ternary@1.1.3': + resolution: {integrity: sha512-qtLGzCNzPVJ3kdH6/zoLWDPjauHIKiLSBAR71Wa0+PWvGA8wODUQvRgxtpUA5YqAYL3CQ8S4qXhd/9WuWTZirg==} + engines: {node: '>= 10.16.0'} + peerDependencies: + jsep: ^0.4.0||^1.0.0 '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -618,196 +702,6 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@npmcli/agent@2.2.2': - resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@npmcli/arborist@7.5.3': - resolution: {integrity: sha512-7gbMdDNSYUzi0j2mpb6FoXRg3BxXWplMQZH1MZlvNjSdWFObaUz2Ssvo0Nlh2xmWks1OPo+gpsE6qxpT/5M7lQ==} - engines: {node: ^16.14.0 || >=18.0.0} - hasBin: true - - '@npmcli/fs@3.1.1': - resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/git@5.0.7': - resolution: {integrity: sha512-WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@npmcli/installed-package-contents@2.1.0': - resolution: {integrity: sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - '@npmcli/map-workspaces@3.0.6': - resolution: {integrity: sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/metavuln-calculator@7.1.1': - resolution: {integrity: sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@npmcli/name-from-folder@2.0.0': - resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/node-gyp@3.0.0': - resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/package-json@5.2.0': - resolution: {integrity: sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@npmcli/promise-spawn@7.0.2': - resolution: {integrity: sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@npmcli/query@3.1.0': - resolution: {integrity: sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/redact@2.0.1': - resolution: {integrity: sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@npmcli/run-script@8.1.0': - resolution: {integrity: sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@nrwl/devkit@19.3.2': - resolution: {integrity: sha512-n3tFalVPUk1HAJ2VYNnF34yzB9j2+6swFUi4Y92PxD1vN7vrIXnNeaTx2qcee7JDjBpiJ7Zn0KLg2jwiH6hNwA==} - - '@nrwl/tao@19.3.2': - resolution: {integrity: sha512-I1gW7woqwU6rdlgwj6XXAKcreJ5ptRKI2WpLdZErkrPmaRG/jMZx/yjZrG4PWdIEuZ4ZmYnRsoXbKN6ilCknQw==} - hasBin: true - - '@nx/devkit@19.3.2': - resolution: {integrity: sha512-uD3jaJ1Jvf7B6jqH2t2GH0L6REwcCGBLXq1qs1HRQF5SZrEtuUeusn8wvCKP7dftPK3byLHAG0xHRW4+IUAz/g==} - peerDependencies: - nx: '>= 17 <= 20' - - '@nx/nx-darwin-arm64@19.3.2': - resolution: {integrity: sha512-MTqPTR1FwfVfIkHKUw95dFlPBN6mbqfJ+KzLHvUSPcqLKelhi82tsisjMoB5sNK0YWcNNVqYW72ojCnHVB0TUg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@nx/nx-darwin-x64@19.3.2': - resolution: {integrity: sha512-C8s9X5AlVgl3V5PycLdX+75lpAWq0qQs6QUEAnyxrLM9l+/HRecgoW6uZ7tX6Fnd8WGfMIwyahBw4LyZgk6zTw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@nx/nx-freebsd-x64@19.3.2': - resolution: {integrity: sha512-XeEpEU0iqJ/5cAPMmjqJ0Sdz89ZtDRj4NdksioyhAHri94X5/3lm3lDs4tB3nObT7p3QL7r/HP1itq5DHYmMSQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - - '@nx/nx-linux-arm-gnueabihf@19.3.2': - resolution: {integrity: sha512-r4Wl0P94QRBUyiexUcfwKxqFXp48avMG3L0no/ZuNWGODbw1w8ppA4vhnkXtXbIaMdaTGx9eIYO7kFJ2SwMCng==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - - '@nx/nx-linux-arm64-gnu@19.3.2': - resolution: {integrity: sha512-oaTC4iS1fXnc61ZgSxwCQ2GGIqY64G22udRqNsX9TOtgrT7UA/mjE3Si01r+0xODimOiB525ueyxdIh1MAu6Vg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@nx/nx-linux-arm64-musl@19.3.2': - resolution: {integrity: sha512-yyO9bTM7FW7HTYsSQlL4lgbAexUBpzfhdK+RkgsCiW+U/5bi+jFRxo/SbqGUL+IVliFavWyRXahMqOOM6nBq/w==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@nx/nx-linux-x64-gnu@19.3.2': - resolution: {integrity: sha512-DC+llVdL4toLjQkDGBgzoCe26FWIOT+SzRdVcKePoNliZ4jDhkOh3+p75NEIOEcDUgoE9M2iCWEBUjkV978ogw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@nx/nx-linux-x64-musl@19.3.2': - resolution: {integrity: sha512-Wun4v+kuuqv20tJiCENkHGisDqfx029bFufqxx2IOe9TvD6vK4rMMkFVPUoK3FP8EBdaMW4nrR0ZucTFnStl6w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@nx/nx-win32-arm64-msvc@19.3.2': - resolution: {integrity: sha512-bNVf6eu5rWFjHvn0rKHeZYlHUcs3naXvvbduW1g0DPkHG6mt8FYffQmyboN+CSeBd/uWDPNyTUekVWwU7PjtLA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@nx/nx-win32-x64-msvc@19.3.2': - resolution: {integrity: sha512-8DD5BPa5YrxTOKL3HTAgEd+IXNqRtJfwvbrn2MbOMNMyoMG9Zi5yhFvTH/HTT9Tz6VUHvXP16QWYA3R7eFi7Gg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@octokit/auth-token@3.0.4': - resolution: {integrity: sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==} - engines: {node: '>= 14'} - - '@octokit/core@4.2.4': - resolution: {integrity: sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==} - engines: {node: '>= 14'} - - '@octokit/endpoint@7.0.6': - resolution: {integrity: sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==} - engines: {node: '>= 14'} - - '@octokit/graphql@5.0.6': - resolution: {integrity: sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==} - engines: {node: '>= 14'} - - '@octokit/openapi-types@18.1.1': - resolution: {integrity: sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==} - - '@octokit/plugin-enterprise-rest@6.0.1': - resolution: {integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==} - - '@octokit/plugin-paginate-rest@6.1.2': - resolution: {integrity: sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==} - engines: {node: '>= 14'} - peerDependencies: - '@octokit/core': '>=4' - - '@octokit/plugin-request-log@1.0.4': - resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} - peerDependencies: - '@octokit/core': '>=3' - - '@octokit/plugin-rest-endpoint-methods@7.2.3': - resolution: {integrity: sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==} - engines: {node: '>= 14'} - peerDependencies: - '@octokit/core': '>=3' - - '@octokit/request-error@3.0.3': - resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} - engines: {node: '>= 14'} - - '@octokit/request@6.2.8': - resolution: {integrity: sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==} - engines: {node: '>= 14'} - - '@octokit/rest@19.0.11': - resolution: {integrity: sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw==} - engines: {node: '>= 14'} - - '@octokit/tsconfig@1.0.2': - resolution: {integrity: sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==} - - '@octokit/types@10.0.0': - resolution: {integrity: sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==} - - '@octokit/types@9.3.2': - resolution: {integrity: sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==} - '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -877,128 +771,190 @@ packages: cpu: [x64] os: [win32] - '@sigstore/bundle@2.3.2': - resolution: {integrity: sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==} - engines: {node: ^16.14.0 || >=18.0.0} + '@stoplight/better-ajv-errors@1.0.3': + resolution: {integrity: sha512-0p9uXkuB22qGdNfy3VeEhxkU5uwvp/KrBTAbrLBURv6ilxIVwanKwjMc41lQfIVgPGcOkmLbTolfFrSsueu7zA==} + engines: {node: ^12.20 || >= 14.13} + peerDependencies: + ajv: '>=8' + + '@stoplight/json-ref-readers@1.2.2': + resolution: {integrity: sha512-nty0tHUq2f1IKuFYsLM4CXLZGHdMn+X/IwEUIpeSOXt0QjMUbL0Em57iJUDzz+2MkWG83smIigNZ3fauGjqgdQ==} + engines: {node: '>=8.3.0'} + + '@stoplight/json-ref-resolver@3.1.6': + resolution: {integrity: sha512-YNcWv3R3n3U6iQYBsFOiWSuRGE5su1tJSiX6pAPRVk7dP0L7lqCteXGzuVRQ0gMZqUl8v1P0+fAKxF6PLo9B5A==} + engines: {node: '>=8.3.0'} + + '@stoplight/json@3.21.0': + resolution: {integrity: sha512-5O0apqJ/t4sIevXCO3SBN9AHCEKKR/Zb4gaj7wYe5863jme9g02Q0n/GhM7ZCALkL+vGPTe4ZzTETP8TFtsw3g==} + engines: {node: '>=8.3.0'} + + '@stoplight/ordered-object-literal@1.0.5': + resolution: {integrity: sha512-COTiuCU5bgMUtbIFBuyyh2/yVVzlr5Om0v5utQDgBCuQUOPgU1DwoffkTfg4UBQOvByi5foF4w4T+H9CoRe5wg==} + engines: {node: '>=8'} + + '@stoplight/path@1.3.2': + resolution: {integrity: sha512-lyIc6JUlUA8Ve5ELywPC8I2Sdnh1zc1zmbYgVarhXIp9YeAB0ReeqmGEOWNtlHkbP2DAA1AL65Wfn2ncjK/jtQ==} + engines: {node: '>=8'} + + '@stoplight/spectral-core@1.18.3': + resolution: {integrity: sha512-YY8x7X2SWJIhGTLPol+eFiQpWPz0D0mJdkK2i4A0QJG68KkNhypP6+JBC7/Kz3XWjqr0L/RqAd+N5cQLPOKZGQ==} + engines: {node: ^12.20 || >= 14.13} + + '@stoplight/spectral-formats@1.6.0': + resolution: {integrity: sha512-X27qhUfNluiduH0u/QwJqhOd8Wk5YKdxVmKM03Aijlx0AH1H5mYt3l9r7t2L4iyJrsBaFPnMGt7UYJDGxszbNA==} + engines: {node: '>=12'} + + '@stoplight/spectral-functions@1.8.0': + resolution: {integrity: sha512-ZrAkYA/ZGbuQ6EyG1gisF4yQ5nWP/+glcqVoGmS6kH6ekaynz2Yp6FL0oIamWj3rWedFUN7ppwTRUdo+9f/uCw==} + engines: {node: '>=12'} + + '@stoplight/spectral-parsers@1.0.4': + resolution: {integrity: sha512-nCTVvtX6q71M8o5Uvv9kxU31Gk1TRmgD6/k8HBhdCmKG6FWcwgjiZouA/R3xHLn/VwTI/9k8SdG5Mkdy0RBqbQ==} + engines: {node: ^12.20 || >=14.13} + + '@stoplight/spectral-ref-resolver@1.0.4': + resolution: {integrity: sha512-5baQIYL0NJTSVy8v6RxOR4U51xOUYM8wJri1YvlAT6bPN8m0EIxMwfVYi0xUZEMVeHcWx869nIkoqyWmOutF2A==} + engines: {node: '>=12'} + + '@stoplight/spectral-rulesets@1.19.1': + resolution: {integrity: sha512-rfGK87Y1JJCEeLC8MVdLkjUkRH+Y6VnSF388D+UWihfU9xuq2eNB9phWpTFkG+AG4HLRyGx963BmO6PyM9dBag==} + engines: {node: '>=12'} + + '@stoplight/spectral-runtime@1.1.2': + resolution: {integrity: sha512-fr5zRceXI+hrl82yAVoME+4GvJie8v3wmOe9tU+ZLRRNonizthy8qDi0Z/z4olE+vGreSDcuDOZ7JjRxFW5kTw==} + engines: {node: '>=12'} - '@sigstore/core@1.1.0': - resolution: {integrity: sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==} - engines: {node: ^16.14.0 || >=18.0.0} + '@stoplight/types@12.5.0': + resolution: {integrity: sha512-dwqYcDrGmEyUv5TWrDam5TGOxU72ufyQ7hnOIIDdmW5ezOwZaBFoR5XQ9AsH49w7wgvOqB2Bmo799pJPWnpCbg==} + engines: {node: '>=8'} - '@sigstore/protobuf-specs@0.3.2': - resolution: {integrity: sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==} - engines: {node: ^16.14.0 || >=18.0.0} + '@stoplight/types@13.20.0': + resolution: {integrity: sha512-2FNTv05If7ib79VPDA/r9eUet76jewXFH2y2K5vuge6SXbRHtWBhcaRmu+6QpF4/WRNoJj5XYRSwLGXDxysBGA==} + engines: {node: ^12.20 || >=14.13} - '@sigstore/sign@2.3.2': - resolution: {integrity: sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==} - engines: {node: ^16.14.0 || >=18.0.0} + '@stoplight/types@13.6.0': + resolution: {integrity: sha512-dzyuzvUjv3m1wmhPfq82lCVYGcXG0xUYgqnWfCq3PCVR4BKFhjdkHrnJ+jIDoMKvXb05AZP/ObQF6+NpDo29IQ==} + engines: {node: ^12.20 || >=14.13} - '@sigstore/tuf@2.3.4': - resolution: {integrity: sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==} - engines: {node: ^16.14.0 || >=18.0.0} + '@stoplight/types@14.1.1': + resolution: {integrity: sha512-/kjtr+0t0tjKr+heVfviO9FrU/uGLc+QNX3fHJc19xsCNYqU7lVhaXxDmEID9BZTjG+/r9pK9xP/xU02XGg65g==} + engines: {node: ^12.20 || >=14.13} - '@sigstore/verify@1.2.1': - resolution: {integrity: sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==} - engines: {node: ^16.14.0 || >=18.0.0} + '@stoplight/yaml-ast-parser@0.0.50': + resolution: {integrity: sha512-Pb6M8TDO9DtSVla9yXSTAxmo9GVEouq5P40DWXdOie69bXogZTkgvopCq+yEvTMA0F6PEvdJmbtTV3ccIp11VQ==} - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@stoplight/yaml@4.3.0': + resolution: {integrity: sha512-JZlVFE6/dYpP9tQmV0/ADfn32L9uFarHWxfcRhReKUnljz1ZiUM5zpX+PH8h5CJs6lao3TuFqnPm9IJJCEkE2w==} + engines: {node: '>=10.8'} - '@tufjs/canonical-json@2.0.0': - resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} - engines: {node: ^16.14.0 || >=18.0.0} + '@types/accepts@1.3.7': + resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} - '@tufjs/models@2.0.1': - resolution: {integrity: sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==} - engines: {node: ^16.14.0 || >=18.0.0} + '@types/bytes@3.1.4': + resolution: {integrity: sha512-A0uYgOj3zNc4hNjHc5lYUfJQ/HVyBXiUMKdXd7ysclaE6k9oJdavQzODHuwjpUu2/boCP8afjQYi8z/GtvNCWA==} '@types/conventional-commits-parser@5.0.0': resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + + '@types/es-aggregate-error@1.0.6': + resolution: {integrity: sha512-qJ7LIFp06h1QE1aVxbVd+zJP2wdaugYXYfd6JxsyRMrYHaxb6itXPogW2tz+ylUJ1n1b+JF1PHyYCfYHm0dvUg==} + '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/minimatch@3.0.5': - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + '@types/formidable@3.4.5': + resolution: {integrity: sha512-s7YPsNVfnsng5L8sKnG/Gbb2tiwwJTY1conOkJzTMRvJAlLFW1nEua+ADsJQu8N1c0oTHx9+d5nqg10WuT9gHQ==} - '@types/minimist@1.2.5': - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - '@types/node@18.19.39': - resolution: {integrity: sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/lodash-es@4.17.12': + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} - '@vitest/coverage-v8@1.5.2': - resolution: {integrity: sha512-QJqxRnbCwNtbbegK9E93rBmhN3dbfG1bC/o52Bqr0zGCYhQzwgwvrJBG7Q8vw3zilX6Ryy6oa/mkZku2lLJx1Q==} - peerDependencies: - vitest: 1.5.2 + '@types/lodash@4.17.6': + resolution: {integrity: sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA==} - '@vitest/expect@1.5.2': - resolution: {integrity: sha512-rf7MTD1WCoDlN3FfYJ9Llfp0PbdtOMZ3FIF0AVkDnKbp3oiMW1c8AmvRZBcqbAhDUAvF52e9zx4WQM1r3oraVA==} + '@types/node@20.14.10': + resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} - '@vitest/runner@1.5.2': - resolution: {integrity: sha512-7IJ7sJhMZrqx7HIEpv3WrMYcq8ZNz9L6alo81Y6f8hV5mIE6yVZsFoivLZmr0D777klm1ReqonE9LyChdcmw6g==} + '@types/qs@6.9.15': + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} - '@vitest/snapshot@1.5.2': - resolution: {integrity: sha512-CTEp/lTYos8fuCc9+Z55Ga5NVPKUgExritjF5VY7heRFUfheoAqBneUlvXSUJHUZPjnPmyZA96yLRJDP1QATFQ==} + '@types/statuses@2.0.5': + resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} - '@vitest/spy@1.5.2': - resolution: {integrity: sha512-xCcPvI8JpCtgikT9nLpHPL1/81AYqZy1GCy4+MCHBE7xi8jgsYkULpW5hrx5PGLgOQjUpb6fd15lqcriJ40tfQ==} + '@types/urijs@1.19.25': + resolution: {integrity: sha512-XOfUup9r3Y06nFAZh3WvO0rBU4OtlfPB/vgxpjg+NRdGU6CN6djdc6OEiH+PcqHCY6eFLo9Ista73uarf4gnBg==} - '@vitest/utils@1.5.2': - resolution: {integrity: sha512-sWOmyofuXLJ85VvXNsroZur7mOJGiQeM0JN3/0D1uU8U9bGFM69X1iqHaRXl6R8BwaLY6yPCogP257zxTzkUdA==} + '@vitest/coverage-v8@2.0.3': + resolution: {integrity: sha512-53d+6jXFdYbasXBmsL6qaGIfcY5eBQq0sP57AjdasOcSiGNj4qxkkpDKIitUNfjxcfAfUfQ8BD0OR2fSey64+g==} + peerDependencies: + vitest: 2.0.3 - '@yarnpkg/lockfile@1.1.0': - resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + '@vitest/expect@2.0.3': + resolution: {integrity: sha512-X6AepoOYePM0lDNUPsGXTxgXZAl3EXd0GYe/MZyVE4HzkUqyUVC6S3PrY5mClDJ6/7/7vALLMV3+xD/Ko60Hqg==} - '@yarnpkg/parsers@3.0.0-rc.46': - resolution: {integrity: sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==} - engines: {node: '>=14.15.0'} + '@vitest/pretty-format@2.0.3': + resolution: {integrity: sha512-URM4GLsB2xD37nnTyvf6kfObFafxmycCL8un3OC9gaCs5cti2u+5rJdIflZ2fUJUen4NbvF6jCufwViAFLvz1g==} - '@zkochan/js-yaml@0.0.7': - resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} - hasBin: true + '@vitest/runner@2.0.3': + resolution: {integrity: sha512-EmSP4mcjYhAcuBWwqgpjR3FYVeiA4ROzRunqKltWjBfLNs1tnMLtF+qtgd5ClTwkDP6/DGlKJTNa6WxNK0bNYQ==} + + '@vitest/snapshot@2.0.3': + resolution: {integrity: sha512-6OyA6v65Oe3tTzoSuRPcU6kh9m+mPL1vQ2jDlPdn9IQoUxl8rXhBnfICNOC+vwxWY684Vt5UPgtcA2aPFBb6wg==} + + '@vitest/spy@2.0.3': + resolution: {integrity: sha512-sfqyAw/ypOXlaj4S+w8689qKM1OyPOqnonqOc9T91DsoHbfN5mU7FdifWWv3MtQFf0lEUstEwR9L/q/M390C+A==} + + '@vitest/utils@2.0.3': + resolution: {integrity: sha512-c/UdELMuHitQbbc/EVctlBaxoYAwQPQdSNwv7z/vHyBKy2edYZaFgptE27BRueZB7eW8po+cllotMNTDpL3HWg==} JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true - abbrev@2.0.0: - resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} - add-stream@1.0.0: - resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} + ajv-draft-04@1.0.0: + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} - engines: {node: '>= 14'} + ajv-errors@3.0.0: + resolution: {integrity: sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==} + peerDependencies: + ajv: ^8.0.1 - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + ansi-escapes@6.2.1: + resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} + engines: {node: '>=14.16'} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -1016,10 +972,6 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -1031,18 +983,12 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - array-differ@3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} - engines: {node: '>=8'} + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} @@ -1051,46 +997,38 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} - arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} - async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + hasBin: true asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + axios@1.7.2: resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - - bin-links@4.0.4: - resolution: {integrity: sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -1101,122 +1039,63 @@ packages: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - bundle-require@4.0.2: resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.17' - byte-size@8.1.1: - resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} - engines: {node: '>=12.17'} + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - cacache@18.0.3: - resolution: {integrity: sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==} - engines: {node: ^16.14.0 || >=18.0.0} + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} - chalk@4.1.0: - resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} - engines: {node: '>=10'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} + cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} - - clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - - cli-spinners@2.6.1: - resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} - engines: {node: '>=6'} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - - cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} - - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - - cmd-shim@6.0.3: - resolution: {integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + co-body@6.2.0: + resolution: {integrity: sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==} + engines: {node: '>=8.0.0'} color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -1231,13 +1110,8 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - - columnify@1.6.0: - resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} - engines: {node: '>=8.0.0'} + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} @@ -1247,21 +1121,15 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concat-stream@2.0.0: - resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} - engines: {'0': node >= 6.0} - - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} conventional-changelog-angular@7.0.0: resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} @@ -1271,40 +1139,14 @@ packages: resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} engines: {node: '>=16'} - conventional-changelog-core@5.0.1: - resolution: {integrity: sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==} - engines: {node: '>=14'} - - conventional-changelog-preset-loader@3.0.0: - resolution: {integrity: sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==} - engines: {node: '>=14'} - - conventional-changelog-writer@6.0.1: - resolution: {integrity: sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==} - engines: {node: '>=14'} - hasBin: true - - conventional-commits-filter@3.0.0: - resolution: {integrity: sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==} - engines: {node: '>=14'} - - conventional-commits-parser@4.0.0: - resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} - engines: {node: '>=14'} - hasBin: true - conventional-commits-parser@5.0.0: resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} engines: {node: '>=16'} hasBin: true - conventional-recommended-bump@7.0.1: - resolution: {integrity: sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==} - engines: {node: '>=14'} - hasBin: true - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} cosmiconfig-typescript-loader@5.0.0: resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} @@ -1314,15 +1156,6 @@ packages: cosmiconfig: '>=8.2' typescript: '>=4' - cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - cosmiconfig@9.0.0: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} @@ -1336,21 +1169,21 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} - dargs@8.1.0: resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} engines: {node: '>=12'} - dateformat@3.0.3: - resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -1361,47 +1194,45 @@ packages: supports-color: optional: true - decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} peerDependencies: - babel-plugin-macros: ^3.1.0 + supports-color: '*' peerDependenciesMeta: - babel-plugin-macros: + supports-color: optional: true - deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + dependency-graph@0.11.0: + resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==} + engines: {node: '>= 0.6.0'} - detect-indent@5.0.0: - resolution: {integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==} - engines: {node: '>=4'} + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dezalgo@1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} @@ -1411,24 +1242,15 @@ packages: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} - dotenv-expand@11.0.6: - resolution: {integrity: sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==} - engines: {node: '>=12'} - - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} - - duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} - hasBin: true + email-validator@2.0.4: + resolution: {integrity: sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==} + engines: {node: '>4.0'} + + emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1439,32 +1261,40 @@ packages: encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - - enquirer@2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} - env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - envinfo@7.13.0: - resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} - engines: {node: '>=4'} - hasBin: true - - err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true + es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} + + es-aggregate-error@1.0.13: + resolution: {integrity: sha512-KkzhUUuD2CUMqEc8JEqsXEMDHzDPE8RCjZeUBitsnB1eNcAJWQPiciKsMXe3Yytj4Flw1XLl46Qcf9OxvZha7A==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} esbuild@0.20.2: resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} @@ -1476,6 +1306,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} @@ -1484,20 +1319,15 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} - execa@5.0.0: - resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} - engines: {node: '>=10'} + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} @@ -1507,13 +1337,6 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - exponential-backoff@3.1.1: - resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1521,36 +1344,20 @@ packages: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} + fast-memoize@2.5.2: + resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==} + fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - - filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} - find-up@2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - find-up@7.0.0: resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} engines: {node: '>=18'} - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - follow-redirects@1.15.6: resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} engines: {node: '>=4.0'} @@ -1560,6 +1367,9 @@ packages: debug: optional: true + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} @@ -1568,26 +1378,12 @@ packages: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} - front-matter@4.0.2: - resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} - - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - - fs-minipass@3.0.3: - resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + formidable@3.5.1: + resolution: {integrity: sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og==} - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -1597,25 +1393,27 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - get-pkg-repo@4.2.1: - resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} - engines: {node: '>=6.9.0'} - hasBin: true - - get-port@5.1.1: - resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} - engines: {node: '>=8'} - - get-stream@6.0.0: - resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} - engines: {node: '>=10'} + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} @@ -1625,76 +1423,48 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + get-tsconfig@4.7.5: resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} - git-raw-commits@3.0.0: - resolution: {integrity: sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==} - engines: {node: '>=14'} - hasBin: true - git-raw-commits@4.0.0: resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} engines: {node: '>=16'} hasBin: true - git-remote-origin-url@2.0.0: - resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==} - engines: {node: '>=4'} - - git-semver-tags@5.0.1: - resolution: {integrity: sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==} - engines: {node: '>=14'} - hasBin: true - - git-up@7.0.0: - resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} - - git-url-parse@14.0.0: - resolution: {integrity: sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==} - - gitconfiglocal@1.0.0: - resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - glob@10.3.10: resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - - glob@9.3.5: - resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} - engines: {node: '>=16 || 14 >=14.17'} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true global-directory@4.0.1: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} - engines: {node: '>=0.4.7'} - hasBin: true - - hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} @@ -1704,41 +1474,35 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} - hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} - hosted-git-info@7.0.1: - resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} - engines: {node: ^16.14.0 || >=18.0.0} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} - hosted-git-info@7.0.2: - resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} - engines: {node: ^16.14.0 || >=18.0.0} + hexoid@1.0.0: + resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} + engines: {node: '>=8'} html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} - - https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} - engines: {node: '>= 14'} + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} @@ -1761,80 +1525,64 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - ignore-walk@6.0.5: - resolution: {integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} + immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true - import-meta-resolve@4.0.0: resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + inflation@2.1.0: + resolution: {integrity: sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==} + engines: {node: '>= 0.8.0'} inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - ini@4.1.1: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - init-package-json@6.0.3: - resolution: {integrity: sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==} - engines: {node: ^16.14.0 || >=18.0.0} - - inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} - ip-address@9.0.5: - resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} - engines: {node: '>= 12'} + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} @@ -1844,16 +1592,25 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} - is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} @@ -1863,24 +1620,13 @@ packages: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} - is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - - is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - - is-ssh@1.4.0: - resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} - is-stream@2.0.0: - resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==} - engines: {node: '>=8'} + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} @@ -1890,36 +1636,35 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-text-path@1.0.1: - resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} - engines: {node: '>=0.10.0'} + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} is-text-path@2.0.0: resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} engines: {node: '>=8'} - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} - - isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -1928,8 +1673,8 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@5.0.4: - resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} istanbul-reports@3.1.7: @@ -1940,18 +1685,8 @@ packages: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} - jake@10.9.1: - resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==} - engines: {node: '>=10'} - hasBin: true - - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} @@ -1964,79 +1699,45 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@8.0.3: - resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true + js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsbn@1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - - json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + jsep@1.3.8: + resolution: {integrity: sha512-qofGylTGgYj9gZFsHuyWAN4jr35eJ66qJCK4eKDnldohuUoQFbU3iZn2zjvEbd9wOAhP9Wx5DsAAduTyE1PSWQ==} + engines: {node: '>= 10.16.0'} json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-parse-even-better-errors@3.0.2: - resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json-stringify-nice@1.1.4: - resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} - - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - - jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonc-parser@2.2.1: + resolution: {integrity: sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==} jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} - just-diff-apply@5.5.0: - resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} + jsonpath-plus@6.0.1: + resolution: {integrity: sha512-EvGovdvau6FyLexFH2OeXfIITlgIbgZoAZe3usiySeaIDm5QS+A10DKNpaPBBqqRSZr2HN6HVNXxtwUAr2apEw==} + engines: {node: '>=10.0.0'} - just-diff@6.0.2: - resolution: {integrity: sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==} + jsonpath-plus@7.1.0: + resolution: {integrity: sha512-gTaNRsPWO/K2KY6MrqaUFClF9kmuM6MFH5Dhg1VYDODgFbByw1yb7xu3hrViE/sz+dGOeMWgCzwUwQtAnCTE9g==} + engines: {node: '>=12.0.0'} - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} - lerna@8.1.5: - resolution: {integrity: sha512-/eigpa/JTfKl9RP9QHK9Tifeog+dymYICqBoZlR4fjp94ol2Q6adYQHy8dWRkv0VPrHh/Xuy5VlmPaGvIoGeDw==} - engines: {node: '>=18.0.0'} - hasBin: true - - libnpmaccess@8.0.6: - resolution: {integrity: sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==} - engines: {node: ^16.14.0 || >=18.0.0} - - libnpmpublish@9.0.9: - resolution: {integrity: sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==} - engines: {node: ^16.14.0 || >=18.0.0} + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} lilconfig@3.1.1: resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} @@ -2045,44 +1746,24 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lines-and-columns@2.0.4: - resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} + listr2@8.2.3: + resolution: {integrity: sha512-Lllokma2mtoniUOS94CcOErHWAug5iu7HOmDrvWgpw8jyQH2fomgB+7lZS4HWZxytUuQwkGOwe49FvwVaA85Xw==} + engines: {node: '>=18.0.0'} + + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - load-json-file@4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} - - load-json-file@6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} - - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - - locate-path@2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - locate-path@7.2.0: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - lodash.ismatch@4.4.0: - resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} - lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} @@ -2104,6 +1785,9 @@ packages: lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + lodash.topath@4.5.2: + resolution: {integrity: sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==} + lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} @@ -2113,60 +1797,43 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + + log-update@6.0.0: + resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} + engines: {node: '>=18'} - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} lru-cache@10.2.0: resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} - lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} - engines: {node: 14 || >=16.14} - lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} - magic-string@0.30.8: - resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} - engines: {node: '>=12'} - - magicast@0.3.3: - resolution: {integrity: sha512-ZbrP1Qxnpoes8sz47AM0z08U+jW6TyRgZzcWy3Ma3vDhJttwMwAFDMMQFobwdBxByBD46JYmxRzeF7w2+wJEuw==} + magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} + magicast@0.3.4: + resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} - make-fetch-happen@13.0.1: - resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==} - engines: {node: ^16.14.0 || >=18.0.0} - - map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - - map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} meow@12.1.1: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} - meow@8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} - engines: {node: '>=10'} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -2194,24 +1861,9 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - - minimatch@3.0.5: - resolution: {integrity: sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - - minimatch@8.0.4: - resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} - engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} @@ -2220,79 +1872,20 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} - minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass-collect@2.0.1: - resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} - engines: {node: '>=16 || 14 >=14.17'} - - minipass-fetch@3.0.5: - resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} - - minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} - - minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} - - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - - mlly@1.6.1: - resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} - - modify-values@1.0.1: - resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} - engines: {node: '>=0.10.0'} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - multimatch@5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} - engines: {node: '>=10'} - - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - - mute-stream@1.0.0: - resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -2305,17 +1898,9 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - - node-fetch@2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + nimma@0.2.2: + resolution: {integrity: sha512-V52MLl7BU+tH2Np9tDrIXK8bql3MVUadnMIl/0/oZSGC9keuro0O9UUv9QKp0aMvtN8HRew4G7byY7H4eWsxaQ==} + engines: {node: ^12.20 || >=14.13} node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} @@ -2326,66 +1911,10 @@ packages: encoding: optional: true - node-gyp@10.1.0: - resolution: {integrity: sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==} - engines: {node: ^16.14.0 || >=18.0.0} - hasBin: true - - node-machine-id@1.1.12: - resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} - - nopt@7.2.1: - resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - - normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - - normalize-package-data@6.0.0: - resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} - engines: {node: ^16.14.0 || >=18.0.0} - - normalize-package-data@6.0.2: - resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} - engines: {node: ^16.14.0 || >=18.0.0} - normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - npm-bundled@3.0.1: - resolution: {integrity: sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-install-checks@6.3.0: - resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-normalize-package-bin@3.0.1: - resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-package-arg@11.0.2: - resolution: {integrity: sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==} - engines: {node: ^16.14.0 || >=18.0.0} - - npm-packlist@8.0.2: - resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-pick-manifest@9.0.1: - resolution: {integrity: sha512-Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw==} - engines: {node: ^16.14.0 || >=18.0.0} - - npm-registry-fetch@17.1.0: - resolution: {integrity: sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==} - engines: {node: ^16.14.0 || >=18.0.0} - npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -2394,22 +1923,25 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - nx@19.3.2: - resolution: {integrity: sha512-eKWs+ahkTKnq9EeWJCE4u8JLeq1cOHnq5DKoiisy2nwUg4KGy1odReegxUMLeEgNBcMI40EUtEJFiTMJSXZQeg==} - hasBin: true - peerDependencies: - '@swc-node/register': ^1.8.0 - '@swc/core': ^1.3.85 - peerDependenciesMeta: - '@swc-node/register': - optional: true - '@swc/core': - optional: true - object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object-to-formdata@4.5.1: + resolution: {integrity: sha512-QiM9D0NiU5jV6J6tjE1g7b4Z2tcUnKs1OPUi4iMb2zH+7jwlcUrASghgkFk9GtzqNNq8rTQJtT8AzjBAvLoNMw==} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -2425,133 +1957,32 @@ packages: resolution: {integrity: sha512-M7CJbmv7UCopc0neRKdzfoGWaVZC+xC1925GitKH9EAqYFzX9//25Q7oX4+jw0tiCCj+t5l6VZh8UPH23NZkMA==} hasBin: true - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - ora@5.3.0: - resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} - engines: {node: '>=10'} - - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - - p-limit@1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} p-limit@4.0.0: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - - p-locate@2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - p-locate@6.0.0: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-map-series@2.1.0: - resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==} - engines: {node: '>=8'} - - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - - p-pipe@3.1.0: - resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==} - engines: {node: '>=8'} - - p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} - - p-reduce@2.1.0: - resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} - engines: {node: '>=8'} - - p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} - - p-try@1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - p-waterfall@2.1.1: - resolution: {integrity: sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==} - engines: {node: '>=8'} - - pacote@18.0.6: - resolution: {integrity: sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==} - engines: {node: ^16.14.0 || >=18.0.0} - hasBin: true + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-conflict-json@3.0.1: - resolution: {integrity: sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse-path@7.0.0: - resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} - - parse-url@8.1.0: - resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} - - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - path-exists@5.0.0: resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -2560,16 +1991,17 @@ packages: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.10.1: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} - path-type@3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-to-regexp@7.0.0: + resolution: {integrity: sha512-58Y94bQqF3zBIASFNiufRPH1NfgZth1qwZ35radL87sg8pgbVqr6uikAhqZtFD+w65MGH6SWnY/ly3GbrM4fbg==} + engines: {node: '>=16'} path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} @@ -2578,8 +2010,9 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -2588,32 +2021,17 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pify@5.0.0: - resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} - engines: {node: '>=10'} - pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + pony-cause@1.1.1: + resolution: {integrity: sha512-PxkIc/2ZpLiEzQXu5YRDOUgBlfGYBY8156HY5ZcRAwwonMk5W/MrJP2LLkG/hF7GEQzaHo2aS7ho6ZLCOvf+6g==} + engines: {node: '>=12.0.0'} - pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} postcss-load-config@4.0.2: resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} @@ -2627,10 +2045,6 @@ packages: ts-node: optional: true - postcss-selector-parser@6.1.0: - resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} - engines: {node: '>=4'} - postcss@8.4.38: resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} @@ -2640,50 +2054,6 @@ packages: engines: {node: '>=14'} hasBin: true - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - proc-log@4.2.0: - resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - proggy@2.0.0: - resolution: {integrity: sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - promise-all-reject-late@1.0.1: - resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} - - promise-call-limit@3.0.1: - resolution: {integrity: sha512-utl+0x8gIDasV5X+PI5qWEPqH6fJS0pFtQ/4gZ95xfEFb/89dmh+/b895TbFDBLiafBvxD/PGTKfvxl4kH/pQg==} - - promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - - promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} - - promzard@1.0.2: - resolution: {integrity: sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - protocols@2.0.1: - resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} - proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} @@ -2691,58 +2061,27 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + qs@6.12.3: + resolution: {integrity: sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==} + engines: {node: '>=0.6'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - - react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - - read-cmd-shim@4.0.0: - resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - read-package-json-fast@3.0.2: - resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - read-pkg-up@3.0.0: - resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} - engines: {node: '>=4'} - - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - - read-pkg@3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - - read@3.0.1: - resolution: {integrity: sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + + request-ip@3.3.0: + resolution: {integrity: sha512-cA6Xh6e0fDBBBwH77SLJaJPBmD3nWVAcF9/XAcsrIHdjhFzFiB5aNQFytdjCGPezU3ROwrR11IddKAM08vohxA==} require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} @@ -2752,10 +2091,6 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -2767,63 +2102,57 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - - retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@4.4.1: - resolution: {integrity: sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==} - engines: {node: '>=14'} - hasBin: true + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} rollup@4.13.0: resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + safe-stable-stringify@1.1.1: + resolution: {integrity: sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==} safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - semver@7.6.0: resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} hasBin: true - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -2833,6 +2162,10 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -2843,77 +2176,41 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - sigstore@2.3.1: - resolution: {integrity: sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==} - engines: {node: ^16.14.0 || >=18.0.0} + simple-eval@1.0.0: + resolution: {integrity: sha512-kpKJR+bqTscgC0xuAl2xHN6bB12lHjC2DCUfqjAx19bQyO3R2EVLOurm3H9AUltv/uFVcSCVNc6faegR+8NYLw==} + engines: {node: '>=12'} slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - - socks-proxy-agent@8.0.3: - resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} - engines: {node: '>= 14'} - - socks@2.8.3: - resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} - sort-keys@2.0.0: - resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} - engines: {node: '>=4'} + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - source-map@0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} - - split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} - split@1.0.1: - resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - - ssri@10.0.6: - resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} @@ -2925,8 +2222,20 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} @@ -2936,14 +2245,6 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -2952,17 +2253,8 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-literal@2.0.0: - resolution: {integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==} - - strong-log-transformer@2.1.0: - resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} - engines: {node: '>=4'} - hasBin: true + strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} @@ -2977,29 +2269,9 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - - temp-dir@1.0.0: - resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} - engines: {node: '>=4'} - - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - - text-extensions@1.9.0: - resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} - engines: {node: '>=0.10'} + test-exclude@7.0.1: + resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + engines: {node: '>=18'} text-extensions@2.4.0: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} @@ -3012,30 +2284,23 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - tinybench@2.6.0: - resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} + tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} - tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} - engines: {node: '>=14.0.0'} + tinypool@1.0.0: + resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} + engines: {node: ^18.0.0 || >=20.0.0} - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - - tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} - engines: {node: '>=14.14'} + tinyspy@3.0.0: + resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} + engines: {node: '>=14.0.0'} to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} @@ -3045,6 +2310,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -3055,29 +2324,17 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - treeverse@3.0.0: - resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - - ts-expect@1.3.0: - resolution: {integrity: sha512-e4g0EJtAjk64xgnFPD6kTBUtpnMVzDrMb12N1YZV0VvSlhnVT3SGxiYTLdGy8Q5cYHOIC/FAHmZ10eGrAguicQ==} - ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - tsup@8.0.2: - resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==} + tsup@8.1.0: + resolution: {integrity: sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -3095,54 +2352,38 @@ packages: typescript: optional: true - tsx@4.15.6: - resolution: {integrity: sha512-is0VQQlfNZRHEuSSTKA6m4xw74IU4AizmuB6lAYLRt9XtuyeQnyJYexhNZOPCB59SqC4JzmSzPnHGBXxf3k0hA==} + tsx@4.16.2: + resolution: {integrity: sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==} engines: {node: '>=18.0.0'} hasBin: true - tuf-js@2.2.1: - resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} - engines: {node: ^16.14.0 || >=18.0.0} - - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} - type-fest@0.4.1: - resolution: {integrity: sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==} - engines: {node: '>=6'} + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} - typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} typescript@5.5.3: resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} engines: {node: '>=14.17'} hasBin: true - ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} - - uglify-js@3.18.0: - resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} - engines: {node: '>=0.8.0'} - hasBin: true + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} @@ -3151,44 +2392,26 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} - unique-filename@3.0.0: - resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - unique-slug@4.0.0: - resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - upath@2.0.1: - resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} - engines: {node: '>=4'} + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + urijs@1.19.11: + resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==} - uuid@10.0.0: - resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} - hasBin: true - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + utility-types@3.11.0: + resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} + engines: {node: '>= 4'} - validate-npm-package-name@5.0.1: - resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} - vite-node@1.5.2: - resolution: {integrity: sha512-Y8p91kz9zU+bWtF7HGt6DVw2JbhyuB2RlZix3FPYAYmUyZ3n7iTp8eSyLyY6sxtPegvxQtmlTMhfPhUfCUF93A==} + vite-node@2.0.3: + resolution: {integrity: sha512-14jzwMx7XTcMB+9BhGQyoEAmSl0eOr3nrnn+Z12WNERtOvLN+d2scbRUvyni05rT3997Bg+rZb47NyP4IQPKXg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -3220,15 +2443,15 @@ packages: terser: optional: true - vitest@1.5.2: - resolution: {integrity: sha512-l9gwIkq16ug3xY7BxHwcBQovLZG75zZL0PlsiYQbf76Rz6QGs54416UWMtC0jXeihvHvcHrf2ROEjkQRVpoZYw==} + vitest@2.0.3: + resolution: {integrity: sha512-o3HRvU93q6qZK4rI2JrhKyZMMuxg/JRt30E6qeQs6ueaiz5hr1cPj+Sk2kATgQzMMqsa2DiNI0TIK++1ULx8Jw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.5.2 - '@vitest/ui': 1.5.2 + '@vitest/browser': 2.0.3 + '@vitest/ui': 2.0.3 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -3245,12 +2468,6 @@ packages: jsdom: optional: true - walk-up-path@3.0.1: - resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} - - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -3263,35 +2480,27 @@ packages: whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-pm-runs@1.1.0: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true - which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} - hasBin: true - why-is-node-running@2.2.2: resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} engines: {node: '>=8'} hasBin: true - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - - wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -3300,28 +2509,13 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@2.4.3: - resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} - - write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - write-json-file@3.2.0: - resolution: {integrity: sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==} - engines: {node: '>=6'} - - write-pkg@4.0.0: - resolution: {integrity: sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==} - engines: {node: '>=8'} - - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -3334,18 +2528,10 @@ packages: engines: {node: '>= 14'} hasBin: true - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -3361,6 +2547,84 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + '@aomex/console@1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3))': + dependencies: + '@aomex/core': 1.7.0(@types/node@20.14.10)(typescript@5.5.3) + '@aomex/internal-tools': 1.7.0 + glob: 10.3.10 + tsx: 4.16.2 + yargs: 17.7.2 + yargs-parser: 21.1.1 + + '@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3)': + dependencies: + '@aomex/internal-tools': 1.7.0 + '@types/node': 20.14.10 + email-validator: 2.0.4 + openapi-types: 12.1.3 + typescript: 5.5.3 + + '@aomex/internal-file-import@1.7.0': + dependencies: + glob: 10.3.10 + + '@aomex/internal-tools@1.7.0': + dependencies: + '@types/bytes': 3.1.4 + bytes: 3.1.2 + + '@aomex/openapi@1.7.0(@aomex/console@1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3)))(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3))(@aomex/router@1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3))(@aomex/web@1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3))))(@aomex/web@1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3)))(encoding@0.1.13)': + dependencies: + '@aomex/console': 1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3)) + '@aomex/core': 1.7.0(@types/node@20.14.10)(typescript@5.5.3) + '@aomex/internal-file-import': 1.7.0 + '@aomex/internal-tools': 1.7.0 + '@aomex/router': 1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3))(@aomex/web@1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3))) + '@aomex/web': 1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3)) + '@stoplight/spectral-core': 1.18.3(encoding@0.1.13) + '@stoplight/spectral-rulesets': 1.19.1(encoding@0.1.13) + listr2: 8.2.3 + lodash.snakecase: 4.1.1 + log-symbols: 6.0.0 + yaml: 2.4.5 + transitivePeerDependencies: + - encoding + + '@aomex/router@1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3))(@aomex/web@1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3)))': + dependencies: + '@aomex/core': 1.7.0(@types/node@20.14.10)(typescript@5.5.3) + '@aomex/internal-file-import': 1.7.0 + '@aomex/internal-tools': 1.7.0 + '@aomex/web': 1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3)) + path-to-regexp: 7.0.0 + + '@aomex/web@1.7.0(@aomex/core@1.7.0(@types/node@20.14.10)(typescript@5.5.3))': + dependencies: + '@aomex/core': 1.7.0(@types/node@20.14.10)(typescript@5.5.3) + '@aomex/internal-tools': 1.7.0 + '@types/accepts': 1.3.7 + '@types/cookie': 0.6.0 + '@types/formidable': 3.4.5 + '@types/http-errors': 2.0.4 + '@types/statuses': 2.0.5 + accepts: 1.3.8 + co-body: 6.2.0 + content-disposition: 0.5.4 + cookie: 0.6.0 + destroy: 1.2.0 + formidable: 3.5.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime-types: 2.1.35 + request-ip: 3.3.0 + statuses: 2.0.1 + type-is: 1.6.18 + vary: 1.1.2 + + '@asyncapi/specs@4.3.1': + dependencies: + '@types/json-schema': 7.0.15 + '@babel/code-frame@7.24.2': dependencies: '@babel/highlight': 7.24.2 @@ -3377,7 +2641,7 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.0 - '@babel/parser@7.24.1': + '@babel/parser@7.24.8': dependencies: '@babel/types': 7.24.0 @@ -3389,11 +2653,11 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@commitlint/cli@19.3.0(@types/node@18.19.39)(typescript@5.5.3)': + '@commitlint/cli@19.3.0(@types/node@20.14.10)(typescript@5.5.3)': dependencies: '@commitlint/format': 19.3.0 '@commitlint/lint': 19.2.2 - '@commitlint/load': 19.2.0(@types/node@18.19.39)(typescript@5.5.3) + '@commitlint/load': 19.2.0(@types/node@20.14.10)(typescript@5.5.3) '@commitlint/read': 19.2.1 '@commitlint/types': 19.0.3 execa: 8.0.1 @@ -3440,7 +2704,7 @@ snapshots: '@commitlint/rules': 19.0.3 '@commitlint/types': 19.0.3 - '@commitlint/load@19.2.0(@types/node@18.19.39)(typescript@5.5.3)': + '@commitlint/load@19.2.0(@types/node@20.14.10)(typescript@5.5.3)': dependencies: '@commitlint/config-validator': 19.0.3 '@commitlint/execute-rule': 19.0.0 @@ -3448,7 +2712,7 @@ snapshots: '@commitlint/types': 19.0.3 chalk: 5.3.0 cosmiconfig: 9.0.0(typescript@5.5.3) - cosmiconfig-typescript-loader: 5.0.0(@types/node@18.19.39)(cosmiconfig@9.0.0(typescript@5.5.3))(typescript@5.5.3) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.14.10)(cosmiconfig@9.0.0(typescript@5.5.3))(typescript@5.5.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -3500,16 +2764,13 @@ snapshots: '@types/conventional-commits-parser': 5.0.0 chalk: 5.3.0 - '@esbuild/aix-ppc64@0.19.12': - optional: true - '@esbuild/aix-ppc64@0.20.2': optional: true '@esbuild/aix-ppc64@0.21.4': optional: true - '@esbuild/android-arm64@0.19.12': + '@esbuild/aix-ppc64@0.21.5': optional: true '@esbuild/android-arm64@0.20.2': @@ -3518,7 +2779,7 @@ snapshots: '@esbuild/android-arm64@0.21.4': optional: true - '@esbuild/android-arm@0.19.12': + '@esbuild/android-arm64@0.21.5': optional: true '@esbuild/android-arm@0.20.2': @@ -3527,7 +2788,7 @@ snapshots: '@esbuild/android-arm@0.21.4': optional: true - '@esbuild/android-x64@0.19.12': + '@esbuild/android-arm@0.21.5': optional: true '@esbuild/android-x64@0.20.2': @@ -3536,7 +2797,7 @@ snapshots: '@esbuild/android-x64@0.21.4': optional: true - '@esbuild/darwin-arm64@0.19.12': + '@esbuild/android-x64@0.21.5': optional: true '@esbuild/darwin-arm64@0.20.2': @@ -3545,7 +2806,7 @@ snapshots: '@esbuild/darwin-arm64@0.21.4': optional: true - '@esbuild/darwin-x64@0.19.12': + '@esbuild/darwin-arm64@0.21.5': optional: true '@esbuild/darwin-x64@0.20.2': @@ -3554,7 +2815,7 @@ snapshots: '@esbuild/darwin-x64@0.21.4': optional: true - '@esbuild/freebsd-arm64@0.19.12': + '@esbuild/darwin-x64@0.21.5': optional: true '@esbuild/freebsd-arm64@0.20.2': @@ -3563,7 +2824,7 @@ snapshots: '@esbuild/freebsd-arm64@0.21.4': optional: true - '@esbuild/freebsd-x64@0.19.12': + '@esbuild/freebsd-arm64@0.21.5': optional: true '@esbuild/freebsd-x64@0.20.2': @@ -3572,7 +2833,7 @@ snapshots: '@esbuild/freebsd-x64@0.21.4': optional: true - '@esbuild/linux-arm64@0.19.12': + '@esbuild/freebsd-x64@0.21.5': optional: true '@esbuild/linux-arm64@0.20.2': @@ -3581,7 +2842,7 @@ snapshots: '@esbuild/linux-arm64@0.21.4': optional: true - '@esbuild/linux-arm@0.19.12': + '@esbuild/linux-arm64@0.21.5': optional: true '@esbuild/linux-arm@0.20.2': @@ -3590,7 +2851,7 @@ snapshots: '@esbuild/linux-arm@0.21.4': optional: true - '@esbuild/linux-ia32@0.19.12': + '@esbuild/linux-arm@0.21.5': optional: true '@esbuild/linux-ia32@0.20.2': @@ -3599,7 +2860,7 @@ snapshots: '@esbuild/linux-ia32@0.21.4': optional: true - '@esbuild/linux-loong64@0.19.12': + '@esbuild/linux-ia32@0.21.5': optional: true '@esbuild/linux-loong64@0.20.2': @@ -3608,7 +2869,7 @@ snapshots: '@esbuild/linux-loong64@0.21.4': optional: true - '@esbuild/linux-mips64el@0.19.12': + '@esbuild/linux-loong64@0.21.5': optional: true '@esbuild/linux-mips64el@0.20.2': @@ -3617,7 +2878,7 @@ snapshots: '@esbuild/linux-mips64el@0.21.4': optional: true - '@esbuild/linux-ppc64@0.19.12': + '@esbuild/linux-mips64el@0.21.5': optional: true '@esbuild/linux-ppc64@0.20.2': @@ -3626,7 +2887,7 @@ snapshots: '@esbuild/linux-ppc64@0.21.4': optional: true - '@esbuild/linux-riscv64@0.19.12': + '@esbuild/linux-ppc64@0.21.5': optional: true '@esbuild/linux-riscv64@0.20.2': @@ -3635,7 +2896,7 @@ snapshots: '@esbuild/linux-riscv64@0.21.4': optional: true - '@esbuild/linux-s390x@0.19.12': + '@esbuild/linux-riscv64@0.21.5': optional: true '@esbuild/linux-s390x@0.20.2': @@ -3644,7 +2905,7 @@ snapshots: '@esbuild/linux-s390x@0.21.4': optional: true - '@esbuild/linux-x64@0.19.12': + '@esbuild/linux-s390x@0.21.5': optional: true '@esbuild/linux-x64@0.20.2': @@ -3653,7 +2914,7 @@ snapshots: '@esbuild/linux-x64@0.21.4': optional: true - '@esbuild/netbsd-x64@0.19.12': + '@esbuild/linux-x64@0.21.5': optional: true '@esbuild/netbsd-x64@0.20.2': @@ -3662,7 +2923,7 @@ snapshots: '@esbuild/netbsd-x64@0.21.4': optional: true - '@esbuild/openbsd-x64@0.19.12': + '@esbuild/netbsd-x64@0.21.5': optional: true '@esbuild/openbsd-x64@0.20.2': @@ -3671,7 +2932,7 @@ snapshots: '@esbuild/openbsd-x64@0.21.4': optional: true - '@esbuild/sunos-x64@0.19.12': + '@esbuild/openbsd-x64@0.21.5': optional: true '@esbuild/sunos-x64@0.20.2': @@ -3680,7 +2941,7 @@ snapshots: '@esbuild/sunos-x64@0.21.4': optional: true - '@esbuild/win32-arm64@0.19.12': + '@esbuild/sunos-x64@0.21.5': optional: true '@esbuild/win32-arm64@0.20.2': @@ -3689,7 +2950,7 @@ snapshots: '@esbuild/win32-arm64@0.21.4': optional: true - '@esbuild/win32-ia32@0.19.12': + '@esbuild/win32-arm64@0.21.5': optional: true '@esbuild/win32-ia32@0.20.2': @@ -3698,7 +2959,7 @@ snapshots: '@esbuild/win32-ia32@0.21.4': optional: true - '@esbuild/win32-x64@0.19.12': + '@esbuild/win32-ia32@0.21.5': optional: true '@esbuild/win32-x64@0.20.2': @@ -3707,7 +2968,10 @@ snapshots: '@esbuild/win32-x64@0.21.4': optional: true - '@hutson/parse-repository-url@3.0.2': {} + '@esbuild/win32-x64@0.21.5': + optional: true + + '@hapi/bourne@3.0.0': {} '@isaacs/cliui@8.0.2': dependencies: @@ -3718,14 +2982,8 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@isaacs/string-locale-compare@1.1.0': {} - '@istanbuljs/schema@0.1.3': {} - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -3743,86 +3001,13 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@lerna/create@8.1.5(encoding@0.1.13)(typescript@5.5.3)': - dependencies: - '@npmcli/arborist': 7.5.3 - '@npmcli/package-json': 5.2.0 - '@npmcli/run-script': 8.1.0 - '@nx/devkit': 19.3.2(nx@19.3.2) - '@octokit/plugin-enterprise-rest': 6.0.1 - '@octokit/rest': 19.0.11(encoding@0.1.13) - aproba: 2.0.0 - byte-size: 8.1.1 - chalk: 4.1.0 - clone-deep: 4.0.1 - cmd-shim: 6.0.3 - color-support: 1.1.3 - columnify: 1.6.0 - console-control-strings: 1.1.0 - conventional-changelog-core: 5.0.1 - conventional-recommended-bump: 7.0.1 - cosmiconfig: 8.3.6(typescript@5.5.3) - dedent: 1.5.3 - execa: 5.0.0 - fs-extra: 11.2.0 - get-stream: 6.0.0 - git-url-parse: 14.0.0 - glob-parent: 6.0.2 - globby: 11.1.0 - graceful-fs: 4.2.11 - has-unicode: 2.0.1 - ini: 1.3.8 - init-package-json: 6.0.3 - inquirer: 8.2.6 - is-ci: 3.0.1 - is-stream: 2.0.0 - js-yaml: 4.1.0 - libnpmpublish: 9.0.9 - load-json-file: 6.2.0 - lodash: 4.17.21 - make-dir: 4.0.0 - minimatch: 3.0.5 - multimatch: 5.0.0 - node-fetch: 2.6.7(encoding@0.1.13) - npm-package-arg: 11.0.2 - npm-packlist: 8.0.2 - npm-registry-fetch: 17.1.0 - nx: 19.3.2 - p-map: 4.0.0 - p-map-series: 2.1.0 - p-queue: 6.6.2 - p-reduce: 2.1.0 - pacote: 18.0.6 - pify: 5.0.0 - read-cmd-shim: 4.0.0 - resolve-from: 5.0.0 - rimraf: 4.4.1 - semver: 7.6.0 - set-blocking: 2.0.0 - signal-exit: 3.0.7 - slash: 3.0.0 - ssri: 10.0.6 - strong-log-transformer: 2.1.0 - tar: 6.2.1 - temp-dir: 1.0.0 - upath: 2.0.1 - uuid: 10.0.0 - validate-npm-package-license: 3.0.4 - validate-npm-package-name: 5.0.1 - wide-align: 1.1.5 - write-file-atomic: 5.0.1 - write-pkg: 4.0.0 - yargs: 17.7.2 - yargs-parser: 21.1.1 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - babel-plugin-macros - - bluebird - - debug - - encoding - - supports-color - - typescript + '@jsep-plugin/regex@1.0.3(jsep@1.3.8)': + dependencies: + jsep: 1.3.8 + + '@jsep-plugin/ternary@1.1.3(jsep@1.3.8)': + dependencies: + jsep: 1.3.8 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -3836,457 +3021,335 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@npmcli/agent@2.2.2': - dependencies: - agent-base: 7.1.1 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 - lru-cache: 10.2.0 - socks-proxy-agent: 8.0.3 - transitivePeerDependencies: - - supports-color - - '@npmcli/arborist@7.5.3': - dependencies: - '@isaacs/string-locale-compare': 1.1.0 - '@npmcli/fs': 3.1.1 - '@npmcli/installed-package-contents': 2.1.0 - '@npmcli/map-workspaces': 3.0.6 - '@npmcli/metavuln-calculator': 7.1.1 - '@npmcli/name-from-folder': 2.0.0 - '@npmcli/node-gyp': 3.0.0 - '@npmcli/package-json': 5.2.0 - '@npmcli/query': 3.1.0 - '@npmcli/redact': 2.0.1 - '@npmcli/run-script': 8.1.0 - bin-links: 4.0.4 - cacache: 18.0.3 - common-ancestor-path: 1.0.1 - hosted-git-info: 7.0.2 - json-parse-even-better-errors: 3.0.2 - json-stringify-nice: 1.1.4 - lru-cache: 10.2.2 - minimatch: 9.0.5 - nopt: 7.2.1 - npm-install-checks: 6.3.0 - npm-package-arg: 11.0.2 - npm-pick-manifest: 9.0.1 - npm-registry-fetch: 17.1.0 - pacote: 18.0.6 - parse-conflict-json: 3.0.1 - proc-log: 4.2.0 - proggy: 2.0.0 - promise-all-reject-late: 1.0.1 - promise-call-limit: 3.0.1 - read-package-json-fast: 3.0.2 - semver: 7.6.0 - ssri: 10.0.6 - treeverse: 3.0.0 - walk-up-path: 3.0.1 - transitivePeerDependencies: - - bluebird - - supports-color - - '@npmcli/fs@3.1.1': - dependencies: - semver: 7.6.0 - - '@npmcli/git@5.0.7': - dependencies: - '@npmcli/promise-spawn': 7.0.2 - lru-cache: 10.2.0 - npm-pick-manifest: 9.0.1 - proc-log: 4.2.0 - promise-inflight: 1.0.1 - promise-retry: 2.0.1 - semver: 7.6.0 - which: 4.0.0 - transitivePeerDependencies: - - bluebird - - '@npmcli/installed-package-contents@2.1.0': - dependencies: - npm-bundled: 3.0.1 - npm-normalize-package-bin: 3.0.1 - - '@npmcli/map-workspaces@3.0.6': - dependencies: - '@npmcli/name-from-folder': 2.0.0 - glob: 10.3.10 - minimatch: 9.0.5 - read-package-json-fast: 3.0.2 - - '@npmcli/metavuln-calculator@7.1.1': - dependencies: - cacache: 18.0.3 - json-parse-even-better-errors: 3.0.2 - pacote: 18.0.6 - proc-log: 4.2.0 - semver: 7.6.0 - transitivePeerDependencies: - - bluebird - - supports-color - - '@npmcli/name-from-folder@2.0.0': {} - - '@npmcli/node-gyp@3.0.0': {} - - '@npmcli/package-json@5.2.0': - dependencies: - '@npmcli/git': 5.0.7 - glob: 10.3.10 - hosted-git-info: 7.0.1 - json-parse-even-better-errors: 3.0.2 - normalize-package-data: 6.0.0 - proc-log: 4.2.0 - semver: 7.6.0 - transitivePeerDependencies: - - bluebird - - '@npmcli/promise-spawn@7.0.2': - dependencies: - which: 4.0.0 - - '@npmcli/query@3.1.0': - dependencies: - postcss-selector-parser: 6.1.0 - - '@npmcli/redact@2.0.1': {} - - '@npmcli/run-script@8.1.0': - dependencies: - '@npmcli/node-gyp': 3.0.0 - '@npmcli/package-json': 5.2.0 - '@npmcli/promise-spawn': 7.0.2 - node-gyp: 10.1.0 - proc-log: 4.2.0 - which: 4.0.0 - transitivePeerDependencies: - - bluebird - - supports-color - - '@nrwl/devkit@19.3.2(nx@19.3.2)': - dependencies: - '@nx/devkit': 19.3.2(nx@19.3.2) - transitivePeerDependencies: - - nx - - '@nrwl/tao@19.3.2': - dependencies: - nx: 19.3.2 - tslib: 2.6.3 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - debug + '@pkgjs/parseargs@0.11.0': + optional: true - '@nx/devkit@19.3.2(nx@19.3.2)': - dependencies: - '@nrwl/devkit': 19.3.2(nx@19.3.2) - ejs: 3.1.10 - enquirer: 2.3.6 - ignore: 5.3.1 - minimatch: 9.0.3 - nx: 19.3.2 - semver: 7.6.0 - tmp: 0.2.3 - tslib: 2.6.3 - yargs-parser: 21.1.1 + '@rollup/rollup-android-arm-eabi@4.13.0': + optional: true - '@nx/nx-darwin-arm64@19.3.2': + '@rollup/rollup-android-arm64@4.13.0': optional: true - '@nx/nx-darwin-x64@19.3.2': + '@rollup/rollup-darwin-arm64@4.13.0': optional: true - '@nx/nx-freebsd-x64@19.3.2': + '@rollup/rollup-darwin-x64@4.13.0': optional: true - '@nx/nx-linux-arm-gnueabihf@19.3.2': + '@rollup/rollup-linux-arm-gnueabihf@4.13.0': optional: true - '@nx/nx-linux-arm64-gnu@19.3.2': + '@rollup/rollup-linux-arm64-gnu@4.13.0': optional: true - '@nx/nx-linux-arm64-musl@19.3.2': + '@rollup/rollup-linux-arm64-musl@4.13.0': optional: true - '@nx/nx-linux-x64-gnu@19.3.2': + '@rollup/rollup-linux-riscv64-gnu@4.13.0': optional: true - '@nx/nx-linux-x64-musl@19.3.2': + '@rollup/rollup-linux-x64-gnu@4.13.0': optional: true - '@nx/nx-win32-arm64-msvc@19.3.2': + '@rollup/rollup-linux-x64-musl@4.13.0': optional: true - '@nx/nx-win32-x64-msvc@19.3.2': + '@rollup/rollup-win32-arm64-msvc@4.13.0': optional: true - '@octokit/auth-token@3.0.4': {} + '@rollup/rollup-win32-ia32-msvc@4.13.0': + optional: true - '@octokit/core@4.2.4(encoding@0.1.13)': - dependencies: - '@octokit/auth-token': 3.0.4 - '@octokit/graphql': 5.0.6(encoding@0.1.13) - '@octokit/request': 6.2.8(encoding@0.1.13) - '@octokit/request-error': 3.0.3 - '@octokit/types': 9.3.2 - before-after-hook: 2.2.3 - universal-user-agent: 6.0.1 - transitivePeerDependencies: - - encoding + '@rollup/rollup-win32-x64-msvc@4.13.0': + optional: true - '@octokit/endpoint@7.0.6': + '@stoplight/better-ajv-errors@1.0.3(ajv@8.12.0)': dependencies: - '@octokit/types': 9.3.2 - is-plain-object: 5.0.0 - universal-user-agent: 6.0.1 + ajv: 8.12.0 + jsonpointer: 5.0.1 + leven: 3.1.0 - '@octokit/graphql@5.0.6(encoding@0.1.13)': + '@stoplight/json-ref-readers@1.2.2(encoding@0.1.13)': dependencies: - '@octokit/request': 6.2.8(encoding@0.1.13) - '@octokit/types': 9.3.2 - universal-user-agent: 6.0.1 + node-fetch: 2.7.0(encoding@0.1.13) + tslib: 1.14.1 transitivePeerDependencies: - encoding - '@octokit/openapi-types@18.1.1': {} - - '@octokit/plugin-enterprise-rest@6.0.1': {} - - '@octokit/plugin-paginate-rest@6.1.2(@octokit/core@4.2.4(encoding@0.1.13))': + '@stoplight/json-ref-resolver@3.1.6': dependencies: - '@octokit/core': 4.2.4(encoding@0.1.13) - '@octokit/tsconfig': 1.0.2 - '@octokit/types': 9.3.2 + '@stoplight/json': 3.21.0 + '@stoplight/path': 1.3.2 + '@stoplight/types': 13.20.0 + '@types/urijs': 1.19.25 + dependency-graph: 0.11.0 + fast-memoize: 2.5.2 + immer: 9.0.21 + lodash: 4.17.21 + tslib: 2.6.3 + urijs: 1.19.11 - '@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.4(encoding@0.1.13))': + '@stoplight/json@3.21.0': dependencies: - '@octokit/core': 4.2.4(encoding@0.1.13) + '@stoplight/ordered-object-literal': 1.0.5 + '@stoplight/path': 1.3.2 + '@stoplight/types': 13.20.0 + jsonc-parser: 2.2.1 + lodash: 4.17.21 + safe-stable-stringify: 1.1.1 - '@octokit/plugin-rest-endpoint-methods@7.2.3(@octokit/core@4.2.4(encoding@0.1.13))': - dependencies: - '@octokit/core': 4.2.4(encoding@0.1.13) - '@octokit/types': 10.0.0 + '@stoplight/ordered-object-literal@1.0.5': {} - '@octokit/request-error@3.0.3': - dependencies: - '@octokit/types': 9.3.2 - deprecation: 2.3.1 - once: 1.4.0 + '@stoplight/path@1.3.2': {} - '@octokit/request@6.2.8(encoding@0.1.13)': + '@stoplight/spectral-core@1.18.3(encoding@0.1.13)': dependencies: - '@octokit/endpoint': 7.0.6 - '@octokit/request-error': 3.0.3 - '@octokit/types': 9.3.2 - is-plain-object: 5.0.0 - node-fetch: 2.7.0(encoding@0.1.13) - universal-user-agent: 6.0.1 + '@stoplight/better-ajv-errors': 1.0.3(ajv@8.12.0) + '@stoplight/json': 3.21.0 + '@stoplight/path': 1.3.2 + '@stoplight/spectral-parsers': 1.0.4 + '@stoplight/spectral-ref-resolver': 1.0.4(encoding@0.1.13) + '@stoplight/spectral-runtime': 1.1.2(encoding@0.1.13) + '@stoplight/types': 13.6.0 + '@types/es-aggregate-error': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 8.12.0 + ajv-errors: 3.0.0(ajv@8.12.0) + ajv-formats: 2.1.1(ajv@8.12.0) + es-aggregate-error: 1.0.13 + jsonpath-plus: 7.1.0 + lodash: 4.17.21 + lodash.topath: 4.5.2 + minimatch: 3.1.2 + nimma: 0.2.2 + pony-cause: 1.1.1 + simple-eval: 1.0.0 + tslib: 2.6.3 transitivePeerDependencies: - encoding - '@octokit/rest@19.0.11(encoding@0.1.13)': + '@stoplight/spectral-formats@1.6.0(encoding@0.1.13)': dependencies: - '@octokit/core': 4.2.4(encoding@0.1.13) - '@octokit/plugin-paginate-rest': 6.1.2(@octokit/core@4.2.4(encoding@0.1.13)) - '@octokit/plugin-request-log': 1.0.4(@octokit/core@4.2.4(encoding@0.1.13)) - '@octokit/plugin-rest-endpoint-methods': 7.2.3(@octokit/core@4.2.4(encoding@0.1.13)) + '@stoplight/json': 3.21.0 + '@stoplight/spectral-core': 1.18.3(encoding@0.1.13) + '@types/json-schema': 7.0.15 + tslib: 2.6.3 transitivePeerDependencies: - encoding - '@octokit/tsconfig@1.0.2': {} - - '@octokit/types@10.0.0': + '@stoplight/spectral-functions@1.8.0(encoding@0.1.13)': dependencies: - '@octokit/openapi-types': 18.1.1 + '@stoplight/better-ajv-errors': 1.0.3(ajv@8.12.0) + '@stoplight/json': 3.21.0 + '@stoplight/spectral-core': 1.18.3(encoding@0.1.13) + '@stoplight/spectral-formats': 1.6.0(encoding@0.1.13) + '@stoplight/spectral-runtime': 1.1.2(encoding@0.1.13) + ajv: 8.12.0 + ajv-draft-04: 1.0.0(ajv@8.12.0) + ajv-errors: 3.0.0(ajv@8.12.0) + ajv-formats: 2.1.1(ajv@8.12.0) + lodash: 4.17.21 + tslib: 2.6.3 + transitivePeerDependencies: + - encoding - '@octokit/types@9.3.2': + '@stoplight/spectral-parsers@1.0.4': dependencies: - '@octokit/openapi-types': 18.1.1 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@rollup/rollup-android-arm-eabi@4.13.0': - optional: true - - '@rollup/rollup-android-arm64@4.13.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.13.0': - optional: true - - '@rollup/rollup-darwin-x64@4.13.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.13.0': - optional: true + '@stoplight/json': 3.21.0 + '@stoplight/types': 14.1.1 + '@stoplight/yaml': 4.3.0 + tslib: 2.6.3 - '@rollup/rollup-linux-arm64-gnu@4.13.0': - optional: true + '@stoplight/spectral-ref-resolver@1.0.4(encoding@0.1.13)': + dependencies: + '@stoplight/json-ref-readers': 1.2.2(encoding@0.1.13) + '@stoplight/json-ref-resolver': 3.1.6 + '@stoplight/spectral-runtime': 1.1.2(encoding@0.1.13) + dependency-graph: 0.11.0 + tslib: 2.6.3 + transitivePeerDependencies: + - encoding - '@rollup/rollup-linux-arm64-musl@4.13.0': - optional: true + '@stoplight/spectral-rulesets@1.19.1(encoding@0.1.13)': + dependencies: + '@asyncapi/specs': 4.3.1 + '@stoplight/better-ajv-errors': 1.0.3(ajv@8.12.0) + '@stoplight/json': 3.21.0 + '@stoplight/spectral-core': 1.18.3(encoding@0.1.13) + '@stoplight/spectral-formats': 1.6.0(encoding@0.1.13) + '@stoplight/spectral-functions': 1.8.0(encoding@0.1.13) + '@stoplight/spectral-runtime': 1.1.2(encoding@0.1.13) + '@stoplight/types': 13.20.0 + '@types/json-schema': 7.0.15 + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + json-schema-traverse: 1.0.0 + leven: 3.1.0 + lodash: 4.17.21 + tslib: 2.6.3 + transitivePeerDependencies: + - encoding - '@rollup/rollup-linux-riscv64-gnu@4.13.0': - optional: true + '@stoplight/spectral-runtime@1.1.2(encoding@0.1.13)': + dependencies: + '@stoplight/json': 3.21.0 + '@stoplight/path': 1.3.2 + '@stoplight/types': 12.5.0 + abort-controller: 3.0.0 + lodash: 4.17.21 + node-fetch: 2.7.0(encoding@0.1.13) + tslib: 2.6.3 + transitivePeerDependencies: + - encoding - '@rollup/rollup-linux-x64-gnu@4.13.0': - optional: true + '@stoplight/types@12.5.0': + dependencies: + '@types/json-schema': 7.0.15 + utility-types: 3.11.0 - '@rollup/rollup-linux-x64-musl@4.13.0': - optional: true + '@stoplight/types@13.20.0': + dependencies: + '@types/json-schema': 7.0.15 + utility-types: 3.11.0 - '@rollup/rollup-win32-arm64-msvc@4.13.0': - optional: true + '@stoplight/types@13.6.0': + dependencies: + '@types/json-schema': 7.0.15 + utility-types: 3.11.0 - '@rollup/rollup-win32-ia32-msvc@4.13.0': - optional: true + '@stoplight/types@14.1.1': + dependencies: + '@types/json-schema': 7.0.15 + utility-types: 3.11.0 - '@rollup/rollup-win32-x64-msvc@4.13.0': - optional: true + '@stoplight/yaml-ast-parser@0.0.50': {} - '@sigstore/bundle@2.3.2': + '@stoplight/yaml@4.3.0': dependencies: - '@sigstore/protobuf-specs': 0.3.2 + '@stoplight/ordered-object-literal': 1.0.5 + '@stoplight/types': 14.1.1 + '@stoplight/yaml-ast-parser': 0.0.50 + tslib: 2.6.3 - '@sigstore/core@1.1.0': {} + '@types/accepts@1.3.7': + dependencies: + '@types/node': 20.14.10 - '@sigstore/protobuf-specs@0.3.2': {} + '@types/bytes@3.1.4': {} - '@sigstore/sign@2.3.2': + '@types/conventional-commits-parser@5.0.0': dependencies: - '@sigstore/bundle': 2.3.2 - '@sigstore/core': 1.1.0 - '@sigstore/protobuf-specs': 0.3.2 - make-fetch-happen: 13.0.1 - proc-log: 4.2.0 - promise-retry: 2.0.1 - transitivePeerDependencies: - - supports-color + '@types/node': 20.14.10 - '@sigstore/tuf@2.3.4': - dependencies: - '@sigstore/protobuf-specs': 0.3.2 - tuf-js: 2.2.1 - transitivePeerDependencies: - - supports-color + '@types/cookie@0.6.0': {} - '@sigstore/verify@1.2.1': + '@types/es-aggregate-error@1.0.6': dependencies: - '@sigstore/bundle': 2.3.2 - '@sigstore/core': 1.1.0 - '@sigstore/protobuf-specs': 0.3.2 - - '@sinclair/typebox@0.27.8': {} + '@types/node': 20.14.10 - '@tufjs/canonical-json@2.0.0': {} + '@types/estree@1.0.5': {} - '@tufjs/models@2.0.1': + '@types/formidable@3.4.5': dependencies: - '@tufjs/canonical-json': 2.0.0 - minimatch: 9.0.5 + '@types/node': 20.14.10 - '@types/conventional-commits-parser@5.0.0': - dependencies: - '@types/node': 18.19.39 + '@types/http-errors@2.0.4': {} - '@types/estree@1.0.5': {} + '@types/json-schema@7.0.15': {} - '@types/minimatch@3.0.5': {} + '@types/lodash-es@4.17.12': + dependencies: + '@types/lodash': 4.17.6 - '@types/minimist@1.2.5': {} + '@types/lodash@4.17.6': {} - '@types/node@18.19.39': + '@types/node@20.14.10': dependencies: undici-types: 5.26.5 - '@types/normalize-package-data@2.4.4': {} + '@types/qs@6.9.15': {} + + '@types/statuses@2.0.5': {} + + '@types/urijs@1.19.25': {} - '@vitest/coverage-v8@1.5.2(vitest@1.5.2(@types/node@18.19.39))': + '@vitest/coverage-v8@2.0.3(vitest@2.0.3(@types/node@20.14.10))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 - debug: 4.3.4 + debug: 4.3.5 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.4 + istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - magic-string: 0.30.8 - magicast: 0.3.3 - picocolors: 1.0.0 + magic-string: 0.30.10 + magicast: 0.3.4 std-env: 3.7.0 - strip-literal: 2.0.0 - test-exclude: 6.0.0 - vitest: 1.5.2(@types/node@18.19.39) + strip-literal: 2.1.0 + test-exclude: 7.0.1 + tinyrainbow: 1.2.0 + vitest: 2.0.3(@types/node@20.14.10) transitivePeerDependencies: - supports-color - '@vitest/expect@1.5.2': + '@vitest/expect@2.0.3': dependencies: - '@vitest/spy': 1.5.2 - '@vitest/utils': 1.5.2 - chai: 4.4.1 + '@vitest/spy': 2.0.3 + '@vitest/utils': 2.0.3 + chai: 5.1.1 + tinyrainbow: 1.2.0 - '@vitest/runner@1.5.2': + '@vitest/pretty-format@2.0.3': dependencies: - '@vitest/utils': 1.5.2 - p-limit: 5.0.0 - pathe: 1.1.2 + tinyrainbow: 1.2.0 - '@vitest/snapshot@1.5.2': + '@vitest/runner@2.0.3': dependencies: - magic-string: 0.30.8 + '@vitest/utils': 2.0.3 pathe: 1.1.2 - pretty-format: 29.7.0 - - '@vitest/spy@1.5.2': - dependencies: - tinyspy: 2.2.1 - '@vitest/utils@1.5.2': + '@vitest/snapshot@2.0.3': dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - - '@yarnpkg/lockfile@1.1.0': {} + '@vitest/pretty-format': 2.0.3 + magic-string: 0.30.10 + pathe: 1.1.2 - '@yarnpkg/parsers@3.0.0-rc.46': + '@vitest/spy@2.0.3': dependencies: - js-yaml: 3.14.1 - tslib: 2.6.3 + tinyspy: 3.0.0 - '@zkochan/js-yaml@0.0.7': + '@vitest/utils@2.0.3': dependencies: - argparse: 2.0.1 + '@vitest/pretty-format': 2.0.3 + estree-walker: 3.0.3 + loupe: 3.1.1 + tinyrainbow: 1.2.0 JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 through: 2.3.8 - abbrev@2.0.0: {} - - acorn-walk@8.3.2: {} + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 - acorn@8.11.3: {} + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 - add-stream@1.0.0: {} + ajv-draft-04@1.0.0(ajv@8.12.0): + optionalDependencies: + ajv: 8.12.0 - agent-base@7.1.1: + ajv-errors@3.0.0(ajv@8.12.0): dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color + ajv: 8.12.0 - aggregate-error@3.1.0: - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 + ajv-formats@2.1.1(ajv@8.12.0): + optionalDependencies: + ajv: 8.12.0 ajv@8.12.0: dependencies: @@ -4295,11 +3358,7 @@ snapshots: require-from-string: 2.0.2 uri-js: 4.4.1 - ansi-colors@4.1.3: {} - - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 + ansi-escapes@6.2.1: {} ansi-regex@5.0.1: {} @@ -4313,8 +3372,6 @@ snapshots: dependencies: color-convert: 2.0.1 - ansi-styles@5.2.0: {} - ansi-styles@6.2.1: {} any-promise@1.3.0: {} @@ -4324,30 +3381,40 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - aproba@2.0.0: {} - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - argparse@2.0.1: {} - array-differ@3.0.0: {} + array-buffer-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 array-ify@1.0.0: {} array-union@2.1.0: {} - arrify@1.0.1: {} + arraybuffer.prototype.slice@1.0.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 - arrify@2.0.1: {} + asap@2.0.6: {} - assertion-error@1.1.0: {} + assertion-error@2.0.1: {} - async@3.2.5: {} + astring@1.8.6: {} asynckit@0.4.0: {} + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + axios@1.7.2: dependencies: follow-redirects: 1.15.6 @@ -4358,25 +3425,8 @@ snapshots: balanced-match@1.0.2: {} - base64-js@1.5.1: {} - - before-after-hook@2.2.3: {} - - bin-links@4.0.4: - dependencies: - cmd-shim: 6.0.3 - npm-normalize-package-bin: 3.0.1 - read-cmd-shim: 4.0.0 - write-file-atomic: 5.0.1 - binary-extensions@2.3.0: {} - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -4390,56 +3440,32 @@ snapshots: dependencies: fill-range: 7.0.1 - buffer-from@1.1.2: {} - - buffer@5.7.1: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - bundle-require@4.0.2(esbuild@0.19.12): + bundle-require@4.0.2(esbuild@0.21.4): dependencies: - esbuild: 0.19.12 + esbuild: 0.21.4 load-tsconfig: 0.2.5 - byte-size@8.1.1: {} + bytes@3.1.2: {} cac@6.7.14: {} - cacache@18.0.3: + call-bind@1.0.7: dependencies: - '@npmcli/fs': 3.1.1 - fs-minipass: 3.0.3 - glob: 10.3.10 - lru-cache: 10.2.0 - minipass: 7.0.4 - minipass-collect: 2.0.1 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - p-map: 4.0.0 - ssri: 10.0.6 - tar: 6.2.1 - unique-filename: 3.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 callsites@3.1.0: {} - camelcase-keys@6.2.2: - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - - camelcase@5.3.1: {} - - chai@4.4.1: + chai@5.1.1: dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 chalk@2.4.2: dependencies: @@ -4447,23 +3473,9 @@ snapshots: escape-string-regexp: 1.0.5 supports-color: 5.5.0 - chalk@4.1.0: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - chalk@5.3.0: {} - chardet@0.7.0: {} - - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 + check-error@2.1.1: {} chokidar@3.6.0: dependencies: @@ -4477,29 +3489,14 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chownr@2.0.0: {} - - ci-info@3.9.0: {} - - ci-info@4.0.0: {} - - clean-stack@2.2.0: {} - - cli-cursor@3.1.0: + cli-cursor@4.0.0: dependencies: - restore-cursor: 3.1.0 - - cli-spinners@2.6.1: {} - - cli-spinners@2.9.2: {} - - cli-width@3.0.0: {} + restore-cursor: 4.0.0 - cliui@7.0.4: + cli-truncate@4.0.0: dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 + slice-ansi: 5.0.0 + string-width: 7.2.0 cliui@8.0.1: dependencies: @@ -4507,15 +3504,13 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clone-deep@4.0.1: + co-body@6.2.0: dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 - - clone@1.0.4: {} - - cmd-shim@6.0.3: {} + '@hapi/bourne': 3.0.0 + inflation: 2.1.0 + qs: 6.12.3 + raw-body: 2.5.2 + type-is: 1.6.18 color-convert@1.9.3: dependencies: @@ -4529,12 +3524,7 @@ snapshots: color-name@1.1.4: {} - color-support@1.1.3: {} - - columnify@1.6.0: - dependencies: - strip-ansi: 6.0.1 - wcwidth: 1.0.1 + colorette@2.0.20: {} combined-stream@1.0.8: dependencies: @@ -4542,8 +3532,6 @@ snapshots: commander@4.1.1: {} - common-ancestor-path@1.0.1: {} - compare-func@2.0.0: dependencies: array-ify: 1.0.0 @@ -4551,14 +3539,9 @@ snapshots: concat-map@0.0.1: {} - concat-stream@2.0.0: + content-disposition@0.5.4: dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 3.6.2 - typedarray: 0.0.6 - - console-control-strings@1.1.0: {} + safe-buffer: 5.2.1 conventional-changelog-angular@7.0.0: dependencies: @@ -4568,44 +3551,6 @@ snapshots: dependencies: compare-func: 2.0.0 - conventional-changelog-core@5.0.1: - dependencies: - add-stream: 1.0.0 - conventional-changelog-writer: 6.0.1 - conventional-commits-parser: 4.0.0 - dateformat: 3.0.3 - get-pkg-repo: 4.2.1 - git-raw-commits: 3.0.0 - git-remote-origin-url: 2.0.0 - git-semver-tags: 5.0.1 - normalize-package-data: 3.0.3 - read-pkg: 3.0.0 - read-pkg-up: 3.0.0 - - conventional-changelog-preset-loader@3.0.0: {} - - conventional-changelog-writer@6.0.1: - dependencies: - conventional-commits-filter: 3.0.0 - dateformat: 3.0.3 - handlebars: 4.7.8 - json-stringify-safe: 5.0.1 - meow: 8.1.2 - semver: 7.6.0 - split: 1.0.1 - - conventional-commits-filter@3.0.0: - dependencies: - lodash.ismatch: 4.4.0 - modify-values: 1.0.1 - - conventional-commits-parser@4.0.0: - dependencies: - JSONStream: 1.3.5 - is-text-path: 1.0.1 - meow: 8.1.2 - split2: 3.2.2 - conventional-commits-parser@5.0.0: dependencies: JSONStream: 1.3.5 @@ -4613,34 +3558,15 @@ snapshots: meow: 12.1.1 split2: 4.2.0 - conventional-recommended-bump@7.0.1: - dependencies: - concat-stream: 2.0.0 - conventional-changelog-preset-loader: 3.0.0 - conventional-commits-filter: 3.0.0 - conventional-commits-parser: 4.0.0 - git-raw-commits: 3.0.0 - git-semver-tags: 5.0.1 - meow: 8.1.2 - - core-util-is@1.0.3: {} + cookie@0.6.0: {} - cosmiconfig-typescript-loader@5.0.0(@types/node@18.19.39)(cosmiconfig@9.0.0(typescript@5.5.3))(typescript@5.5.3): + cosmiconfig-typescript-loader@5.0.0(@types/node@20.14.10)(cosmiconfig@9.0.0(typescript@5.5.3))(typescript@5.5.3): dependencies: - '@types/node': 18.19.39 + '@types/node': 20.14.10 cosmiconfig: 9.0.0(typescript@5.5.3) jiti: 1.21.0 typescript: 5.5.3 - cosmiconfig@8.3.6(typescript@5.5.3): - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - optionalDependencies: - typescript: 5.5.3 - cosmiconfig@9.0.0(typescript@5.5.3): dependencies: env-paths: 2.2.1 @@ -4656,44 +3582,60 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - cssesc@3.0.0: {} + dargs@8.1.0: {} - dargs@7.0.0: {} + data-view-buffer@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 - dargs@8.1.0: {} + data-view-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 - dateformat@3.0.3: {} + data-view-byte-offset@1.0.0: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 debug@4.3.4: dependencies: ms: 2.1.2 - decamelize-keys@1.1.1: + debug@4.3.5: dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - - decamelize@1.2.0: {} + ms: 2.1.2 - dedent@1.5.3: {} + deep-eql@5.0.2: {} - deep-eql@4.1.3: + define-data-property@1.1.4: dependencies: - type-detect: 4.0.8 + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 - defaults@1.0.4: + define-properties@1.2.1: dependencies: - clone: 1.0.4 - - define-lazy-prop@2.0.0: {} + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 delayed-stream@1.0.0: {} - deprecation@2.3.1: {} + depd@2.0.0: {} - detect-indent@5.0.0: {} + dependency-graph@0.11.0: {} - diff-sequences@29.6.3: {} + destroy@1.2.0: {} + + dezalgo@1.0.4: + dependencies: + asap: 2.0.6 + wrappy: 1.0.2 dir-glob@3.0.1: dependencies: @@ -4703,19 +3645,11 @@ snapshots: dependencies: is-obj: 2.0.0 - dotenv-expand@11.0.6: - dependencies: - dotenv: 16.4.5 - - dotenv@16.4.5: {} - - duplexer@0.1.2: {} - eastasianwidth@0.2.0: {} - ejs@3.1.10: - dependencies: - jake: 10.9.1 + email-validator@2.0.4: {} + + emoji-regex@10.3.0: {} emoji-regex@8.0.0: {} @@ -4726,49 +3660,93 @@ snapshots: iconv-lite: 0.6.3 optional: true - end-of-stream@1.4.4: - dependencies: - once: 1.4.0 + env-paths@2.2.1: {} - enquirer@2.3.6: + error-ex@1.3.2: dependencies: - ansi-colors: 4.1.3 + is-arrayish: 0.2.1 - env-paths@2.2.1: {} + es-abstract@1.23.3: + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.2 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + + es-aggregate-error@1.0.13: + dependencies: + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + function-bind: 1.1.2 + globalthis: 1.0.4 + has-property-descriptors: 1.0.2 + set-function-name: 2.0.2 - envinfo@7.13.0: {} + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 - err-code@2.0.3: {} + es-errors@1.3.0: {} - error-ex@1.3.2: + es-object-atoms@1.0.0: dependencies: - is-arrayish: 0.2.1 + es-errors: 1.3.0 - esbuild@0.19.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-to-primitive@1.2.1: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 esbuild@0.20.2: optionalDependencies: @@ -4822,29 +3800,43 @@ snapshots: '@esbuild/win32-ia32': 0.21.4 '@esbuild/win32-x64': 0.21.4 + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + escalade@3.1.2: {} escape-string-regexp@1.0.5: {} - esprima@4.0.1: {} - estree-walker@3.0.3: dependencies: '@types/estree': 1.0.5 - eventemitter3@4.0.7: {} + event-target-shim@5.0.1: {} - execa@5.0.0: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 + eventemitter3@5.0.1: {} execa@5.1.1: dependencies: @@ -4870,14 +3862,6 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - exponential-backoff@3.1.1: {} - - external-editor@3.1.0: - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - fast-deep-equal@3.1.3: {} fast-glob@3.3.2: @@ -4888,41 +3872,28 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.5 + fast-memoize@2.5.2: {} + fastq@1.17.1: dependencies: reusify: 1.0.4 - figures@3.2.0: - dependencies: - escape-string-regexp: 1.0.5 - - filelist@1.0.4: - dependencies: - minimatch: 5.1.6 - fill-range@7.0.1: dependencies: to-regex-range: 5.0.1 - find-up@2.1.0: - dependencies: - locate-path: 2.0.0 - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - find-up@7.0.0: dependencies: locate-path: 7.2.0 path-exists: 5.0.0 unicorn-magic: 0.1.0 - flat@5.0.2: {} - follow-redirects@1.15.6: {} + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + foreground-child@3.1.1: dependencies: cross-spawn: 7.0.3 @@ -4934,61 +3905,55 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 - front-matter@4.0.2: - dependencies: - js-yaml: 3.14.1 - - fs-constants@1.0.0: {} - - fs-extra@11.2.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-minipass@2.1.0: + formidable@3.5.1: dependencies: - minipass: 3.3.6 - - fs-minipass@3.0.3: - dependencies: - minipass: 7.0.4 + dezalgo: 1.0.4 + hexoid: 1.0.0 + once: 1.4.0 - fs.realpath@1.0.0: {} + fresh@0.5.2: {} fsevents@2.3.3: optional: true function-bind@1.1.2: {} + function.prototype.name@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + functions-have-names: 1.2.3 + + functions-have-names@1.2.3: {} + get-caller-file@2.0.5: {} + get-east-asian-width@1.2.0: {} + get-func-name@2.0.2: {} - get-pkg-repo@4.2.1: + get-intrinsic@1.2.4: dependencies: - '@hutson/parse-repository-url': 3.0.2 - hosted-git-info: 4.1.0 - through2: 2.0.5 - yargs: 16.2.0 - - get-port@5.1.1: {} - - get-stream@6.0.0: {} + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 get-stream@6.0.1: {} get-stream@8.0.1: {} - get-tsconfig@4.7.5: + get-symbol-description@1.0.2: dependencies: - resolve-pkg-maps: 1.0.0 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 - git-raw-commits@3.0.0: + get-tsconfig@4.7.5: dependencies: - dargs: 7.0.0 - meow: 8.1.2 - split2: 3.2.2 + resolve-pkg-maps: 1.0.0 git-raw-commits@4.0.0: dependencies: @@ -4996,37 +3961,10 @@ snapshots: meow: 12.1.1 split2: 4.2.0 - git-remote-origin-url@2.0.0: - dependencies: - gitconfiglocal: 1.0.0 - pify: 2.3.0 - - git-semver-tags@5.0.1: - dependencies: - meow: 8.1.2 - semver: 7.6.0 - - git-up@7.0.0: - dependencies: - is-ssh: 1.4.0 - parse-url: 8.1.0 - - git-url-parse@14.0.0: - dependencies: - git-up: 7.0.0 - - gitconfiglocal@1.0.0: - dependencies: - ini: 1.3.8 - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - glob@10.3.10: dependencies: foreground-child: 3.1.1 @@ -5035,26 +3973,24 @@ snapshots: minipass: 7.0.4 path-scurry: 1.10.1 - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - glob@9.3.5: + glob@10.4.5: dependencies: - fs.realpath: 1.0.0 - minimatch: 8.0.4 - minipass: 4.2.8 - path-scurry: 1.10.1 + foreground-child: 3.1.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 global-directory@4.0.1: dependencies: ini: 4.1.1 + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.0.1 + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -5064,60 +4000,43 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - graceful-fs@4.2.11: {} - - handlebars@4.7.8: + gopd@1.0.1: dependencies: - minimist: 1.2.8 - neo-async: 2.6.2 - source-map: 0.6.1 - wordwrap: 1.0.0 - optionalDependencies: - uglify-js: 3.18.0 + get-intrinsic: 1.2.4 - hard-rejection@2.1.0: {} + has-bigints@1.0.2: {} has-flag@3.0.0: {} has-flag@4.0.0: {} - has-unicode@2.0.1: {} - - hasown@2.0.2: + has-property-descriptors@1.0.2: dependencies: - function-bind: 1.1.2 + es-define-property: 1.0.0 - hosted-git-info@2.8.9: {} + has-proto@1.0.3: {} - hosted-git-info@4.1.0: - dependencies: - lru-cache: 6.0.0 + has-symbols@1.0.3: {} - hosted-git-info@7.0.1: + has-tostringtag@1.0.2: dependencies: - lru-cache: 10.2.0 + has-symbols: 1.0.3 - hosted-git-info@7.0.2: + hasown@2.0.2: dependencies: - lru-cache: 10.2.2 - - html-escaper@2.0.2: {} + function-bind: 1.1.2 - http-cache-semantics@4.1.1: {} + hexoid@1.0.0: {} - http-proxy-agent@7.0.2: - dependencies: - agent-base: 7.1.1 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color + html-escaper@2.0.2: {} - https-proxy-agent@7.0.4: + http-errors@2.0.0: dependencies: - agent-base: 7.1.1 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 human-signals@2.1.0: {} @@ -5134,147 +4053,121 @@ snapshots: safer-buffer: 2.1.2 optional: true - ieee754@1.2.1: {} - - ignore-walk@6.0.5: - dependencies: - minimatch: 9.0.3 - ignore@5.3.1: {} + immer@9.0.21: {} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - import-local@3.1.0: - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - import-meta-resolve@4.0.0: {} - imurmurhash@0.1.4: {} - - indent-string@4.0.0: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 + inflation@2.1.0: {} inherits@2.0.4: {} - ini@1.3.8: {} - ini@4.1.1: {} - init-package-json@6.0.3: + internal-slot@1.0.7: dependencies: - '@npmcli/package-json': 5.2.0 - npm-package-arg: 11.0.2 - promzard: 1.0.2 - read: 3.0.1 - semver: 7.6.0 - validate-npm-package-license: 3.0.4 - validate-npm-package-name: 5.0.1 - transitivePeerDependencies: - - bluebird - - inquirer@8.2.6: - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 6.2.0 + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 - ip-address@9.0.5: + is-array-buffer@3.0.4: dependencies: - jsbn: 1.1.0 - sprintf-js: 1.1.3 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 is-arrayish@0.2.1: {} + is-bigint@1.0.4: + dependencies: + has-bigints: 1.0.2 + is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - is-ci@3.0.1: + is-boolean-object@1.1.2: dependencies: - ci-info: 3.9.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 - is-core-module@2.13.1: + is-callable@1.2.7: {} + + is-data-view@1.0.1: dependencies: - hasown: 2.0.2 + is-typed-array: 1.1.13 - is-docker@2.2.1: {} + is-date-object@1.0.5: + dependencies: + has-tostringtag: 1.0.2 is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.2.0 + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - is-interactive@1.0.0: {} + is-negative-zero@2.0.3: {} - is-lambda@1.0.1: {} + is-number-object@1.0.7: + dependencies: + has-tostringtag: 1.0.2 is-number@7.0.0: {} is-obj@2.0.0: {} - is-plain-obj@1.1.0: {} - - is-plain-object@2.0.4: + is-regex@1.1.4: dependencies: - isobject: 3.0.1 - - is-plain-object@5.0.0: {} + call-bind: 1.0.7 + has-tostringtag: 1.0.2 - is-ssh@1.4.0: + is-shared-array-buffer@1.0.3: dependencies: - protocols: 2.0.1 - - is-stream@2.0.0: {} + call-bind: 1.0.7 is-stream@2.0.1: {} is-stream@3.0.0: {} - is-text-path@1.0.1: + is-string@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + + is-symbol@1.0.4: dependencies: - text-extensions: 1.9.0 + has-symbols: 1.0.3 is-text-path@2.0.0: dependencies: text-extensions: 2.4.0 - is-unicode-supported@0.1.0: {} - - is-wsl@2.2.0: + is-typed-array@1.1.13: dependencies: - is-docker: 2.2.1 + which-typed-array: 1.1.15 - isarray@1.0.0: {} + is-unicode-supported@1.3.0: {} - isexe@2.0.0: {} + is-weakref@1.0.2: + dependencies: + call-bind: 1.0.7 - isexe@3.1.1: {} + isarray@2.0.5: {} - isobject@3.0.1: {} + isexe@2.0.0: {} istanbul-lib-coverage@3.2.2: {} @@ -5284,10 +4177,10 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@5.0.4: + istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.4 + debug: 4.3.5 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -5303,21 +4196,11 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jake@10.9.1: - dependencies: - async: 3.2.5 - chalk: 4.1.0 - filelist: 1.0.4 - minimatch: 3.1.2 - - jest-diff@29.7.0: + jackspeak@3.4.3: dependencies: - chalk: 4.1.0 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-get-type@29.6.3: {} + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 jiti@1.21.0: {} @@ -5325,204 +4208,53 @@ snapshots: js-tokens@4.0.0: {} - js-tokens@8.0.3: {} - - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 + js-tokens@9.0.0: {} js-yaml@4.1.0: dependencies: argparse: 2.0.1 - jsbn@1.1.0: {} - - json-parse-better-errors@1.0.2: {} + jsep@1.3.8: {} json-parse-even-better-errors@2.3.1: {} - json-parse-even-better-errors@3.0.2: {} - json-schema-traverse@1.0.0: {} - json-stringify-nice@1.1.4: {} - - json-stringify-safe@5.0.1: {} - - json5@2.2.3: {} - - jsonc-parser@3.2.0: {} - - jsonc-parser@3.2.1: {} - - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 + jsonc-parser@2.2.1: {} jsonparse@1.3.1: {} - just-diff-apply@5.5.0: {} - - just-diff@6.0.2: {} - - kind-of@6.0.3: {} - - lerna@8.1.5(encoding@0.1.13): - dependencies: - '@lerna/create': 8.1.5(encoding@0.1.13)(typescript@5.5.3) - '@npmcli/arborist': 7.5.3 - '@npmcli/package-json': 5.2.0 - '@npmcli/run-script': 8.1.0 - '@nx/devkit': 19.3.2(nx@19.3.2) - '@octokit/plugin-enterprise-rest': 6.0.1 - '@octokit/rest': 19.0.11(encoding@0.1.13) - aproba: 2.0.0 - byte-size: 8.1.1 - chalk: 4.1.0 - clone-deep: 4.0.1 - cmd-shim: 6.0.3 - color-support: 1.1.3 - columnify: 1.6.0 - console-control-strings: 1.1.0 - conventional-changelog-angular: 7.0.0 - conventional-changelog-core: 5.0.1 - conventional-recommended-bump: 7.0.1 - cosmiconfig: 8.3.6(typescript@5.5.3) - dedent: 1.5.3 - envinfo: 7.13.0 - execa: 5.0.0 - fs-extra: 11.2.0 - get-port: 5.1.1 - get-stream: 6.0.0 - git-url-parse: 14.0.0 - glob-parent: 6.0.2 - globby: 11.1.0 - graceful-fs: 4.2.11 - has-unicode: 2.0.1 - import-local: 3.1.0 - ini: 1.3.8 - init-package-json: 6.0.3 - inquirer: 8.2.6 - is-ci: 3.0.1 - is-stream: 2.0.0 - jest-diff: 29.7.0 - js-yaml: 4.1.0 - libnpmaccess: 8.0.6 - libnpmpublish: 9.0.9 - load-json-file: 6.2.0 - lodash: 4.17.21 - make-dir: 4.0.0 - minimatch: 3.0.5 - multimatch: 5.0.0 - node-fetch: 2.6.7(encoding@0.1.13) - npm-package-arg: 11.0.2 - npm-packlist: 8.0.2 - npm-registry-fetch: 17.1.0 - nx: 19.3.2 - p-map: 4.0.0 - p-map-series: 2.1.0 - p-pipe: 3.1.0 - p-queue: 6.6.2 - p-reduce: 2.1.0 - p-waterfall: 2.1.1 - pacote: 18.0.6 - pify: 5.0.0 - read-cmd-shim: 4.0.0 - resolve-from: 5.0.0 - rimraf: 4.4.1 - semver: 7.6.0 - set-blocking: 2.0.0 - signal-exit: 3.0.7 - slash: 3.0.0 - ssri: 10.0.6 - strong-log-transformer: 2.1.0 - tar: 6.2.1 - temp-dir: 1.0.0 - typescript: 5.5.3 - upath: 2.0.1 - uuid: 10.0.0 - validate-npm-package-license: 3.0.4 - validate-npm-package-name: 5.0.1 - wide-align: 1.1.5 - write-file-atomic: 5.0.1 - write-pkg: 4.0.0 - yargs: 17.7.2 - yargs-parser: 21.1.1 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - babel-plugin-macros - - bluebird - - debug - - encoding - - supports-color + jsonpath-plus@6.0.1: + optional: true - libnpmaccess@8.0.6: - dependencies: - npm-package-arg: 11.0.2 - npm-registry-fetch: 17.1.0 - transitivePeerDependencies: - - supports-color + jsonpath-plus@7.1.0: {} - libnpmpublish@9.0.9: - dependencies: - ci-info: 4.0.0 - normalize-package-data: 6.0.2 - npm-package-arg: 11.0.2 - npm-registry-fetch: 17.1.0 - proc-log: 4.2.0 - semver: 7.6.0 - sigstore: 2.3.1 - ssri: 10.0.6 - transitivePeerDependencies: - - supports-color + jsonpointer@5.0.1: {} + + leven@3.1.0: {} lilconfig@3.1.1: {} lines-and-columns@1.2.4: {} - lines-and-columns@2.0.4: {} - - load-json-file@4.0.0: - dependencies: - graceful-fs: 4.2.11 - parse-json: 4.0.0 - pify: 3.0.0 - strip-bom: 3.0.0 - - load-json-file@6.2.0: + listr2@8.2.3: dependencies: - graceful-fs: 4.2.11 - parse-json: 5.2.0 - strip-bom: 4.0.0 - type-fest: 0.6.0 + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.0.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.0 load-tsconfig@0.2.5: {} - local-pkg@0.5.0: - dependencies: - mlly: 1.6.1 - pkg-types: 1.0.3 - - locate-path@2.0.0: - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - locate-path@7.2.0: dependencies: p-locate: 6.0.0 - lodash.camelcase@4.3.0: {} + lodash-es@4.17.21: {} - lodash.ismatch@4.4.0: {} + lodash.camelcase@4.3.0: {} lodash.isplainobject@4.0.6: {} @@ -5538,85 +4270,55 @@ snapshots: lodash.startcase@4.4.0: {} + lodash.topath@4.5.2: {} + lodash.uniq@4.5.0: {} lodash.upperfirst@4.3.1: {} lodash@4.17.21: {} - log-symbols@4.1.0: + log-symbols@6.0.0: dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 + chalk: 5.3.0 + is-unicode-supported: 1.3.0 - loupe@2.3.7: + log-update@6.0.0: + dependencies: + ansi-escapes: 6.2.1 + cli-cursor: 4.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + + loupe@3.1.1: dependencies: get-func-name: 2.0.2 lru-cache@10.2.0: {} - lru-cache@10.2.2: {} - lru-cache@6.0.0: dependencies: yallist: 4.0.0 - magic-string@0.30.8: + magic-string@0.30.10: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - magicast@0.3.3: + magicast@0.3.4: dependencies: - '@babel/parser': 7.24.1 + '@babel/parser': 7.24.8 '@babel/types': 7.24.0 source-map-js: 1.2.0 - make-dir@2.1.0: - dependencies: - pify: 4.0.1 - semver: 5.7.2 - make-dir@4.0.0: dependencies: semver: 7.6.0 - make-fetch-happen@13.0.1: - dependencies: - '@npmcli/agent': 2.2.2 - cacache: 18.0.3 - http-cache-semantics: 4.1.1 - is-lambda: 1.0.1 - minipass: 7.0.4 - minipass-fetch: 3.0.5 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - negotiator: 0.6.3 - proc-log: 4.2.0 - promise-retry: 2.0.1 - ssri: 10.0.6 - transitivePeerDependencies: - - supports-color - - map-obj@1.0.1: {} - - map-obj@4.3.0: {} + media-typer@0.3.0: {} meow@12.1.1: {} - meow@8.1.2: - dependencies: - '@types/minimist': 1.2.5 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -5636,24 +4338,10 @@ snapshots: mimic-fn@4.0.0: {} - min-indent@1.0.1: {} - - minimatch@3.0.5: - dependencies: - brace-expansion: 1.1.11 - minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.1 - - minimatch@8.0.4: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.3: dependencies: brace-expansion: 2.0.1 @@ -5662,395 +4350,97 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimist-options@4.1.0: - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - minimist@1.2.8: {} - minipass-collect@2.0.1: - dependencies: - minipass: 7.0.4 - - minipass-fetch@3.0.5: - dependencies: - minipass: 7.0.4 - minipass-sized: 1.0.3 - minizlib: 2.1.2 - optionalDependencies: - encoding: 0.1.13 - - minipass-flush@1.0.5: - dependencies: - minipass: 3.3.6 - - minipass-pipeline@1.2.4: - dependencies: - minipass: 3.3.6 - - minipass-sized@1.0.3: - dependencies: - minipass: 3.3.6 - - minipass@3.3.6: - dependencies: - yallist: 4.0.0 - - minipass@4.2.8: {} - - minipass@5.0.0: {} - minipass@7.0.4: {} - minizlib@2.1.2: - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - - mkdirp@1.0.4: {} - - mlly@1.6.1: - dependencies: - acorn: 8.11.3 - pathe: 1.1.2 - pkg-types: 1.0.3 - ufo: 1.5.3 - - modify-values@1.0.1: {} + minipass@7.1.2: {} ms@2.1.2: {} - multimatch@5.0.0: - dependencies: - '@types/minimatch': 3.0.5 - array-differ: 3.0.0 - array-union: 2.1.0 - arrify: 2.0.1 - minimatch: 3.1.2 - - mute-stream@0.0.8: {} - - mute-stream@1.0.0: {} - - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - - nanoid@3.3.7: {} - - negotiator@0.6.3: {} - - neo-async@2.6.2: {} - - node-fetch@2.6.7(encoding@0.1.13): - dependencies: - whatwg-url: 5.0.0 - optionalDependencies: - encoding: 0.1.13 - - node-fetch@2.7.0(encoding@0.1.13): - dependencies: - whatwg-url: 5.0.0 - optionalDependencies: - encoding: 0.1.13 - - node-gyp@10.1.0: - dependencies: - env-paths: 2.2.1 - exponential-backoff: 3.1.1 - glob: 10.3.10 - graceful-fs: 4.2.11 - make-fetch-happen: 13.0.1 - nopt: 7.2.1 - proc-log: 3.0.0 - semver: 7.6.0 - tar: 6.2.1 - which: 4.0.0 - transitivePeerDependencies: - - supports-color - - node-machine-id@1.1.12: {} - - nopt@7.2.1: - dependencies: - abbrev: 2.0.0 - - normalize-package-data@2.5.0: - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.8 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - - normalize-package-data@3.0.3: - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.13.1 - semver: 7.6.0 - validate-npm-package-license: 3.0.4 - - normalize-package-data@6.0.0: - dependencies: - hosted-git-info: 7.0.1 - is-core-module: 2.13.1 - semver: 7.6.0 - validate-npm-package-license: 3.0.4 - - normalize-package-data@6.0.2: - dependencies: - hosted-git-info: 7.0.1 - semver: 7.6.0 - validate-npm-package-license: 3.0.4 - - normalize-path@3.0.0: {} - - npm-bundled@3.0.1: - dependencies: - npm-normalize-package-bin: 3.0.1 - - npm-install-checks@6.3.0: - dependencies: - semver: 7.6.0 - - npm-normalize-package-bin@3.0.1: {} - - npm-package-arg@11.0.2: - dependencies: - hosted-git-info: 7.0.1 - proc-log: 4.2.0 - semver: 7.6.0 - validate-npm-package-name: 5.0.1 - - npm-packlist@8.0.2: - dependencies: - ignore-walk: 6.0.5 - - npm-pick-manifest@9.0.1: - dependencies: - npm-install-checks: 6.3.0 - npm-normalize-package-bin: 3.0.1 - npm-package-arg: 11.0.2 - semver: 7.6.0 - - npm-registry-fetch@17.1.0: - dependencies: - '@npmcli/redact': 2.0.1 - jsonparse: 1.3.1 - make-fetch-happen: 13.0.1 - minipass: 7.0.4 - minipass-fetch: 3.0.5 - minizlib: 2.1.2 - npm-package-arg: 11.0.2 - proc-log: 4.2.0 - transitivePeerDependencies: - - supports-color - - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - npm-run-path@5.3.0: - dependencies: - path-key: 4.0.0 - - nx@19.3.2: - dependencies: - '@nrwl/tao': 19.3.2 - '@yarnpkg/lockfile': 1.1.0 - '@yarnpkg/parsers': 3.0.0-rc.46 - '@zkochan/js-yaml': 0.0.7 - axios: 1.7.2 - chalk: 4.1.0 - cli-cursor: 3.1.0 - cli-spinners: 2.6.1 - cliui: 8.0.1 - dotenv: 16.4.5 - dotenv-expand: 11.0.6 - enquirer: 2.3.6 - figures: 3.2.0 - flat: 5.0.2 - front-matter: 4.0.2 - fs-extra: 11.2.0 - ignore: 5.3.1 - jest-diff: 29.7.0 - jsonc-parser: 3.2.0 - lines-and-columns: 2.0.4 - minimatch: 9.0.3 - node-machine-id: 1.1.12 - npm-run-path: 4.0.1 - open: 8.4.2 - ora: 5.3.0 - semver: 7.6.0 - string-width: 4.2.3 - strong-log-transformer: 2.1.0 - tar-stream: 2.2.0 - tmp: 0.2.3 - tsconfig-paths: 4.2.0 - tslib: 2.6.3 - yargs: 17.7.2 - yargs-parser: 21.1.1 - optionalDependencies: - '@nx/nx-darwin-arm64': 19.3.2 - '@nx/nx-darwin-x64': 19.3.2 - '@nx/nx-freebsd-x64': 19.3.2 - '@nx/nx-linux-arm-gnueabihf': 19.3.2 - '@nx/nx-linux-arm64-gnu': 19.3.2 - '@nx/nx-linux-arm64-musl': 19.3.2 - '@nx/nx-linux-x64-gnu': 19.3.2 - '@nx/nx-linux-x64-musl': 19.3.2 - '@nx/nx-win32-arm64-msvc': 19.3.2 - '@nx/nx-win32-x64-msvc': 19.3.2 - transitivePeerDependencies: - - debug - - object-assign@4.1.1: {} - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 - - only-allow@1.2.1: - dependencies: - which-pm-runs: 1.1.0 - - open@8.4.2: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - - ora@5.3.0: - dependencies: - bl: 4.1.0 - chalk: 4.1.0 - cli-cursor: 3.1.0 - cli-spinners: 2.6.1 - is-interactive: 1.0.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - - ora@5.4.1: + mz@2.7.0: dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 - os-tmpdir@1.0.2: {} + nanoid@3.3.7: {} - p-finally@1.0.0: {} + negotiator@0.6.3: {} - p-limit@1.3.0: + nimma@0.2.2: dependencies: - p-try: 1.0.0 + '@jsep-plugin/regex': 1.0.3(jsep@1.3.8) + '@jsep-plugin/ternary': 1.1.3(jsep@1.3.8) + astring: 1.8.6 + jsep: 1.3.8 + optionalDependencies: + jsonpath-plus: 6.0.1 + lodash.topath: 4.5.2 - p-limit@2.3.0: + node-fetch@2.7.0(encoding@0.1.13): dependencies: - p-try: 2.2.0 + whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.13 - p-limit@4.0.0: - dependencies: - yocto-queue: 1.0.0 + normalize-path@3.0.0: {} - p-limit@5.0.0: + npm-run-path@4.0.1: dependencies: - yocto-queue: 1.0.0 + path-key: 3.1.1 - p-locate@2.0.0: + npm-run-path@5.3.0: dependencies: - p-limit: 1.3.0 + path-key: 4.0.0 - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 + object-assign@4.1.1: {} - p-locate@6.0.0: - dependencies: - p-limit: 4.0.0 + object-inspect@1.13.2: {} - p-map-series@2.1.0: {} + object-keys@1.1.1: {} - p-map@4.0.0: - dependencies: - aggregate-error: 3.1.0 + object-to-formdata@4.5.1: {} - p-pipe@3.1.0: {} + object.assign@4.1.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 - p-queue@6.6.2: + once@1.4.0: dependencies: - eventemitter3: 4.0.7 - p-timeout: 3.2.0 + wrappy: 1.0.2 - p-reduce@2.1.0: {} + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 - p-timeout@3.2.0: + onetime@6.0.0: dependencies: - p-finally: 1.0.0 + mimic-fn: 4.0.0 - p-try@1.0.0: {} + only-allow@1.2.1: + dependencies: + which-pm-runs: 1.1.0 - p-try@2.2.0: {} + openapi-types@12.1.3: {} - p-waterfall@2.1.1: + p-limit@4.0.0: dependencies: - p-reduce: 2.1.0 + yocto-queue: 1.0.0 - pacote@18.0.6: + p-locate@6.0.0: dependencies: - '@npmcli/git': 5.0.7 - '@npmcli/installed-package-contents': 2.1.0 - '@npmcli/package-json': 5.2.0 - '@npmcli/promise-spawn': 7.0.2 - '@npmcli/run-script': 8.1.0 - cacache: 18.0.3 - fs-minipass: 3.0.3 - minipass: 7.0.4 - npm-package-arg: 11.0.2 - npm-packlist: 8.0.2 - npm-pick-manifest: 9.0.1 - npm-registry-fetch: 17.1.0 - proc-log: 4.2.0 - promise-retry: 2.0.1 - sigstore: 2.3.1 - ssri: 10.0.6 - tar: 6.2.1 - transitivePeerDependencies: - - bluebird - - supports-color + p-limit: 4.0.0 + + package-json-from-dist@1.0.0: {} parent-module@1.0.1: dependencies: callsites: 3.1.0 - parse-conflict-json@3.0.1: - dependencies: - json-parse-even-better-errors: 3.0.2 - just-diff: 6.0.2 - just-diff-apply: 5.5.0 - - parse-json@4.0.0: - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - parse-json@5.2.0: dependencies: '@babel/code-frame': 7.24.2 @@ -6058,66 +4448,39 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-path@7.0.0: - dependencies: - protocols: 2.0.1 - - parse-url@8.1.0: - dependencies: - parse-path: 7.0.0 - - path-exists@3.0.0: {} - - path-exists@4.0.0: {} - path-exists@5.0.0: {} - path-is-absolute@1.0.1: {} - path-key@3.1.1: {} path-key@4.0.0: {} - path-parse@1.0.7: {} - path-scurry@1.10.1: dependencies: lru-cache: 10.2.0 minipass: 7.0.4 - path-type@3.0.0: + path-scurry@1.11.1: dependencies: - pify: 3.0.0 + lru-cache: 10.2.0 + minipass: 7.1.2 + + path-to-regexp@7.0.0: {} path-type@4.0.0: {} pathe@1.1.2: {} - pathval@1.1.1: {} + pathval@2.0.0: {} picocolors@1.0.0: {} picomatch@2.3.1: {} - pify@2.3.0: {} - - pify@3.0.0: {} - - pify@4.0.1: {} - - pify@5.0.0: {} - pirates@4.0.6: {} - pkg-dir@4.2.0: - dependencies: - find-up: 4.1.0 + pony-cause@1.1.1: {} - pkg-types@1.0.3: - dependencies: - jsonc-parser: 3.2.1 - mlly: 1.6.1 - pathe: 1.1.2 + possible-typed-array-names@1.0.0: {} postcss-load-config@4.0.2(postcss@8.4.38): dependencies: @@ -6126,11 +4489,6 @@ snapshots: optionalDependencies: postcss: 8.4.38 - postcss-selector-parser@6.1.0: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss@8.4.38: dependencies: nanoid: 3.3.7 @@ -6139,139 +4497,54 @@ snapshots: prettier@3.2.5: {} - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - - proc-log@3.0.0: {} - - proc-log@4.2.0: {} - - process-nextick-args@2.0.1: {} - - proggy@2.0.0: {} - - promise-all-reject-late@1.0.1: {} - - promise-call-limit@3.0.1: {} - - promise-inflight@1.0.1: {} - - promise-retry@2.0.1: - dependencies: - err-code: 2.0.3 - retry: 0.12.0 - - promzard@1.0.2: - dependencies: - read: 3.0.1 - - protocols@2.0.1: {} - proxy-from-env@1.1.0: {} punycode@2.3.1: {} - queue-microtask@1.2.3: {} - - quick-lru@4.0.1: {} - - react-is@18.2.0: {} - - read-cmd-shim@4.0.0: {} - - read-package-json-fast@3.0.2: - dependencies: - json-parse-even-better-errors: 3.0.2 - npm-normalize-package-bin: 3.0.1 - - read-pkg-up@3.0.0: - dependencies: - find-up: 2.1.0 - read-pkg: 3.0.0 - - read-pkg-up@7.0.1: - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - - read-pkg@3.0.0: - dependencies: - load-json-file: 4.0.0 - normalize-package-data: 2.5.0 - path-type: 3.0.0 - - read-pkg@5.2.0: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - - read@3.0.1: + qs@6.12.3: dependencies: - mute-stream: 1.0.0 + side-channel: 1.0.6 - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 + queue-microtask@1.2.3: {} - readable-stream@3.6.2: + raw-body@2.5.2: dependencies: - inherits: 2.0.4 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 readdirp@3.6.0: dependencies: picomatch: 2.3.1 - redent@3.0.0: + regexp.prototype.flags@1.5.2: dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + + request-ip@3.3.0: {} require-directory@2.1.1: {} require-from-string@2.0.2: {} - resolve-cwd@3.0.0: - dependencies: - resolve-from: 5.0.0 - resolve-from@4.0.0: {} resolve-from@5.0.0: {} resolve-pkg-maps@1.0.0: {} - resolve@1.22.8: - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - restore-cursor@3.1.0: + restore-cursor@4.0.0: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - retry@0.12.0: {} - reusify@1.0.4: {} - rimraf@4.4.1: - dependencies: - glob: 9.3.5 + rfdc@1.4.1: {} rollup@4.13.0: dependencies: @@ -6292,31 +4565,50 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.13.0 fsevents: 2.3.3 - run-async@2.4.1: {} - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - rxjs@7.8.1: + safe-array-concat@1.1.2: dependencies: - tslib: 2.6.3 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 - safe-buffer@5.1.2: {} + safe-buffer@5.2.1: {} - safer-buffer@2.1.2: {} + safe-regex-test@1.0.3: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + + safe-stable-stringify@1.1.1: {} - semver@5.7.2: {} + safer-buffer@2.1.2: {} semver@7.6.0: dependencies: lru-cache: 6.0.0 - set-blocking@2.0.0: {} + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 - shallow-clone@3.0.1: + set-function-name@2.0.2: dependencies: - kind-of: 6.0.3 + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + setprototypeof@1.2.0: {} shebang-command@2.0.0: dependencies: @@ -6324,86 +4616,47 @@ snapshots: shebang-regex@3.0.0: {} + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + siginfo@2.0.0: {} signal-exit@3.0.7: {} signal-exit@4.1.0: {} - sigstore@2.3.1: + simple-eval@1.0.0: dependencies: - '@sigstore/bundle': 2.3.2 - '@sigstore/core': 1.1.0 - '@sigstore/protobuf-specs': 0.3.2 - '@sigstore/sign': 2.3.2 - '@sigstore/tuf': 2.3.4 - '@sigstore/verify': 1.2.1 - transitivePeerDependencies: - - supports-color + jsep: 1.3.8 slash@3.0.0: {} - smart-buffer@4.2.0: {} - - socks-proxy-agent@8.0.3: - dependencies: - agent-base: 7.1.1 - debug: 4.3.4 - socks: 2.8.3 - transitivePeerDependencies: - - supports-color - - socks@2.8.3: + slice-ansi@5.0.0: dependencies: - ip-address: 9.0.5 - smart-buffer: 4.2.0 + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 - sort-keys@2.0.0: + slice-ansi@7.1.0: dependencies: - is-plain-obj: 1.1.0 + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 source-map-js@1.2.0: {} - source-map@0.6.1: {} - source-map@0.8.0-beta.0: dependencies: whatwg-url: 7.1.0 - spdx-correct@3.2.0: - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.17 - - spdx-exceptions@2.5.0: {} - - spdx-expression-parse@3.0.1: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.17 - - spdx-license-ids@3.0.17: {} - - split2@3.2.2: - dependencies: - readable-stream: 3.6.2 - split2@4.2.0: {} - split@1.0.1: - dependencies: - through: 2.3.8 - - sprintf-js@1.0.3: {} - - sprintf-js@1.1.3: {} - - ssri@10.0.6: - dependencies: - minipass: 7.0.4 - stackback@0.0.2: {} + statuses@2.0.1: {} + std-env@3.7.0: {} string-width@4.2.3: @@ -6418,9 +4671,30 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string_decoder@1.1.1: + string-width@7.2.0: dependencies: - safe-buffer: 5.1.2 + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + + string.prototype.trim@1.2.9: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + + string.prototype.trimend@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 strip-ansi@6.0.1: dependencies: @@ -6430,27 +4704,13 @@ snapshots: dependencies: ansi-regex: 6.0.1 - strip-bom@3.0.0: {} - - strip-bom@4.0.0: {} - strip-final-newline@2.0.0: {} strip-final-newline@3.0.0: {} - strip-indent@3.0.0: - dependencies: - min-indent: 1.0.1 - - strip-literal@2.0.0: - dependencies: - js-tokens: 8.0.3 - - strong-log-transformer@2.1.0: + strip-literal@2.1.0: dependencies: - duplexer: 0.1.2 - minimist: 1.2.8 - through: 2.3.8 + js-tokens: 9.0.0 sucrase@3.35.0: dependencies: @@ -6470,34 +4730,11 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-preserve-symlinks-flag@1.0.0: {} - - tar-stream@2.2.0: - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 - - tar@6.2.1: - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - - temp-dir@1.0.0: {} - - test-exclude@6.0.0: + test-exclude@7.0.1: dependencies: '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - - text-extensions@1.9.0: {} + glob: 10.4.5 + minimatch: 9.0.5 text-extensions@2.4.0: {} @@ -6509,24 +4746,15 @@ snapshots: dependencies: any-promise: 1.3.0 - through2@2.0.5: - dependencies: - readable-stream: 2.3.8 - xtend: 4.0.2 - through@2.3.8: {} - tinybench@2.6.0: {} + tinybench@2.8.0: {} - tinypool@0.8.4: {} + tinypool@1.0.0: {} - tinyspy@2.2.1: {} + tinyrainbow@1.2.0: {} - tmp@0.0.33: - dependencies: - os-tmpdir: 1.0.2 - - tmp@0.2.3: {} + tinyspy@3.0.0: {} to-fast-properties@2.0.0: {} @@ -6534,6 +4762,8 @@ snapshots: dependencies: is-number: 7.0.0 + toidentifier@1.0.1: {} + tr46@0.0.3: {} tr46@1.0.1: @@ -6542,29 +4772,19 @@ snapshots: tree-kill@1.2.2: {} - treeverse@3.0.0: {} - - trim-newlines@3.0.1: {} - - ts-expect@1.3.0: {} - ts-interface-checker@0.1.13: {} - tsconfig-paths@4.2.0: - dependencies: - json5: 2.2.3 - minimist: 1.2.8 - strip-bom: 3.0.0 + tslib@1.14.1: {} tslib@2.6.3: {} - tsup@8.0.2(postcss@8.4.38)(typescript@5.5.3): + tsup@8.1.0(postcss@8.4.38)(typescript@5.5.3): dependencies: - bundle-require: 4.0.2(esbuild@0.19.12) + bundle-require: 4.0.2(esbuild@0.21.4) cac: 6.7.14 chokidar: 3.6.0 debug: 4.3.4 - esbuild: 0.19.12 + esbuild: 0.21.4 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 @@ -6581,82 +4801,82 @@ snapshots: - supports-color - ts-node - tsx@4.15.6: + tsx@4.16.2: dependencies: - esbuild: 0.21.4 + esbuild: 0.21.5 get-tsconfig: 4.7.5 optionalDependencies: fsevents: 2.3.3 - tuf-js@2.2.1: + type-is@1.6.18: dependencies: - '@tufjs/models': 2.0.1 - debug: 4.3.4 - make-fetch-happen: 13.0.1 - transitivePeerDependencies: - - supports-color - - type-detect@4.0.8: {} - - type-fest@0.18.1: {} - - type-fest@0.21.3: {} + media-typer: 0.3.0 + mime-types: 2.1.35 - type-fest@0.4.1: {} + typed-array-buffer@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 - type-fest@0.6.0: {} + typed-array-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 - type-fest@0.8.1: {} + typed-array-byte-offset@1.0.2: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 - typedarray@0.0.6: {} + typed-array-length@1.0.6: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 typescript@5.5.3: {} - ufo@1.5.3: {} - - uglify-js@3.18.0: - optional: true + unbox-primitive@1.0.2: + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 undici-types@5.26.5: {} unicorn-magic@0.1.0: {} - unique-filename@3.0.0: - dependencies: - unique-slug: 4.0.0 - - unique-slug@4.0.0: - dependencies: - imurmurhash: 0.1.4 - - universal-user-agent@6.0.1: {} - - universalify@2.0.1: {} - - upath@2.0.1: {} + unpipe@1.0.0: {} uri-js@4.4.1: dependencies: punycode: 2.3.1 - util-deprecate@1.0.2: {} + urijs@1.19.11: {} - uuid@10.0.0: {} - - validate-npm-package-license@3.0.4: - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 + utility-types@3.11.0: {} - validate-npm-package-name@5.0.1: {} + vary@1.1.2: {} - vite-node@1.5.2(@types/node@18.19.39): + vite-node@2.0.3(@types/node@20.14.10): dependencies: cac: 6.7.14 - debug: 4.3.4 + debug: 4.3.5 pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.2.12(@types/node@18.19.39) + tinyrainbow: 1.2.0 + vite: 5.2.12(@types/node@20.14.10) transitivePeerDependencies: - '@types/node' - less @@ -6667,39 +4887,38 @@ snapshots: - supports-color - terser - vite@5.2.12(@types/node@18.19.39): + vite@5.2.12(@types/node@20.14.10): dependencies: esbuild: 0.20.2 postcss: 8.4.38 rollup: 4.13.0 optionalDependencies: - '@types/node': 18.19.39 + '@types/node': 20.14.10 fsevents: 2.3.3 - vitest@1.5.2(@types/node@18.19.39): + vitest@2.0.3(@types/node@20.14.10): dependencies: - '@vitest/expect': 1.5.2 - '@vitest/runner': 1.5.2 - '@vitest/snapshot': 1.5.2 - '@vitest/spy': 1.5.2 - '@vitest/utils': 1.5.2 - acorn-walk: 8.3.2 - chai: 4.4.1 - debug: 4.3.4 + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.3 + '@vitest/pretty-format': 2.0.3 + '@vitest/runner': 2.0.3 + '@vitest/snapshot': 2.0.3 + '@vitest/spy': 2.0.3 + '@vitest/utils': 2.0.3 + chai: 5.1.1 + debug: 4.3.5 execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.8 + magic-string: 0.30.10 pathe: 1.1.2 - picocolors: 1.0.0 std-env: 3.7.0 - strip-literal: 2.0.0 - tinybench: 2.6.0 - tinypool: 0.8.4 - vite: 5.2.12(@types/node@18.19.39) - vite-node: 1.5.2(@types/node@18.19.39) + tinybench: 2.8.0 + tinypool: 1.0.0 + tinyrainbow: 1.2.0 + vite: 5.2.12(@types/node@20.14.10) + vite-node: 2.0.3(@types/node@20.14.10) why-is-node-running: 2.2.2 optionalDependencies: - '@types/node': 18.19.39 + '@types/node': 20.14.10 transitivePeerDependencies: - less - lightningcss @@ -6709,12 +4928,6 @@ snapshots: - supports-color - terser - walk-up-path@3.0.1: {} - - wcwidth@1.0.1: - dependencies: - defaults: 1.0.4 - webidl-conversions@3.0.1: {} webidl-conversions@4.0.2: {} @@ -6730,33 +4943,33 @@ snapshots: tr46: 1.0.1 webidl-conversions: 4.0.2 + which-boxed-primitive@1.0.2: + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + which-pm-runs@1.1.0: {} - which@2.0.2: + which-typed-array@1.1.15: dependencies: - isexe: 2.0.0 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 - which@4.0.0: + which@2.0.2: dependencies: - isexe: 3.1.1 + isexe: 2.0.0 why-is-node-running@2.2.2: dependencies: siginfo: 2.0.0 stackback: 0.0.2 - wide-align@1.1.5: - dependencies: - string-width: 4.2.3 - - wordwrap@1.0.0: {} - - wrap-ansi@6.2.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -6769,35 +4982,13 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 - wrappy@1.0.2: {} - - write-file-atomic@2.4.3: - dependencies: - graceful-fs: 4.2.11 - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - - write-file-atomic@5.0.1: + wrap-ansi@9.0.0: dependencies: - imurmurhash: 0.1.4 - signal-exit: 4.1.0 - - write-json-file@3.2.0: - dependencies: - detect-indent: 5.0.0 - graceful-fs: 4.2.11 - make-dir: 2.1.0 - pify: 4.0.1 - sort-keys: 2.0.0 - write-file-atomic: 2.4.3 - - write-pkg@4.0.0: - dependencies: - sort-keys: 2.0.0 - type-fest: 0.4.1 - write-json-file: 3.2.0 + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 - xtend@4.0.2: {} + wrappy@1.0.2: {} y18n@5.0.8: {} @@ -6805,20 +4996,8 @@ snapshots: yaml@2.4.5: {} - yargs-parser@20.2.9: {} - yargs-parser@21.1.1: {} - yargs@16.2.0: - dependencies: - cliui: 7.0.4 - escalade: 3.1.2 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - yargs@17.7.2: dependencies: cliui: 8.0.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml deleted file mode 100644 index 924b55f..0000000 --- a/pnpm-workspace.yaml +++ /dev/null @@ -1,2 +0,0 @@ -packages: - - packages/* diff --git a/src/adapters/axios.ts b/src/adapters/axios.ts new file mode 100644 index 0000000..ad605ff --- /dev/null +++ b/src/adapters/axios.ts @@ -0,0 +1,37 @@ +import type { OpenapiClientAdapter } from '../lib/adapter'; +import type { AxiosRequestConfig, AxiosResponse } from 'axios'; + +/** + * + * @param axios axios实例 + * @param returningData 返回最终数据。默认值:`(res) => res.data` + */ +export const axiosAdapter = ( + axios: { request: (config: AxiosRequestConfig) => Promise }, + returningData: (response: AxiosResponse) => any = (response) => response.data, +): OpenapiClientAdapter => { + return { + async request(opts, utils) { + const body = utils.formatBody(opts.requestBodyType, opts.body); + const credentials = + opts.credentials === 'omit' || opts.credentials === false + ? false + : typeof opts.credentials === 'string' || opts.credentials === true + ? true + : undefined; + + const result = await axios.request({ + url: opts.uri, + method: opts.method, + params: opts.query, + data: body, + headers: opts.headers, + timeout: opts.timeout, + withCredentials: credentials, + responseType: opts.responseType, + }); + + return returningData(result); + }, + }; +}; diff --git a/src/adapters/fetch.ts b/src/adapters/fetch.ts new file mode 100644 index 0000000..b753782 --- /dev/null +++ b/src/adapters/fetch.ts @@ -0,0 +1,47 @@ +import type { OpenapiClientAdapter } from '../lib/adapter'; + +/** + * fetch适配器,也可以传入模拟的fetch + */ +export const fetchAdapter = (opts: { + /** + * 默认使用环境内置的fetch,也可以传入模拟的fetch + */ + fetch?: typeof fetch; + /** + * 包含域名的地址,每次请求前都会拼接 + */ + baseURL: string; + /** + * fetch的默认参数,每次请求前都会合并对象 + */ + fetchDefaultOptions?: RequestInit; +}): OpenapiClientAdapter => { + const { fetch: fetcher = fetch, baseURL, fetchDefaultOptions = {} } = opts; + + return { + async request(opts, utils) { + const url = baseURL + utils.uriConcatQuery(opts.uri, opts.query); + const body = utils.formatBody(opts.requestBodyType, opts.body); + const credentials = + typeof opts.credentials === 'string' + ? opts.credentials + : opts.credentials === true + ? 'same-origin' + : 'omit'; + + const response = await fetcher(url, { + ...fetchDefaultOptions, + method: opts.method, + body, + headers: { + ...((fetchDefaultOptions.headers as Record) || {}), + ...opts.headers, + }, + credentials, + }); + + return opts.responseType === 'json' ? response.json() : response.text(); + }, + }; +}; diff --git a/src/base-openapi-client.ts b/src/base-openapi-client.ts new file mode 100644 index 0000000..9fb9dcb --- /dev/null +++ b/src/base-openapi-client.ts @@ -0,0 +1,81 @@ +import type { OpenapiClientAdapter, Methods } from './lib/adapter'; +import { utils } from './utils'; + +export namespace BaseOpenapiClient { + export interface UserInputOpts { + headers?: Record; + /** + * 超时时间。单位:`ms` + */ + timeout?: number; + /** + * 携带cookie + */ + credentials?: boolean | 'same-origin' | 'include' | 'omit'; + /** + * 请求实体类型 + */ + requestBodyType?: 'multipart/form-data' | 'application/json' | (string & {}); + /** + * 响应类型 + */ + responseType?: 'json' | 'text'; + } + + export interface FullOpts extends UserInputOpts { + params?: Record; + query?: Record; + body?: Record | FormData; + } + + export type Prettify = { + [K in keyof T]: T[K] extends object ? Prettify : T[K]; + } & {}; +} + +export abstract class BaseOpenapiClient { + constructor(private readonly adapter: OpenapiClientAdapter) {} + + protected replaceURI(uri: string, params?: Record) { + if (!params) return uri; + Object.entries(params).forEach(([key, value]) => { + uri = uri.replace(new RegExp(`{${key}}`), value); + }); + return uri; + } + + protected request(uri: string, method: Methods, opts: BaseOpenapiClient.FullOpts) { + const contentTypes = this.getContentTypes(uri, method); + const requestBodyType = opts.requestBodyType || contentTypes[0] || 'application/json'; + const responseType = opts.responseType || contentTypes[1] || 'json'; + const headers = opts.headers || {}; + if ( + !Object.hasOwn(headers, 'Content-Type') && + !Object.hasOwn(headers, 'content-type') + ) { + headers['Content-Type'] = requestBodyType; + } + + const formattedUri = this.replaceURI(uri, opts.params); + + return this.adapter.request( + { + uri: formattedUri, + method, + ...opts, + requestBodyType, + responseType, + headers, + }, + utils, + ); + } + + protected abstract getContentTypes( + uri: string, + method: string, + ): [ + BaseOpenapiClient.UserInputOpts['requestBodyType'], + BaseOpenapiClient.UserInputOpts['responseType'], + ]; +} diff --git a/src/bin.ts b/src/bin.ts new file mode 100755 index 0000000..6a43d48 --- /dev/null +++ b/src/bin.ts @@ -0,0 +1,94 @@ +#!/usr/bin/env node + +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { Listr } from 'listr2'; +import { OpenAPIV3 } from 'openapi-types'; +import type { OpenapiClientConfig } from './define-config'; +import { pathToOpenapi } from './lib/path-to-openapi'; +import { rebuildDist } from './lib/rebuild-dist'; +import { generateTemplate } from './lib/generate-template'; +import { filterTag } from './lib/filter-tag'; +import { filterUrl } from './lib/filter-url'; +import { readConfig } from './lib/read-config'; + +const sleep = () => new Promise((resolve) => setTimeout(resolve, 300)); + +const spinner = new Listr<{ + configs: OpenapiClientConfig[]; + docs: OpenAPIV3.Document[]; + projects: Record; +}>([]); + +spinner.add({ + title: '读取配置文件openapi.config.ts', + task: async (ctx) => { + ctx.configs = await readConfig(); + await sleep(); + }, +}); + +spinner.add({ + title: '获取openapi文档', + task: async (ctx) => { + ctx.docs = await Promise.all(ctx.configs.map((config) => pathToOpenapi(config.path))); + await sleep(); + }, +}); + +spinner.add({ + title: '过滤指定标签', + skip: (ctx) => { + return ctx.configs.every( + ({ includeTag: value }) => !value || (Array.isArray(value) && !value.length), + ); + }, + task: async (ctx) => { + ctx.configs.forEach((config, i) => { + filterTag(ctx.docs[i]!, config); + }); + await sleep(); + }, +}); + +spinner.add({ + title: '过滤指定前缀', + skip: (ctx) => { + return ctx.configs.every( + ({ includeUriPrefix: value }) => !value || (Array.isArray(value) && !value.length), + ); + }, + task: async (ctx) => { + ctx.configs.forEach((config, i) => { + filterUrl(ctx.docs[i]!, config); + }); + await sleep(); + }, +}); + +spinner.add({ + title: '生成客户端', + task: async (ctx) => { + ctx.projects = {}; + + ctx.configs.forEach((config, i) => { + ctx.projects = { + ...ctx.projects, + ...generateTemplate(ctx.docs[i]!, config.projectName), + }; + }); + + await sleep(); + }, +}); + +spinner.add({ + title: '写入@aomex/openapi-client', + task: async (ctx) => { + const dist = path.dirname(fileURLToPath(import.meta.url)); + const content = Object.values(ctx.projects).join('\n'); + await rebuildDist(dist, content); + }, +}); + +spinner.run(); diff --git a/src/define-config.ts b/src/define-config.ts new file mode 100644 index 0000000..b953766 --- /dev/null +++ b/src/define-config.ts @@ -0,0 +1,30 @@ +export interface OpenapiClientConfig { + /** + * openapi本地或者远程文件 + */ + path: string; + /** + * 过滤指定路由前缀的接口 + */ + includeUriPrefix?: string | RegExp | (string | RegExp)[]; + /** + * 过滤指定标签 + */ + includeTag?: string | string[]; + /** + * 路径参数替换规则。默认:`{*}` + * + * - /users/{id} + * - /users/{id}/posts + */ + paramsFormat?: string; + /** + * 项目名称,提供多个openapi路径时必须填写。 + * 比如项目名为`demo`,则导出的类为`OpenapiClientDemo` + */ + projectName?: string; +} + +export const defineConfig = (options: OpenapiClientConfig | OpenapiClientConfig[]) => { + return Array.isArray(options) ? options : [options]; +}; diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..a3d82ea --- /dev/null +++ b/src/index.ts @@ -0,0 +1,4 @@ +export * from './lib/adapter'; +export * from './base-openapi-client'; +export * from './openapi-runtime'; +export * from './define-config'; diff --git a/src/lib/adapter.ts b/src/lib/adapter.ts new file mode 100644 index 0000000..df9d7b8 --- /dev/null +++ b/src/lib/adapter.ts @@ -0,0 +1,53 @@ +import type { utils } from '../utils'; + +export const methods = ['get', 'post', 'put', 'patch', 'delete']; + +export type Methods = (typeof methods)[number]; + +export interface OpenapiClientAdapter { + request( + opts: { + /** + * 路由 + */ + uri: string; + /** + * 请求方法 + */ + method: Methods; + /** + * 路径参数 + */ + params?: Record; + /** + * 查询字符串 + */ + query?: Record; + /** + * 请求实体 + */ + body?: Record; + /** + * 超时时间。单位:`ms` + */ + timeout?: number; + /** + * 携带cookie + */ + credentials?: boolean | 'same-origin' | 'include' | 'omit'; + /** + * 请求实体类型 + */ + requestBodyType: 'multipart/form-data' | 'application/json' | (string & {}); + /** + * 响应类型 + */ + responseType: 'json' | 'text'; + /** + * 请求报文 + */ + headers: Record; + }, + helper: typeof utils, + ): Promise; +} diff --git a/src/lib/document-to-meta.ts b/src/lib/document-to-meta.ts new file mode 100644 index 0000000..d30ae50 --- /dev/null +++ b/src/lib/document-to-meta.ts @@ -0,0 +1,50 @@ +import type { OpenAPIV3 } from 'openapi-types'; +import { methods, type Methods } from './adapter'; +import { snakeCase } from 'lodash-es'; +import { parseParameters } from './parse-parameters'; +import { parseRequestBody } from './parse-request-body'; +import { parseResponse } from './parse-response'; + +export type Metas = Record< + Methods, + { + key: string; + uri: string; + contentTypes: string[]; + query: { optional: boolean; types: [string] | [] }; + params: { optional: boolean; types: [string] | [] }; + body: { optional: boolean; types: string[] }; + response: { types: string[] }; + responseTypes: string[]; + }[] +>; + +export const documentToMeta = (docs: OpenAPIV3.Document) => { + const metas: Metas = { + get: [], + post: [], + put: [], + patch: [], + delete: [], + }; + + Object.entries(docs.paths).forEach(([uri, pathItem]) => { + methods.forEach((method) => { + if (pathItem?.[method]) { + const methodItem = pathItem[method]; + metas[method].push({ + uri, + key: + methodItem.operationId || + snakeCase(`${method}_${uri.replaceAll(':', '_by_')}`), + query: parseParameters(docs, pathItem, methodItem, 'query'), + params: parseParameters(docs, pathItem, methodItem, 'path'), + ...parseRequestBody(docs, methodItem), + ...parseResponse(docs, methodItem), + }); + } + }); + }); + + return metas; +}; diff --git a/src/lib/filter-tag.ts b/src/lib/filter-tag.ts new file mode 100644 index 0000000..6e5eabb --- /dev/null +++ b/src/lib/filter-tag.ts @@ -0,0 +1,24 @@ +import type { OpenAPIV3 } from 'openapi-types'; +import type { OpenapiClientConfig } from '../define-config'; +import { methods } from './adapter'; +import { intersection } from 'lodash-es'; + +export const filterTag = (docs: OpenAPIV3.Document, config: OpenapiClientConfig) => { + if (!config.includeTag) return; + const tags = Array.isArray(config.includeTag) ? config.includeTag : [config.includeTag]; + if (!tags.length) return; + + Object.keys(docs.paths).forEach((uri) => { + const pathItem = docs.paths[uri]!; + methods.forEach((method) => { + const methodItem = pathItem[method]; + if ( + !methodItem || + !methodItem.tags || + !intersection(methodItem.tags, tags).length + ) { + Reflect.deleteProperty(pathItem, method); + } + }); + }); +}; diff --git a/src/lib/filter-url.ts b/src/lib/filter-url.ts new file mode 100644 index 0000000..c282d6a --- /dev/null +++ b/src/lib/filter-url.ts @@ -0,0 +1,17 @@ +import type { OpenAPIV3 } from 'openapi-types'; +import type { OpenapiClientConfig } from '../define-config'; + +export const filterUrl = (docs: OpenAPIV3.Document, config: OpenapiClientConfig) => { + if (!config.includeUriPrefix) return; + const patterns = Array.isArray(config.includeUriPrefix) + ? config.includeUriPrefix + : [config.includeUriPrefix]; + if (!patterns.length) return; + + Object.keys(docs.paths).forEach((uri) => { + const keep = patterns.some((pattern) => { + return typeof pattern === 'string' ? uri.startsWith(pattern) : pattern.test(uri); + }); + keep || Reflect.deleteProperty(docs.paths, uri); + }); +}; diff --git a/src/lib/generate-comments.ts b/src/lib/generate-comments.ts new file mode 100644 index 0000000..c4d9249 --- /dev/null +++ b/src/lib/generate-comments.ts @@ -0,0 +1,13 @@ +export const generateComments = (meta: { + deprecated?: boolean; + description?: string; +}) => { + let comments: string[] = []; + if (meta.description) { + comments.push(`* ${meta.description}`); + } + if (meta.deprecated) { + comments.push('* @deprecated'); + } + return comments.length ? `\n/**\n${comments.join('\n')} \n*/\n` : ''; +}; diff --git a/src/lib/generate-template.ts b/src/lib/generate-template.ts new file mode 100644 index 0000000..d349dbb --- /dev/null +++ b/src/lib/generate-template.ts @@ -0,0 +1,147 @@ +import type { OpenAPIV3 } from 'openapi-types'; +import { upperFirst, camelCase } from 'lodash-es'; +import { documentToMeta, type Metas } from './document-to-meta'; +import { methods } from './adapter'; + +export const generateTemplate = (docs: OpenAPIV3.Document, projectName: string = '') => { + projectName = upperFirst(camelCase(projectName)); + const className = `OpenapiClient${projectName}`; + const metas = documentToMeta(docs); + const tpl = ` + import { BaseOpenapiClient } from './base-openapi-client'; + + ${generateNamespaceTpl(className, metas)} + ${generateClassTpl(className, metas)} + ${generateContentTypeTpl(metas)} + ${generatePathRelationTpl(className, metas)} +`; + + return { [projectName]: tpl }; +}; + +export const generateNamespaceTpl = (className: string, metas: Metas) => { + return ` +export namespace ${className} { + ${methods + .flatMap((method) => { + let content = metas[method].flatMap((meta) => { + let opts: string[] = []; + + (['query', 'params']).forEach((key) => { + const interfaceName = upperFirst(camelCase(meta.key + '_' + key)); + if (meta[key].types.length) { + opts.push(`export interface ${interfaceName} ${meta[key].types[0]}\n`); + } + }); + + (['body', 'response']).forEach((key) => { + const interfaceName = upperFirst(camelCase(meta.key + '_' + key)); + if (meta[key].types.length) { + opts.push( + meta[key].types.length === 1 + ? `export interface ${interfaceName} ${meta[key].types}\n` + : `export type ${interfaceName} = ${meta[key].types.join(' | ')}\n`, + ); + } + }); + + return opts; + }); + return content; + }) + .join('')} +}`; +}; + +export const generateClassTpl = (className: string, metas: Metas) => { + return ` +export class ${className} extends BaseOpenapiClient { + ${methods + .map((method) => { + if (!metas[method].length) return ''; + + const uris = metas[method].map((meta) => meta.uri); + const optionalUris = metas[method] + .filter( + (meta) => meta.query.optional && meta.params.optional && meta.body.optional, + ) + .map((meta) => meta.uri); + + let opts: string; + if (optionalUris.length === uris.length) { + opts = `[opts?: ${className}_${method}_paths[K]['request']]`; + } else if (optionalUris.length === 0) { + opts = `[opts: ${className}_${method}_paths[K]['request']]`; + } else { + opts = `K extends '${optionalUris.join(' | ')}' ? [opts?: ${className}_${method}_paths[K]['request']] : [opts: ${className}_${method}_paths[K]['request']]`; + } + + return `${method}( + uri: K, ...rest: ${opts} + ): Promise<${className}_${method}_paths[K]['response']> { + return this.request(uri, '${method}', rest[0] || {}); + }`; + }) + .join('\n')} + + protected override getContentTypes(uri: string, method: string) { + return defaultContentTypes[uri + ' ' + method] || [void 0, void 0]; + } +} + `; +}; + +export const generateContentTypeTpl = (metas: Metas) => { + return ` + const defaultContentTypes: Record = { + ${methods + .map((method) => { + if (!metas[method].length) return ''; + + return ` + ${metas[method] + .map(({ uri, contentTypes, responseTypes }) => { + const requestContentType = contentTypes[0] || 'application/json'; + const responseContentType = responseTypes.some((item) => + item.startsWith('text/'), + ) + ? 'text' + : 'json'; + const isJSONRequest = requestContentType === 'application/json'; + const isJSONResponse = responseContentType === 'json'; + + if (isJSONRequest && isJSONResponse) return ''; + + return `'${method} ${uri}': [${isJSONRequest ? 'void 0' : `'${requestContentType}'`}, ${isJSONResponse ? 'void 0' : `'${responseContentType}'`}],`; + }) + .join('\n')} + `; + }) + .join('')} +}; + `; +}; + +export const generatePathRelationTpl = (className: string, metas: Metas) => { + return methods + .map((method) => { + if (!metas[method].length) return ''; + + return ` +interface ${className}_${method}_paths { + ${metas[method] + .map((meta) => { + return `'${meta.uri}': BaseOpenapiClient.Prettify<{ + request: { + ${meta.query.types.length ? `query${meta.query.optional ? '?' : ''}: ${className}.${upperFirst(camelCase(meta.key + '_query'))};` : 'query?: object;'} + ${meta.params.types.length ? `params${meta.params.optional ? '?' : ''}: ${className}.${upperFirst(camelCase(meta.key + '_params'))};` : ''} + ${meta.body.types.length ? `body${meta.body.optional ? '?' : ''}: ${className}.${upperFirst(camelCase(meta.key + '_body'))};` : ''} + } & BaseOpenapiClient.UserInputOpts; + response: ${meta.response.types.length ? `${className}.${upperFirst(camelCase(meta.key + '_response'))}` : 'unknown'} + }>`; + }) + .join('\n')} +}`; + }) + .join(''); +}; diff --git a/src/lib/parse-parameters.ts b/src/lib/parse-parameters.ts new file mode 100644 index 0000000..eed28f1 --- /dev/null +++ b/src/lib/parse-parameters.ts @@ -0,0 +1,28 @@ +import type { OpenAPIV3 } from 'openapi-types'; +import { refToObject } from './ref-to-object'; +import { generateComments } from './generate-comments'; +import { parseSchemaType } from './parse-schema-type'; + +export const parseParameters = ( + docs: OpenAPIV3.Document, + pathItem: OpenAPIV3.PathItemObject, + methodItem: OpenAPIV3.OperationObject, + key: string, +): { optional: boolean; types: [string] | [] } => { + const parameters = (methodItem.parameters || []) + .concat(pathItem.parameters || []) + .map((parameter) => refToObject(docs, parameter)) + .filter((parameter) => parameter.in === key); + + const types = parameters + .map((parameter) => { + if (!parameter.schema) return ''; + return `${generateComments(parameter)}${parameter.name}${parameter.required ? '' : '?'}: ${parseSchemaType(docs, parameter.schema)} + `; + }) + .filter(Boolean); + return { + optional: parameters.every((parameter) => !parameter.required), + types: types.length ? [`{ ${types.join(';\n')} }`] : [], + }; +}; diff --git a/src/lib/parse-request-body.ts b/src/lib/parse-request-body.ts new file mode 100644 index 0000000..56b38f9 --- /dev/null +++ b/src/lib/parse-request-body.ts @@ -0,0 +1,27 @@ +import type { OpenAPIV3 } from 'openapi-types'; +import { parseSchemaType } from './parse-schema-type'; +import { refToObject } from './ref-to-object'; + +export const parseRequestBody = ( + docs: OpenAPIV3.Document, + methodItem: OpenAPIV3.OperationObject, +) => { + const requestBody = refToObject( + docs, + methodItem.requestBody || ({ content: {} } satisfies OpenAPIV3.RequestBodyObject), + ); + const contentTypes = Object.keys(requestBody.content).filter( + (item) => !!requestBody.content[item]!.schema, + ); + const types = contentTypes.map((contentType) => { + const { schema } = requestBody.content[contentType]!; + return parseSchemaType(docs, schema!); + }); + return { + contentTypes: contentTypes.filter((item) => item !== '*/*'), + body: { + types, + optional: contentTypes.length === 0, + }, + }; +}; diff --git a/src/lib/parse-response.ts b/src/lib/parse-response.ts new file mode 100644 index 0000000..a584b5b --- /dev/null +++ b/src/lib/parse-response.ts @@ -0,0 +1,27 @@ +import type { OpenAPIV3 } from 'openapi-types'; +import { parseSchemaType } from './parse-schema-type'; +import { refToObject } from './ref-to-object'; + +export const parseResponse = ( + docs: OpenAPIV3.Document, + methodItem: OpenAPIV3.OperationObject, +) => { + const response = refToObject(docs, methodItem.responses || {}); + const filteredResponse = Object.entries(response) + .filter(([code]) => code.startsWith('2') || code === 'default') + .map(([_, schema]) => refToObject(docs, schema)); + + const contentTypes = filteredResponse + .flatMap((item) => Object.keys(item.content || {})) + .filter((item) => item !== '*/*'); + const types = filteredResponse + .flatMap((item) => Object.values(item.content || {})) + .map((item) => item.schema && refToObject(docs, item.schema)) + .filter(Boolean) + .map((schema) => parseSchemaType(docs, schema || {})); + + return { + responseTypes: [...new Set(contentTypes)], + response: { types }, + }; +}; diff --git a/src/lib/parse-schema-type.ts b/src/lib/parse-schema-type.ts new file mode 100644 index 0000000..488d096 --- /dev/null +++ b/src/lib/parse-schema-type.ts @@ -0,0 +1,34 @@ +import type { OpenAPIV3 } from 'openapi-types'; +import { refToObject } from './ref-to-object'; + +export const parseSchemaType = ( + docs: OpenAPIV3.Document, + schema: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject, +): string => { + const parsed = refToObject(docs, schema); + + switch (parsed.type) { + case 'array': + return `${parseSchemaType(docs, parsed.items)}[]`; + case 'boolean': + return 'boolean'; + case 'integer': + case 'number': + return 'number'; + case 'object': + const requiredProperties = parsed.required || []; + const properties = Object.entries(parsed.properties || {}).map(([key, schema]) => { + return `${key}${requiredProperties.includes(key) ? '' : '?'}: ${parseSchemaType(docs, schema)}`; + }); + return `{ ${properties.join(';')} }`; + case 'string': + if (parsed.format === 'binary') return 'Blob'; + return 'string'; + } + + if (parsed.oneOf) { + return parsed.oneOf.map((schema) => parseSchemaType(docs, schema)).join(' | '); + } + + return 'never'; +}; diff --git a/src/lib/path-to-openapi.ts b/src/lib/path-to-openapi.ts new file mode 100644 index 0000000..82661de --- /dev/null +++ b/src/lib/path-to-openapi.ts @@ -0,0 +1,20 @@ +import { readFile } from 'fs/promises'; +import path from 'node:path'; +import type { OpenAPIV3 } from 'openapi-types'; +import YAML from 'yaml'; + +export const pathToOpenapi = async (uri: string): Promise => { + let originContent: string; + if (uri.startsWith('http:') || uri.startsWith('https:')) { + const response = await fetch(uri, { method: 'get' }); + originContent = await response.text(); + } else { + originContent = await readFile(path.resolve(uri), 'utf8'); + } + + if (originContent.startsWith('{')) { + return JSON.parse(originContent); + } else { + return YAML.parse(originContent); + } +}; diff --git a/src/lib/read-config.ts b/src/lib/read-config.ts new file mode 100644 index 0000000..51f2609 --- /dev/null +++ b/src/lib/read-config.ts @@ -0,0 +1,12 @@ +import path from 'node:path'; +import { pathToFileURL } from 'node:url'; +import { tsImport } from 'tsx/esm/api'; +import type { OpenapiClientConfig } from '../define-config'; + +export const readConfig = async () => { + const { default: content } = await tsImport( + pathToFileURL(path.resolve('openapi.config.ts')).toString(), + import.meta.url, + ); + return content as OpenapiClientConfig[]; +}; diff --git a/src/lib/rebuild-dist.ts b/src/lib/rebuild-dist.ts new file mode 100644 index 0000000..e6efdc7 --- /dev/null +++ b/src/lib/rebuild-dist.ts @@ -0,0 +1,23 @@ +import fs from 'node:fs/promises'; +import path from 'node:path'; +import * as tsup from 'tsup'; + +export const rebuildDist = async (distDir: string, content: string) => { + const src = path.normalize(path.join(distDir, '..', 'src')); + + await fs.writeFile(path.join(src, 'openapi-runtime.ts'), content); + await tsup.build({ + entry: [path.join(src, 'index.ts')], + outDir: distDir, + splitting: true, + sourcemap: true, + clean: false, + format: ['cjs', 'esm'], + platform: 'node', + target: 'es2020', + shims: false, + dts: true, + legacyOutput: true, + silent: true, + }); +}; diff --git a/src/lib/ref-to-object.ts b/src/lib/ref-to-object.ts new file mode 100644 index 0000000..22b848c --- /dev/null +++ b/src/lib/ref-to-object.ts @@ -0,0 +1,15 @@ +import type { OpenAPIV3 } from 'openapi-types'; + +export const refToObject = ( + docs: OpenAPIV3.Document, + data: T | OpenAPIV3.ReferenceObject, +): T => { + if ('$ref' in data) { + const target = data.$ref.split('/').reduce((carry, pathName) => { + if (pathName === '#') return carry; + return carry[pathName]; + }, docs); + return target as T; + } + return data; +}; diff --git a/src/openapi-runtime.ts b/src/openapi-runtime.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/openapi-runtime.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/utils.ts b/src/utils.ts new file mode 100644 index 0000000..582596d --- /dev/null +++ b/src/utils.ts @@ -0,0 +1,34 @@ +import qs from 'qs'; +import objectToFormData from 'object-to-formdata'; + +export const utils = { + /** + * 路由拼接查询字符串 + */ + uriConcatQuery(uri: string, query: Record | undefined) { + if (!query) return uri; + + const querystring = qs.stringify(query); + if (!querystring) return uri; + + if (uri.includes('?')) { + if (!uri.endsWith('?')) { + uri += '&'; + } + } else { + uri += '?'; + } + + return (uri += querystring); + }, + formatBody( + contentType: string, + body: object | undefined, + formData?: FormData, + ): string | FormData | undefined { + if (!body) return; + return contentType === 'multipart/form-data' + ? objectToFormData.serialize(body, {}, formData) + : JSON.stringify(body); + }, +}; diff --git a/test/__snapshots__/bin.test.ts.snap b/test/__snapshots__/bin.test.ts.snap new file mode 100644 index 0000000..824a86e --- /dev/null +++ b/test/__snapshots__/bin.test.ts.snap @@ -0,0 +1,192 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`生成runtime并重新打包 1`] = ` +"import { BaseOpenapiClient } from './base-openapi-client'; + +export namespace OpenapiClient { + export interface ListUsersQuery { + page?: number; + + /** + * 每页返回的资源数量 + */ + limit?: number; + } + export interface ListUsersResponse { + page: number; + limit: number; + total: number; + result: { + id: number; + name: string; + age: number; + address?: string; + password: string; + }[]; + } + export interface RetrieveUsersByIdParams { + id: number; + } + export interface RetrieveUsersByIdResponse { + id: number; + name: string; + age: number; + address?: string; + password: string; + } + export interface CreateUsersBody { + name: string; + age?: number; + address?: number; + } + export interface CreateUsersResponse { + id: number; + name: string; + age: number; + address?: string; + password: string; + } + export interface CreateUsersV1Body { + name: string; + age?: number; + address?: number; + } + export interface CreateUsersV1Response { + id: number; + name: string; + age: number; + address?: string; + password: string; + } + export interface ReplaceUsersByIdParams { + id: number; + } + export interface ReplaceUsersByIdBody { + name: string; + age?: number; + address?: number; + } + export interface ReplaceUsersByIdResponse { + id: number; + name: string; + age: number; + address?: string; + password: string; + } + export interface ReplaceUsersAvatarBody { + file: Blob; + } + export interface ReplaceUsersAvatarResponse { + url: string; + } + export interface DeleteUsersByIdParams { + id: number; + } +} + +export class OpenapiClient extends BaseOpenapiClient { + get( + uri: K, + ...rest: K extends '/users' + ? [opts?: OpenapiClient_get_paths[K]['request']] + : [opts: OpenapiClient_get_paths[K]['request']] + ): Promise { + return this.request(uri, 'get', rest[0] || {}); + } + post( + uri: K, + ...rest: [opts: OpenapiClient_post_paths[K]['request']] + ): Promise { + return this.request(uri, 'post', rest[0] || {}); + } + put( + uri: K, + ...rest: [opts: OpenapiClient_put_paths[K]['request']] + ): Promise { + return this.request(uri, 'put', rest[0] || {}); + } + + delete( + uri: K, + ...rest: [opts: OpenapiClient_delete_paths[K]['request']] + ): Promise { + return this.request(uri, 'delete', rest[0] || {}); + } + + protected override getContentTypes(uri: string, method: string) { + return defaultContentTypes[uri + ' ' + method] || [void 0, void 0]; + } +} + +const defaultContentTypes: Record< + string, + [ + BaseOpenapiClient.UserInputOpts['requestBodyType'], + BaseOpenapiClient.UserInputOpts['responseType'], + ] +> = { + 'put /users/avatar': ['multipart/form-data', void 0], +}; + +interface OpenapiClient_get_paths { + '/users': BaseOpenapiClient.Prettify<{ + request: { + query?: OpenapiClient.ListUsersQuery; + } & BaseOpenapiClient.UserInputOpts; + response: OpenapiClient.ListUsersResponse; + }>; + '/users/{id}': BaseOpenapiClient.Prettify<{ + request: { + query?: object; + params: OpenapiClient.RetrieveUsersByIdParams; + } & BaseOpenapiClient.UserInputOpts; + response: OpenapiClient.RetrieveUsersByIdResponse; + }>; +} +interface OpenapiClient_post_paths { + '/users': BaseOpenapiClient.Prettify<{ + request: { + query?: object; + + body: OpenapiClient.CreateUsersBody; + } & BaseOpenapiClient.UserInputOpts; + response: OpenapiClient.CreateUsersResponse; + }>; + '/users/v1': BaseOpenapiClient.Prettify<{ + request: { + query?: object; + + body: OpenapiClient.CreateUsersV1Body; + } & BaseOpenapiClient.UserInputOpts; + response: OpenapiClient.CreateUsersV1Response; + }>; +} +interface OpenapiClient_put_paths { + '/users/{id}': BaseOpenapiClient.Prettify<{ + request: { + query?: object; + params: OpenapiClient.ReplaceUsersByIdParams; + body: OpenapiClient.ReplaceUsersByIdBody; + } & BaseOpenapiClient.UserInputOpts; + response: OpenapiClient.ReplaceUsersByIdResponse; + }>; + '/users/avatar': BaseOpenapiClient.Prettify<{ + request: { + query?: object; + + body: OpenapiClient.ReplaceUsersAvatarBody; + } & BaseOpenapiClient.UserInputOpts; + response: OpenapiClient.ReplaceUsersAvatarResponse; + }>; +} +interface OpenapiClient_delete_paths { + '/users/{id}': BaseOpenapiClient.Prettify<{ + request: { + query?: object; + params: OpenapiClient.DeleteUsersByIdParams; + } & BaseOpenapiClient.UserInputOpts; + response: unknown; + }>; +} +" +`; diff --git a/test/adapters/axios.test.ts b/test/adapters/axios.test.ts new file mode 100644 index 0000000..14a4ee0 --- /dev/null +++ b/test/adapters/axios.test.ts @@ -0,0 +1,144 @@ +import { expect, test, vitest } from 'vitest'; +import { methods } from '../../src'; +import { utils } from '../../src/utils'; +import { axiosAdapter } from '../../src/adapters/axios'; +import { Axios } from 'axios'; + +const axios = new Axios({ baseURL: 'http://example.com' }); + +test.each(methods)('常规请求 %s', async (method) => { + const adapter = axiosAdapter(axios); + const spy = vitest.spyOn(axios, 'request').mockImplementation(async () => { + return { + data: { foo: 'bar' }, + } as any; + }); + + const response = await adapter.request( + { + uri: '/foo', + method, + requestBodyType: 'application/json', + responseType: 'json', + headers: {}, + timeout: 2000, + }, + utils, + ); + expect(response).toMatchObject({ foo: 'bar' }); + expect(spy).toHaveBeenCalledWith({ + url: '/foo', + data: undefined, + headers: {}, + method, + timeout: 2000, + responseType: 'json', + params: undefined, + withCredentials: undefined, + }); + + spy.mockRestore(); +}); + +test('credentials字符串转换为布尔值', async () => { + const adapter = axiosAdapter(axios); + const spy = vitest.spyOn(axios, 'request').mockImplementation(async () => { + return { + data: { foo: 'bar' }, + } as any; + }); + await adapter.request( + { + uri: '/foo', + method: 'get', + requestBodyType: 'application/json', + responseType: 'json', + headers: {}, + credentials: 'same-origin', + timeout: 2000, + }, + utils, + ); + expect(spy).toHaveBeenLastCalledWith({ + url: '/foo', + data: undefined, + headers: {}, + method: 'get', + timeout: 2000, + responseType: 'json', + params: undefined, + withCredentials: true, + }); + + await adapter.request( + { + uri: '/foo', + method: 'get', + requestBodyType: 'application/json', + responseType: 'json', + headers: {}, + credentials: 'include', + timeout: 2000, + }, + utils, + ); + expect(spy).toHaveBeenLastCalledWith({ + url: '/foo', + data: undefined, + headers: {}, + method: 'get', + timeout: 2000, + responseType: 'json', + params: undefined, + withCredentials: true, + }); + + await adapter.request( + { + uri: '/foo', + method: 'get', + requestBodyType: 'application/json', + responseType: 'json', + headers: {}, + credentials: 'omit', + timeout: 2000, + }, + utils, + ); + expect(spy).toHaveBeenLastCalledWith({ + url: '/foo', + data: undefined, + headers: {}, + method: 'get', + timeout: 2000, + responseType: 'json', + params: undefined, + withCredentials: false, + }); + + spy.mockRestore(); +}); + +test('字符串类型的响应', async () => { + const adapter = axiosAdapter(axios); + const spy = vitest.spyOn(axios, 'request').mockImplementation(async () => { + return { + data: 'foo-bar', + } as any; + }); + + const response = await adapter.request( + { + uri: '/foo', + method: 'get', + requestBodyType: 'application/json', + responseType: 'text', + headers: {}, + credentials: true, + }, + utils, + ); + expect(response).toBe('foo-bar'); + + spy.mockRestore(); +}); diff --git a/test/adapters/fetch.test.ts b/test/adapters/fetch.test.ts new file mode 100644 index 0000000..70c1885 --- /dev/null +++ b/test/adapters/fetch.test.ts @@ -0,0 +1,104 @@ +import { afterEach, beforeEach, expect, test, vitest, type Mock } from 'vitest'; +import { methods } from '../../src'; +import { utils } from '../../src/utils'; +import { fetchAdapter } from '../../src/adapters/fetch'; + +const originalFetch = globalThis.fetch; +let spy: Mock; + +beforeEach(() => { + spy = vitest.fn().mockResolvedValueOnce({ + ok: true, + json: () => { + return { foo: 'bar' }; + }, + text: () => 'foo-bar', + }); + globalThis.fetch = spy; +}); + +afterEach(() => { + globalThis.fetch = originalFetch; +}); + +test.each(methods)('常规请求 %s', async (method) => { + const adapter = fetchAdapter({ baseURL: 'http://example.com' }); + const response = await adapter.request( + { + uri: '/foo', + method, + requestBodyType: 'application/json', + responseType: 'json', + headers: {}, + timeout: 2000, + }, + utils, + ); + expect(response).toMatchObject({ foo: 'bar' }); + expect(spy).toHaveBeenCalledWith('http://example.com/foo', { + body: undefined, + credentials: 'omit', + headers: {}, + method, + }); +}); + +test('credentials=true时转换成same-origin', async () => { + const adapter = fetchAdapter({ baseURL: 'http://example.com' }); + const response = await adapter.request( + { + uri: '/foo', + method: 'get', + requestBodyType: 'application/json', + responseType: 'json', + headers: {}, + credentials: true, + }, + utils, + ); + expect(response).toMatchObject({ foo: 'bar' }); + expect(spy).toHaveBeenCalledWith('http://example.com/foo', { + body: undefined, + credentials: 'same-origin', + headers: {}, + method: 'get', + }); +}); + +test('credentials是字符串直接使用', async () => { + const adapter = fetchAdapter({ baseURL: 'http://example.com' }); + const response = await adapter.request( + { + uri: '/foo', + method: 'get', + requestBodyType: 'application/json', + responseType: 'json', + headers: {}, + credentials: 'include', + }, + utils, + ); + expect(response).toMatchObject({ foo: 'bar' }); + expect(spy).toHaveBeenCalledWith('http://example.com/foo', { + body: undefined, + credentials: 'include', + headers: {}, + method: 'get', + }); +}); + +test('字符串类型的响应', async () => { + const adapter = fetchAdapter({ baseURL: 'http://example.com' }); + const response = await adapter.request( + { + uri: '/foo', + method: 'get', + requestBodyType: 'application/json', + responseType: 'text', + headers: {}, + credentials: true, + }, + utils, + ); + expect(response).toBe('foo-bar'); +}); diff --git a/test/base-openapi-client.test.ts b/test/base-openapi-client.test.ts new file mode 100644 index 0000000..4ff55eb --- /dev/null +++ b/test/base-openapi-client.test.ts @@ -0,0 +1,44 @@ +import { expect, test, vitest } from 'vitest'; +import { MockOpenapiClient } from './mocks/mock-openapi-client'; + +test('生成请求', async () => { + const spy = vitest.fn(); + const client = new MockOpenapiClient({ + async request(opts) { + spy(opts); + return 'foo-bar'; + }, + }); + + const result = await client['request']('/users', 'post', {}); + expect(result).toBe('foo-bar'); + expect(spy).toBeCalledWith({ + headers: { 'Content-Type': 'application/json' }, + method: 'post', + requestBodyType: 'application/json', + responseType: 'json', + uri: '/users', + }); +}); + +test('替换路径参数', async () => { + const spy = vitest.fn(); + const client = new MockOpenapiClient({ + async request(opts) { + spy(opts); + return 'foo-bar'; + }, + }); + + await client['request']('/users/{id}/{name}', 'post', { + params: { id: 1, name: 'abc', name1: 'abc' }, + }); + expect(spy).toBeCalledWith({ + headers: { 'Content-Type': 'application/json' }, + method: 'post', + requestBodyType: 'application/json', + responseType: 'json', + uri: '/users/1/abc', + params: { id: 1, name: 'abc', name1: 'abc' }, + }); +}); diff --git a/test/bin.test.ts b/test/bin.test.ts new file mode 100644 index 0000000..40d5bf5 --- /dev/null +++ b/test/bin.test.ts @@ -0,0 +1,53 @@ +import { execSync } from 'child_process'; +import { existsSync, readFileSync } from 'fs'; +import { readdir, rm, writeFile } from 'fs/promises'; +import path from 'path'; +import { afterEach, expect, test } from 'vitest'; +import prettier from 'prettier'; + +const prettierOptions: prettier.Options = { + ...(await prettier.resolveConfig((await prettier.resolveConfigFile())!)!), + parser: 'typescript', +}; + +afterEach(async () => { + const src = path.resolve('src'); + const files = await readdir(src, { recursive: true }); + await Promise.all( + files + .filter( + (file) => + file.endsWith('.d.ts') || + file.endsWith('.d.mts') || + file.endsWith('.d.cts') || + file.endsWith('.js') || + file.endsWith('.js.map'), + ) + .map((file) => rm(path.join(src, file))), + ); + await writeFile(path.join(src, 'openapi-runtime.ts'), 'export {};\n'); +}); + +test('生成 bin.mjs', async () => { + try { + await rm('dist', { recursive: true }); + } catch {} + execSync('npx tsup', { encoding: 'utf8', stdio: 'inherit' }); + expect(existsSync(path.resolve('dist', 'bin.mjs'))); +}); + +test('生成runtime并重新打包', async () => { + const dts = path.resolve('src', 'index.d.ts'); + + try { + await rm(dts); + } catch {} + execSync('npx tsx src/bin.ts', { encoding: 'utf8', stdio: 'inherit' }); + await expect( + prettier.format( + readFileSync(path.resolve('src', 'openapi-runtime.ts'), 'utf8'), + prettierOptions, + ), + ).resolves.toMatchSnapshot(); + expect(readFileSync(dts, 'utf8')).toContain('declare namespace OpenapiClient {'); +}); diff --git a/test/lib/filter-tag.test.ts b/test/lib/filter-tag.test.ts new file mode 100644 index 0000000..1790b43 --- /dev/null +++ b/test/lib/filter-tag.test.ts @@ -0,0 +1,87 @@ +import { expect, test } from 'vitest'; +import { getBasicDocument } from '../mocks/get-basic-document'; +import { filterTag } from '../../src/lib/filter-tag'; + +test('未指定过滤标签则不处理', () => { + const docs = getBasicDocument({ + '/': { + get: { responses: {} }, + post: { tags: ['abc'], responses: {} }, + put: { tags: ['abc', 'def'], responses: {} }, + }, + }); + + filterTag(docs, { path: '' }); + expect(Object.keys(docs.paths['/'] || {})).toMatchInlineSnapshot(` + [ + "get", + "post", + "put", + ] + `); + filterTag(docs, { path: '', includeTag: [] }); + expect(Object.keys(docs.paths['/'] || {})).toMatchInlineSnapshot(` + [ + "get", + "post", + "put", + ] + `); +}); + +test('未提供标签的接口会被删除', () => { + const docs = getBasicDocument({ + '/': { + get: { responses: {} }, + post: { tags: ['abc'], responses: {} }, + put: { tags: ['abc', 'def'], responses: {} }, + }, + }); + + filterTag(docs, { path: '', includeTag: 'abc' }); + expect(Object.keys(docs.paths['/'] || {})).toMatchInlineSnapshot(` + [ + "post", + "put", + ] + `); +}); + +test('不符合的标签被删除', () => { + const docs = getBasicDocument({ + '/': { + get: { responses: {} }, + post: { tags: ['abc'], responses: {} }, + put: { tags: ['abc', 'def'], responses: {} }, + patch: { tags: ['ac', 'def'], responses: {} }, + }, + }); + + filterTag(docs, { path: '', includeTag: 'def' }); + expect(Object.keys(docs.paths['/'] || {})).toMatchInlineSnapshot(` + [ + "put", + "patch", + ] + `); +}); + +test('同时过滤多个标签', () => { + const docs = getBasicDocument({ + '/': { + get: { responses: {} }, + post: { tags: ['abc'], responses: {} }, + put: { tags: ['ijk', 'mn'], responses: {} }, + patch: { tags: ['ac', 'def'], responses: {} }, + delete: { tags: ['ac', 'abc', 'bc'], responses: {} }, + }, + }); + + filterTag(docs, { path: '', includeTag: ['mn', 'def'] }); + expect(Object.keys(docs.paths['/'] || {})).toMatchInlineSnapshot(` + [ + "put", + "patch", + ] + `); +}); diff --git a/test/lib/filter-url.test.ts b/test/lib/filter-url.test.ts new file mode 100644 index 0000000..7ce79d2 --- /dev/null +++ b/test/lib/filter-url.test.ts @@ -0,0 +1,85 @@ +import { expect, test } from 'vitest'; +import { getBasicDocument } from '../mocks/get-basic-document'; +import { filterUrl } from '../../src/lib/filter-url'; + +test('未指定过滤路由则不处理', () => { + const docs = getBasicDocument({ + '/': {}, + '/test/a': {}, + '/test/b': {}, + '/other': {}, + }); + + filterUrl(docs, { path: '' }); + expect(Object.keys(docs.paths)).toMatchInlineSnapshot(` + [ + "/", + "/test/a", + "/test/b", + "/other", + ] + `); + filterUrl(docs, { path: '', includeUriPrefix: [] }); + expect(Object.keys(docs.paths)).toMatchInlineSnapshot(` + [ + "/", + "/test/a", + "/test/b", + "/other", + ] + `); +}); + +test('不符合前缀的路由被删除', () => { + const docs = getBasicDocument({ + '/': {}, + '/test/a': {}, + '/test/b': {}, + '/other': {}, + }); + + filterUrl(docs, { path: '', includeUriPrefix: '/test' }); + expect(Object.keys(docs.paths)).toMatchInlineSnapshot(` + [ + "/test/a", + "/test/b", + ] + `); +}); + +test('同时过滤多个路由', () => { + const docs = getBasicDocument({ + '/': {}, + '/test/a': {}, + '/test/b': {}, + '/other/a/b/c': {}, + '/foo/bar': {}, + }); + + filterUrl(docs, { path: '', includeUriPrefix: ['/test', '/foo'] }); + expect(Object.keys(docs.paths)).toMatchInlineSnapshot(` + [ + "/test/a", + "/test/b", + "/foo/bar", + ] + `); +}); + +test('支持正则表达式', () => { + const docs = getBasicDocument({ + '/': {}, + '/test/a': {}, + '/test/b': {}, + '/other/a/b/c': {}, + '/foo/bar': {}, + }); + + filterUrl(docs, { path: '', includeUriPrefix: [/\/a/] }); + expect(Object.keys(docs.paths)).toMatchInlineSnapshot(` + [ + "/test/a", + "/other/a/b/c", + ] + `); +}); diff --git a/test/lib/generate-comment.test.ts b/test/lib/generate-comment.test.ts new file mode 100644 index 0000000..86094d6 --- /dev/null +++ b/test/lib/generate-comment.test.ts @@ -0,0 +1,46 @@ +import { expect, test } from 'vitest'; +import { generateComments } from '../../src/lib/generate-comments'; + +test('空值', () => { + expect(generateComments({})).toMatchInlineSnapshot(`""`); +}); + +test('未废弃', () => { + expect(generateComments({ deprecated: false })).toMatchInlineSnapshot(`""`); +}); + +test('废弃', () => { + expect(generateComments({ deprecated: true })).toMatchInlineSnapshot(` + " + /** + * @deprecated + */ + " + `); +}); + +test('空描述', () => { + expect(generateComments({ description: '' })).toMatchInlineSnapshot(`""`); +}); + +test('描述', () => { + expect(generateComments({ description: 'foo === bar' })).toMatchInlineSnapshot(` + " + /** + * foo === bar + */ + " + `); +}); + +test('废弃+描述', () => { + expect(generateComments({ description: 'foo === bar', deprecated: true })) + .toMatchInlineSnapshot(` + " + /** + * foo === bar + * @deprecated + */ + " + `); +}); diff --git a/test/lib/generate-template.test.ts b/test/lib/generate-template.test.ts new file mode 100644 index 0000000..198100b --- /dev/null +++ b/test/lib/generate-template.test.ts @@ -0,0 +1,416 @@ +import { describe, expect, test } from 'vitest'; +import { getBasicDocument } from '../mocks/get-basic-document'; +import { + generateClassTpl, + generateNamespaceTpl, + generatePathRelationTpl, + generateTemplate, +} from '../../src/lib/generate-template'; +import prettier from 'prettier'; +import { getBasicMetas } from '../mocks/get-basic-matea'; + +const prettierOptions: prettier.Options = { + ...(await prettier.resolveConfig((await prettier.resolveConfigFile())!)!), + parser: 'typescript', +}; + +const formatDocs = (content: string) => prettier.format(content, prettierOptions); + +test('完整的类型提示', async () => { + const docs = getBasicDocument({ + '/users': { + get: { + parameters: [ + { name: 'foo', in: 'query', schema: { type: 'string' } }, + { name: 'bar', in: 'query', schema: { type: 'string' } }, + { name: 'baz', in: 'path', required: true, schema: { type: 'integer' } }, + ], + requestBody: { + content: { + 'application/json': { + schema: { type: 'object' }, + }, + }, + }, + responses: { + 200: { + description: '', + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + foo: { type: 'string' }, + }, + }, + }, + }, + }, + }, + }, + }, + '/users/{id}': { + get: { + parameters: [{ name: 'id', in: 'path' }], + responses: {}, + }, + }, + }); + const result = generateTemplate(docs); + + await expect( + formatDocs(Object.values(result)[0]!.replace('./base-openapi-client', '../../src')), + ).resolves.toMatchInlineSnapshot(` + "import { BaseOpenapiClient } from '../../src'; + + export namespace OpenapiClient { + export interface GetUsersQuery { + foo?: string; + bar?: string; + } + export interface GetUsersParams { + baz: number; + } + export interface GetUsersBody {} + export interface GetUsersResponse { + foo?: string; + } + } + + export class OpenapiClient extends BaseOpenapiClient { + get( + uri: K, + ...rest: K extends '/users/{id}' + ? [opts?: OpenapiClient_get_paths[K]['request']] + : [opts: OpenapiClient_get_paths[K]['request']] + ): Promise { + return this.request(uri, 'get', rest[0] || {}); + } + + protected override getContentTypes(uri: string, method: string) { + return defaultContentTypes[uri + ' ' + method] || [void 0, void 0]; + } + } + + const defaultContentTypes: Record< + string, + [ + BaseOpenapiClient.UserInputOpts['requestBodyType'], + BaseOpenapiClient.UserInputOpts['responseType'], + ] + > = {}; + + interface OpenapiClient_get_paths { + '/users': BaseOpenapiClient.Prettify<{ + request: { + query?: OpenapiClient.GetUsersQuery; + params: OpenapiClient.GetUsersParams; + body: OpenapiClient.GetUsersBody; + } & BaseOpenapiClient.UserInputOpts; + response: OpenapiClient.GetUsersResponse; + }>; + '/users/{id}': BaseOpenapiClient.Prettify<{ + request: { + query?: object; + } & BaseOpenapiClient.UserInputOpts; + response: unknown; + }>; + } + " + `); +}); + +test('不同的项目名', async () => { + const docs = getBasicDocument({}); + const result = generateTemplate(docs, 'foo-bar'); + + expect(Object.values(result)[0]).toContain('OpenapiClientFooBar'); +}); + +describe('命名空间', () => { + test('根据key生成interface', async () => { + const metas = getBasicMetas({ + get: [ + { + uri: '/users', + key: 'a_users', + contentTypes: ['application/json'], + responseTypes: ['application/json'], + query: { optional: false, types: ['{ foo: string; }'] }, + params: { optional: false, types: ['{ id: number; }'] }, + body: { optional: false, types: ['{ bar: string; }'] }, + response: { types: ['{id: number; name: string}'] }, + }, + ], + }); + const result = generateNamespaceTpl('Client', metas); + await expect(formatDocs(result)).resolves.toMatchInlineSnapshot(` + "export namespace Client { + export interface AUsersQuery { + foo: string; + } + export interface AUsersParams { + id: number; + } + export interface AUsersBody { + bar: string; + } + export interface AUsersResponse { + id: number; + name: string; + } + } + " + `); + }); + + test('body和response有多个类型时使用type替换interface', async () => { + const metas = getBasicMetas({ + get: [ + { + uri: '/users', + key: 'a_users', + contentTypes: ['application/json'], + responseTypes: ['application/json'], + query: { optional: true, types: [] }, + params: { optional: true, types: [] }, + body: { optional: false, types: ['{ bar: string; }', '{bar?: number}'] }, + response: { types: ['{id: number; name: string}', 'string'] }, + }, + ], + }); + const result = generateNamespaceTpl('Client', metas); + await expect(formatDocs(result)).resolves.toMatchInlineSnapshot(` + "export namespace Client { + export type AUsersBody = { bar: string } | { bar?: number }; + export type AUsersResponse = { id: number; name: string } | string; + } + " + `); + }); +}); + +describe('类', () => { + test('只生成接口对应的方法', async () => { + const metas = getBasicMetas({ + get: [ + { + uri: '/', + key: '', + query: { optional: true, types: [] }, + params: { optional: true, types: [] }, + body: { optional: true, types: [] }, + response: { types: [] }, + contentTypes: [], + responseTypes: [], + }, + ], + patch: [ + { + uri: '/', + key: '', + query: { optional: true, types: [] }, + params: { optional: true, types: [] }, + body: { optional: true, types: [] }, + response: { types: [] }, + contentTypes: [], + responseTypes: [], + }, + ], + }); + const result = generateClassTpl('Client', metas); + await expect(formatDocs(result)).resolves.toMatchInlineSnapshot(` + "export class Client extends BaseOpenapiClient { + get( + uri: K, + ...rest: [opts?: Client_get_paths[K]['request']] + ): Promise { + return this.request(uri, 'get', rest[0] || {}); + } + + patch( + uri: K, + ...rest: [opts?: Client_patch_paths[K]['request']] + ): Promise { + return this.request(uri, 'patch', rest[0] || {}); + } + + protected override getContentTypes(uri: string, method: string) { + return defaultContentTypes[uri + ' ' + method] || [void 0, void 0]; + } + } + " + `); + }); + + test('包含可选和必填的参数', async () => { + const metas = getBasicMetas({ + get: [ + { + uri: '/a', + key: 'aa', + query: { optional: true, types: [] }, + params: { optional: false, types: [] }, + body: { optional: true, types: [] }, + response: { types: [] }, + contentTypes: [], + responseTypes: [], + }, + { + uri: '/b', + key: 'bb', + query: { optional: true, types: [] }, + params: { optional: true, types: [] }, + body: { optional: true, types: [] }, + response: { types: [] }, + contentTypes: [], + responseTypes: [], + }, + ], + }); + const result = generateClassTpl('Client', metas); + await expect(formatDocs(result)).resolves.toMatchInlineSnapshot(` + "export class Client extends BaseOpenapiClient { + get( + uri: K, + ...rest: K extends '/b' + ? [opts?: Client_get_paths[K]['request']] + : [opts: Client_get_paths[K]['request']] + ): Promise { + return this.request(uri, 'get', rest[0] || {}); + } + + protected override getContentTypes(uri: string, method: string) { + return defaultContentTypes[uri + ' ' + method] || [void 0, void 0]; + } + } + " + `); + }); + + test('都是必填的参数', async () => { + const metas = getBasicMetas({ + get: [ + { + uri: '/a', + key: 'aa', + query: { optional: true, types: [] }, + params: { optional: false, types: [] }, + body: { optional: true, types: [] }, + response: { types: [] }, + contentTypes: [], + responseTypes: [], + }, + ], + }); + const result = generateClassTpl('Client', metas); + await expect(formatDocs(result)).resolves.toMatchInlineSnapshot(` + "export class Client extends BaseOpenapiClient { + get( + uri: K, + ...rest: [opts: Client_get_paths[K]['request']] + ): Promise { + return this.request(uri, 'get', rest[0] || {}); + } + + protected override getContentTypes(uri: string, method: string) { + return defaultContentTypes[uri + ' ' + method] || [void 0, void 0]; + } + } + " + `); + }); +}); + +describe('接口映射', () => { + test('生成request和response', async () => { + const metas = getBasicMetas({ + get: [ + { + uri: '/a', + key: 'aa', + query: { optional: true, types: [] }, + params: { optional: false, types: [] }, + body: { optional: true, types: [] }, + response: { types: [] }, + contentTypes: [], + responseTypes: [], + }, + ], + }); + const result = generatePathRelationTpl('Client', metas); + await expect(formatDocs(result)).resolves.toMatchInlineSnapshot(` + "interface Client_get_paths { + '/a': BaseOpenapiClient.Prettify<{ + request: { + query?: object; + } & BaseOpenapiClient.UserInputOpts; + response: unknown; + }>; + } + " + `); + }); + + test('可选', async () => { + const metas = getBasicMetas({ + get: [ + { + uri: '/a', + key: 'aa', + query: { optional: true, types: ['string'] }, + params: { optional: true, types: ['number'] }, + body: { optional: true, types: ['string'] }, + response: { types: ['boolean'] }, + contentTypes: [], + responseTypes: [], + }, + ], + }); + const result = generatePathRelationTpl('Client', metas); + await expect(formatDocs(result)).resolves.toMatchInlineSnapshot(` + "interface Client_get_paths { + '/a': BaseOpenapiClient.Prettify<{ + request: { + query?: Client.AaQuery; + params?: Client.AaParams; + body?: Client.AaBody; + } & BaseOpenapiClient.UserInputOpts; + response: Client.AaResponse; + }>; + } + " + `); + }); + + test('必填', async () => { + const metas = getBasicMetas({ + get: [ + { + uri: '/a', + key: 'aa', + query: { optional: false, types: ['string'] }, + params: { optional: false, types: ['number'] }, + body: { optional: false, types: ['string'] }, + response: { types: ['boolean'] }, + contentTypes: [], + responseTypes: [], + }, + ], + }); + const result = generatePathRelationTpl('Client', metas); + await expect(formatDocs(result)).resolves.toMatchInlineSnapshot(` + "interface Client_get_paths { + '/a': BaseOpenapiClient.Prettify<{ + request: { + query: Client.AaQuery; + params: Client.AaParams; + body: Client.AaBody; + } & BaseOpenapiClient.UserInputOpts; + response: Client.AaResponse; + }>; + } + " + `); + }); +}); diff --git a/test/lib/parse-parameters.test.ts b/test/lib/parse-parameters.test.ts new file mode 100644 index 0000000..130e6f2 --- /dev/null +++ b/test/lib/parse-parameters.test.ts @@ -0,0 +1,171 @@ +import { expect, test } from 'vitest'; +import { getBasicDocument } from '../mocks/get-basic-document'; +import { parseParameters } from '../../src/lib/parse-parameters'; + +const docs = getBasicDocument({ + '/': { + parameters: [ + { + name: 'bazz', + in: 'query', + required: true, + schema: { type: 'string' }, + }, + ], + get: { + responses: {}, + parameters: [ + { + name: 'foo', + in: 'query', + required: true, + schema: { type: 'integer' }, + }, + { + name: 'id', + in: 'path', + required: true, + schema: { type: 'integer' }, + }, + { + name: 'bar', + in: 'query', + required: false, + schema: { type: 'integer' }, + }, + { $ref: '#/components/parameters/refA' }, + { $ref: '#/components/parameters/refB' }, + ], + }, + }, +}); + +docs.components = { + parameters: { + refA: { + name: 'ref_a', + in: 'query', + required: false, + schema: { type: 'integer' }, + }, + refB: { + name: 'ref_b', + in: 'path', + required: true, + schema: { type: 'integer' }, + }, + }, +}; + +test('解析查询字符串', () => { + const result = parseParameters(docs, docs.paths['/']!, docs.paths['/']!.get!, 'query'); + expect(result).toMatchInlineSnapshot(` + { + "optional": false, + "types": [ + "{ foo: number + ; + bar?: number + ; + ref_a?: number + ; + bazz: string + }", + ], + } + `); +}); + +test('解析路径参数', () => { + const result = parseParameters(docs, docs.paths['/']!, docs.paths['/']!.get!, 'path'); + expect(result).toMatchInlineSnapshot(` + { + "optional": false, + "types": [ + "{ id: number + ; + ref_b: number + }", + ], + } + `); +}); + +test('未找到参数则变成可选', () => { + const result = parseParameters(docs, docs.paths['/']!, docs.paths['/']!.get!, 'path_a'); + expect(result).toMatchInlineSnapshot(` + { + "optional": true, + "types": [], + } + `); +}); + +test('允许参数内没有schema结构', () => { + const docs = getBasicDocument({ + '/': { + get: { + parameters: [ + { + name: 'foo', + in: 'query', + required: true, + }, + { + name: 'bar', + in: 'query', + required: true, + schema: { type: 'string' }, + }, + ], + responses: {}, + }, + }, + }); + const result = parseParameters(docs, docs.paths['/']!, docs.paths['/']!.get!, 'query'); + expect(result).toMatchInlineSnapshot(` + { + "optional": false, + "types": [ + "{ bar: string + }", + ], + } + `); +}); + +test('所有结构都不是必填时,optional=true', () => { + const docs = getBasicDocument({ + '/': { + get: { + parameters: [ + { + name: 'foo', + in: 'query', + required: false, + schema: { type: 'string' }, + }, + { + name: 'bar', + in: 'query', + required: false, + schema: { type: 'string' }, + }, + ], + responses: {}, + }, + }, + }); + const result = parseParameters(docs, docs.paths['/']!, docs.paths['/']!.get!, 'query'); + expect(result).toMatchInlineSnapshot(` + { + "optional": true, + "types": [ + "{ foo?: string + ; + bar?: string + }", + ], + } + `); +}); diff --git a/test/lib/parse-request-body.test.ts b/test/lib/parse-request-body.test.ts new file mode 100644 index 0000000..cc99c86 --- /dev/null +++ b/test/lib/parse-request-body.test.ts @@ -0,0 +1,147 @@ +import { expect, test } from 'vitest'; +import { getBasicDocument } from '../mocks/get-basic-document'; +import { parseRequestBody } from '../../src/lib/parse-request-body'; + +test('从requestBody字段获取', () => { + const docs = getBasicDocument({ + '/': { + get: { + responses: {}, + requestBody: { + content: { + 'application/json': { + schema: { type: 'object', properties: { foo: { type: 'string' } } }, + }, + }, + }, + }, + }, + }); + + const result = parseRequestBody(docs, docs.paths['/']!.get!); + expect(result).toMatchInlineSnapshot(` + { + "body": { + "optional": false, + "types": [ + "{ foo?: string }", + ], + }, + "contentTypes": [ + "application/json", + ], + } + `); +}); + +test('多个返回类型', () => { + const docs = getBasicDocument({ + '/': { + get: { + responses: {}, + requestBody: { + content: { + 'application/json': { + schema: { type: 'object', properties: { foo: { type: 'string' } } }, + }, + 'text/plain': { schema: { type: 'string' } }, + }, + }, + }, + }, + }); + + const result = parseRequestBody(docs, docs.paths['/']!.get!); + expect(result).toMatchInlineSnapshot(` + { + "body": { + "optional": false, + "types": [ + "{ foo?: string }", + "string", + ], + }, + "contentTypes": [ + "application/json", + "text/plain", + ], + } + `); +}); + +test('没有requestBody则认为是选填的', () => { + const docs = getBasicDocument({ + '/': { + get: { + responses: {}, + }, + }, + }); + + const result = parseRequestBody(docs, docs.paths['/']!.get!); + expect(result).toMatchInlineSnapshot(` + { + "body": { + "optional": true, + "types": [], + }, + "contentTypes": [], + } + `); +}); + +test('没有schema则认为是选填的', () => { + const docs = getBasicDocument({ + '/': { + get: { + responses: {}, + requestBody: { + content: { + 'application/json': {}, + }, + }, + }, + }, + }); + + const result = parseRequestBody(docs, docs.paths['/']!.get!); + expect(result).toMatchInlineSnapshot(` + { + "body": { + "optional": true, + "types": [], + }, + "contentTypes": [], + } + `); +}); + +test('*/* 类型被忽略', () => { + const docs = getBasicDocument({ + '/': { + get: { + responses: {}, + requestBody: { + content: { + '*/*': { + schema: { type: 'object', properties: { foo: { type: 'string' } } }, + }, + }, + }, + }, + }, + }); + + const result = parseRequestBody(docs, docs.paths['/']!.get!); + expect(result).toMatchInlineSnapshot(` + { + "body": { + "optional": false, + "types": [ + "{ foo?: string }", + ], + }, + "contentTypes": [], + } + `); +}); diff --git a/test/lib/parse-response.test.ts b/test/lib/parse-response.test.ts new file mode 100644 index 0000000..e33fe92 --- /dev/null +++ b/test/lib/parse-response.test.ts @@ -0,0 +1,114 @@ +import { expect, test } from 'vitest'; +import { getBasicDocument } from '../mocks/get-basic-document'; +import { parseResponse } from '../../src/lib/parse-response'; + +test('从response字段获取', () => { + const docs = getBasicDocument({ + '/': { + get: { + responses: { + 200: { + description: '', + content: { + 'application/json': { + schema: { type: 'object', properties: { foo: { type: 'string' } } }, + }, + }, + }, + }, + }, + }, + }); + const result = parseResponse(docs, docs.paths['/']!.get!); + expect(result).toMatchInlineSnapshot(` + { + "response": { + "types": [ + "{ foo?: string }", + ], + }, + "responseTypes": [ + "application/json", + ], + } + `); +}); + +test('只保留2xx状态', () => { + const docs = getBasicDocument({ + '/': { + get: { + responses: { + 200: { + description: '', + content: { + 'application/json': { + schema: { type: 'object', properties: { foo: { type: 'string' } } }, + }, + }, + }, + '20x': { + description: '', + content: { + 'application/json': { + schema: { type: 'object', properties: { foo1: { type: 'string' } } }, + }, + }, + }, + 400: { + description: '', + content: { + 'application/json': { + schema: { type: 'object', properties: { foo2: { type: 'string' } } }, + }, + }, + }, + }, + }, + }, + }); + const result = parseResponse(docs, docs.paths['/']!.get!); + expect(result).toMatchInlineSnapshot(` + { + "response": { + "types": [ + "{ foo?: string }", + "{ foo1?: string }", + ], + }, + "responseTypes": [ + "application/json", + ], + } + `); +}); + +test('*/* 类型被忽略', () => { + const docs = getBasicDocument({ + '/': { + get: { + responses: { + 200: { + description: '', + content: { + '*/*': { + schema: { type: 'object', properties: { foo: { type: 'string' } } }, + }, + }, + }, + }, + }, + }, + }); + const result = parseResponse(docs, docs.paths['/']!.get!); + expect(result).toMatchInlineSnapshot(` + { + "response": { + "types": [ + "{ foo?: string }", + ], + }, + "responseTypes": [], + } + `); +}); diff --git a/test/lib/parse-schema.test.ts b/test/lib/parse-schema.test.ts new file mode 100644 index 0000000..3892caa --- /dev/null +++ b/test/lib/parse-schema.test.ts @@ -0,0 +1,64 @@ +import { expect, test } from 'vitest'; +import { parseSchemaType } from '../../src/lib/parse-schema-type'; +import { getBasicDocument } from '../mocks/get-basic-document'; + +const docs = getBasicDocument(); + +test('字符串', () => { + const type = parseSchemaType(docs, { type: 'string' }); + expect(type).toMatchInlineSnapshot(`"string"`); +}); + +test('数字', () => { + expect(parseSchemaType(docs, { type: 'number' })).toMatchInlineSnapshot(`"number"`); + expect(parseSchemaType(docs, { type: 'integer' })).toMatchInlineSnapshot(`"number"`); +}); + +test('布尔', () => { + const type = parseSchemaType(docs, { type: 'boolean' }); + expect(type).toMatchInlineSnapshot(`"boolean"`); +}); + +test('数组', () => { + const type = parseSchemaType(docs, { type: 'array', items: { type: 'string' } }); + expect(type).toMatchInlineSnapshot(`"string[]"`); +}); + +test('对象数组', () => { + const type = parseSchemaType(docs, { + type: 'array', + items: { type: 'object', properties: { foo: { type: 'string' } }, required: ['foo'] }, + }); + expect(type).toMatchInlineSnapshot(`"{ foo: string }[]"`); +}); + +test('对象', () => { + const type = parseSchemaType(docs, { + type: 'object', + properties: { foo: { type: 'string' } }, + }); + expect(type).toMatchInlineSnapshot(`"{ foo?: string }"`); +}); + +test('空对象', () => { + const type = parseSchemaType(docs, { type: 'object' }); + expect(type).toMatchInlineSnapshot(`"{ }"`); +}); + +test('文件', () => { + const type = parseSchemaType(docs, { type: 'string', format: 'binary' }); + expect(type).toMatchInlineSnapshot(`"Blob"`); +}); + +test('oneOf', () => { + const type = parseSchemaType(docs, { + oneOf: [{ type: 'string' }, { type: 'boolean' }, { type: 'integer' }], + }); + expect(type).toMatchInlineSnapshot(`"string | boolean | number"`); +}); + +test('未知类型', () => { + // @ts-expect-error + const type = parseSchemaType(docs, { type: 'any' }); + expect(type).toMatchInlineSnapshot(`"never"`); +}); diff --git a/test/lib/path-to-openapi.test.ts b/test/lib/path-to-openapi.test.ts new file mode 100644 index 0000000..ec4cd1d --- /dev/null +++ b/test/lib/path-to-openapi.test.ts @@ -0,0 +1,37 @@ +import { expect, test, vitest } from 'vitest'; +import { pathToOpenapi } from '../../src/lib/path-to-openapi'; +import path from 'node:path'; +import { readFileSync } from 'node:fs'; + +test('从本地获取json', async () => { + const result = await pathToOpenapi('./openapi/openapi.json'); + expect(JSON.stringify(result)).toMatchFileSnapshot( + path.resolve('openapi', 'openapi.json'), + ); +}); + +test('从本地获取yaml', async () => { + const result = await pathToOpenapi('./openapi/openapi.yaml'); + expect(JSON.stringify(result)).toMatchFileSnapshot( + path.resolve('openapi', 'openapi.json'), + ); +}); + +test('从远程获取', async () => { + const originalFetch = globalThis.fetch; + globalThis.fetch = vitest.fn().mockResolvedValueOnce({ + ok: true, + text: () => { + return Promise.resolve( + JSON.stringify(readFileSync(path.resolve('openapi', 'openapi.json'), 'utf8')), + ); + }, + }); + const result = await pathToOpenapi('http://example.com'); + expect(result).toMatchFileSnapshot(path.resolve('openapi', 'openapi.json')); + globalThis.fetch = originalFetch; +}); + +test('解析失败则直接报错', async () => { + await expect(() => pathToOpenapi('./cli.ts')).rejects.toThrowError(); +}); diff --git a/test/lib/read-config.test.ts b/test/lib/read-config.test.ts new file mode 100644 index 0000000..83b8e6c --- /dev/null +++ b/test/lib/read-config.test.ts @@ -0,0 +1,13 @@ +import { expect, test } from 'vitest'; +import { readConfig } from '../../src/lib/read-config'; + +test('从根目录获取', async () => { + const config = await readConfig(); + expect(config).toMatchInlineSnapshot(` + [ + { + "path": "./openapi/openapi.json", + }, + ] + `); +}); diff --git a/test/lib/rebuild-dist.test.ts b/test/lib/rebuild-dist.test.ts new file mode 100644 index 0000000..4e632fa --- /dev/null +++ b/test/lib/rebuild-dist.test.ts @@ -0,0 +1,31 @@ +import { readFile, writeFile } from 'fs/promises'; +import path from 'path'; +import { afterEach, expect, test } from 'vitest'; +import { rebuildDist } from '../../src/lib/rebuild-dist'; +import { execSync } from 'child_process'; + +const dist = path.join(import.meta.dirname, '..', '..', 'dist'); +const src = path.join(import.meta.dirname, '..', '..', 'src'); +const runtime = path.join(src, 'openapi-runtime.ts'); +const sourceContent = 'export const foo = { bar: "baz" };'; +const buildContent = 'var foo = { bar: "baz" }'; + +afterEach(async () => { + await writeFile(runtime, 'export {};'); +}); + +test('内容写入文件', async () => { + await rebuildDist(dist, sourceContent); + await expect(readFile(runtime, 'utf8')).resolves.toBe(sourceContent); +}); + +test('打包进dist/index.js文件', async () => { + execSync('npx tsup', { stdio: 'inherit', encoding: 'utf8' }); + await expect(readFile(path.join(dist, 'index.js'), 'utf8')).resolves.not.toContain( + buildContent, + ); + await rebuildDist(dist, sourceContent); + await expect(readFile(path.join(dist, 'index.js'), 'utf8')).resolves.toContain( + buildContent, + ); +}); diff --git a/test/mocks/get-basic-document.ts b/test/mocks/get-basic-document.ts new file mode 100644 index 0000000..ae9fe59 --- /dev/null +++ b/test/mocks/get-basic-document.ts @@ -0,0 +1,17 @@ +import type { OpenAPIV3 } from 'openapi-types'; + +export const getBasicDocument = ( + additional: OpenAPIV3.PathsObject = {}, +): OpenAPIV3.Document => { + return { + openapi: '3.0.3', + paths: { + ...additional, + }, + info: { + title: 'abc', + version: '0.0.2', + description: 'No desc', + }, + }; +}; diff --git a/test/mocks/get-basic-matea.ts b/test/mocks/get-basic-matea.ts new file mode 100644 index 0000000..6c70028 --- /dev/null +++ b/test/mocks/get-basic-matea.ts @@ -0,0 +1,12 @@ +import type { Metas } from '../../src/lib/document-to-meta'; + +export const getBasicMetas = (merge?: Partial): Metas => { + return { + get: [], + post: [], + put: [], + patch: [], + delete: [], + ...merge, + }; +}; diff --git a/test/mocks/mock-openapi-client.ts b/test/mocks/mock-openapi-client.ts new file mode 100644 index 0000000..c617dce --- /dev/null +++ b/test/mocks/mock-openapi-client.ts @@ -0,0 +1,13 @@ +import { BaseOpenapiClient } from '../../src'; + +export class MockOpenapiClient extends BaseOpenapiClient { + protected override getContentTypes( + _uri: string, + _method: string, + ): [ + BaseOpenapiClient.UserInputOpts['requestBodyType'], + BaseOpenapiClient.UserInputOpts['responseType'], + ] { + return [void 0, void 0]; + } +} diff --git a/tsconfig.json b/tsconfig.json index 2da48ae..be82b0e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,7 +8,7 @@ "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, - "moduleResolution": "node", + "moduleResolution": "Bundler", "allowUnusedLabels": false, "allowUnreachableCode": false, "exactOptionalPropertyTypes": false, @@ -34,6 +34,5 @@ "resolveJsonModule": true, "incremental": true, "tsBuildInfoFile": ".tsbuildinfo" - }, - "exclude": ["packages/**/dist"] + } } diff --git a/tsup.config.ts b/tsup.config.ts index 675327e..496cefe 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -1,14 +1,46 @@ import { defineConfig } from 'tsup'; -export default defineConfig({ - entry: ['src/index.ts'], - splitting: true, - sourcemap: true, - clean: true, - format: ['esm'], - platform: 'node', - tsconfig: './tsconfig.json', - target: 'node16', - shims: false, - dts: true, -}); +export default defineConfig([ + { + entry: ['src/bin.ts'], + splitting: true, + sourcemap: true, + clean: true, + format: ['esm'], + platform: 'node', + tsconfig: './tsconfig.json', + target: 'es2020', + shims: false, + dts: false, + outExtension: () => ({ js: '.mjs' }), + }, + { + entry: ['src/index.ts'], + splitting: false, + sourcemap: true, + clean: true, + format: ['cjs', 'esm'], + platform: 'node', + tsconfig: './tsconfig.json', + target: 'es2020', + shims: false, + dts: true, + legacyOutput: true, + onSuccess: `echo '{"type":"module"}' > dist/esm/package.json`, + }, + { + entry: ['src/adapters/fetch.ts', 'src/adapters/axios.ts'], + splitting: true, + sourcemap: true, + clean: true, + format: ['cjs', 'esm'], + platform: 'node', + tsconfig: './tsconfig.json', + target: 'es2020', + shims: false, + dts: true, + legacyOutput: true, + outDir: './adapters', + onSuccess: `echo '{"type":"module"}' > adapters/esm/package.json`, + }, +]); diff --git a/vitest.config.ts b/vitest.config.ts index 0c52f3b..7c906a3 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -5,8 +5,8 @@ export default defineProject({ coverage: { provider: 'v8', enabled: true, - include: ['packages/**/src/**'], - exclude: ['packages/console/src/bin.ts'], + include: ['src/**'], + exclude: ['src/bin.ts'], all: true, // lines: 99, // functions: 99, @@ -18,12 +18,7 @@ export default defineProject({ fileParallelism: false, logHeapUsage: true, environment: 'node', - retry: 1, globals: true, - snapshotFormat: { - escapeString: false, - printBasicPrototype: false, - }, watch: false, }, }); diff --git a/vitest.workspace.ts b/vitest.workspace.ts deleted file mode 100644 index a971dee..0000000 --- a/vitest.workspace.ts +++ /dev/null @@ -1 +0,0 @@ -export default ['packages/*'];